gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: [Gnash-dev] Re: gotoAndPlay bug in Gnash (was: Serious performanc


From: Udo Giacomozzi
Subject: Re[2]: [Gnash-dev] Re: gotoAndPlay bug in Gnash (was: Serious performance problem)
Date: Tue, 8 May 2007 10:55:04 +0200

Hello Sandro,

Tuesday, May 8, 2007, 10:17:03 AM, you wrote:
>> What *should* happen is that the new matrix/depth set in frame 3 is
>> restored.
SS> Is it "restored" in the sense that any further PlaceObject2 modification of 
matrix
SS> in frame 5 is discarded ?

Of course it is. I assume PlaceObject2 is used to *move* (statically)
a character on the stage (which does *not* create a new instance).
When looping back you get the original position in that frame. When
you don't modify instances using AS you can go forward and backward in
a movie and you will always get the same situation.


SS> Sounds fair: a list of displaylist tags that in any way modified this 
instance,
SS> accompanied by the frame number. These are pointers, so no big mem problems.
SS> Dynamic instances (ActionScript-created) would have an empty (or 
unexistent) list,
SS> this difference can be used to implement isDyamic().

Sounds good.



SS> Is the last item in a *complete* list always a RemoveObject ? I'm afraid we 
can't
SS> say so as we can have instances that are *never* explicitly removed.

Agree. Why is that relevant?


>> SS> What if we loop back to 2 or to 3 ?
>> 
>> Of course, PlaceObject2 settings of the respective frame need to be
>> restored.

SS> Is onClipLoad invoked again ? Are AS values reset ?

No actions are executed.


SS> Can we have a testcase for this ?

singleframe2.swf, attached (looping back to frame 2)


>> SS> - Are dynamic instances moved to the "static range depth" by 
>> ActionScript also
>> SS>   removed by loopback ? (see misc-ming.all/displaylist_depths_test.c)
>> 
>> Removed? You mean when looping back to a frame *prior* to the
>> PlaceObject2 tag? Yes, they're also removed.

SS> Have a testcase for this ?

singleframe3.swf, attached


>> SS> - Are static instances moved to the "dynamic range depth" still removed 
>> by
>> SS>   loop-back ? (again, see displaylist_depths_test.c)
>> 
>> As said above, they're *not* removed on loop back and PlaceObject2
>> adds a new copy to the stage. So after the loop you have two
>> instances.

SS> Uh ? So if we use swapDepth() on an instance we then have to threat it
SS> differently then if we didn't when it comes to DisplayList reconstruction
SS> on loop-back ?

I think when swapping to a dynamic depth it becomes isDynamic().

SS> Testcase ?

singleframe4.swf
Note the opacity of the graphic changes. It is placed with 50% alpha
so you can notice there are two instances on stage.


>> SS> - Are load/unload events of instances placed and removed before
>> SS> the target frame of 
>> SS>   a loop-back invoked again ?
>> 
>> When looping back to a frame *prior* to the PlaceObject2 the movieclip
>> actions get executed later, when entering that frame. Don't know what
>> you mean with "removed"..

SS> MC1: placed in frame 2, removed in frame 3

singleframe5.swf

MC placed in frame 2, removed in frame 3. looping from 6 to 2

>>From frame 6 gotoFrame(5) <-- does this call any MC1 clip event ?

No, as expected (why should it?).

Udo

Attachment: singleframe2.swf
Description: application/shockwave-flash

Attachment: singleframe3.swf
Description: application/shockwave-flash

Attachment: singleframe4.swf
Description: application/shockwave-flash

Attachment: singleframe5.swf
Description: application/shockwave-flash

Attachment: singleframe5b.swf
Description: application/shockwave-flash


reply via email to

[Prev in Thread] Current Thread [Next in Thread]