On Tue, May 08, 2007 at 09:38:45AM +0200, Udo Giacomozzi wrote: > zl> And the "DisplayList > zl> " might be changed at any time when executing action scripts. > > Right, but those will be restored when jumping back. Example: > > - static sprite instance in frame 3 > - frame 5 swaps it's depth and removes it from the stage > - frame 7 loops back to frame 4 > > The sprite re-appears in frame 4.
You can't use "swapDepth" to remove an item from the stage. What do you mean exactly ? I think we need a glossary here... > A special case seems to be *moving* a static sprite. When, in the > above example, changing > _x += 50; > _y += 50; > instead of removing it (and *not* changing depths), the instance keeps > on moving and it's original position is /not/ restored when looping > back. AFAIK this is because the sprite instance gets a special state > when such properties are changed (can't remember the right term). Are you referring to the 'accept_anim_move' flag ? > Furthermore, when swapping depths before changing the coordinates I > get exactly one *new* instance when looping back. So two instances move > along. I guess this is because I can't swapDepths() to an already > occupied depth. swapDepths() will swap the two instances if the target depth is occupied. > zl> In sprite_instance::goto_frame() > zl> resetDisplayList() clears all static characters placed from frame1 to > zl> current frame when jump back. Instead of doing that, I think we should > zl> just clear static characters placed from target frame to current > zl> frame. This might solve some problems above. > > No, this would still re-create the sprite placed in frame 3 when we > loop back to frame 4. Not if we forbid PlaceObject2 w/out the "move" flag to place a character to an already occupied depth, right ? --strk; _______________________________________________ Gnash-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-dev

