[Top][All Lists]

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

Re: [Gnash-dev] Re: gotoAndPlay bug in Gnash (was: Serious performance p

From: Sandro Santilli
Subject: Re: [Gnash-dev] Re: gotoAndPlay bug in Gnash (was: Serious performance problem)
Date: Tue, 8 May 2007 10:42:39 +0200

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 ?


reply via email to

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