|
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
singleframe2.swf
Description: application/shockwave-flash
singleframe3.swf
Description: application/shockwave-flash
singleframe4.swf
Description: application/shockwave-flash
singleframe5.swf
Description: application/shockwave-flash
singleframe5b.swf
Description: application/shockwave-flash
[Prev in Thread] | Current Thread | [Next in Thread] |