On Wed, Apr 25, 2007 at 02:09:42PM +0200, Udo Giacomozzi wrote: > zl> I think one reason for this is all event handlers should be triggered > zl> for single-frame sprites. > > You mean event handlers like onEnterFrame, onMouseDown, ...?
onEnterFrame and LoadVars requests and drag for sure. > zl> This is checked by line " if (m_current_frame != (size_t)prev_frame)" > > Yes, but applies only to execute_frame_tags() which is not the problem > in this case. The call to do_actions() is still done. do_actions executes queued actions removing them from the queue. execute_frame_tags() is what queues the actions, so do_actions does nothing if execute_frame_tags() is not called. > zl> Yes, it's called even for stopped movies, that's confusing. But the > zl> action list won't be filled again for stopped movies, so even if > zl> do_actions() being called again, it will do nothing actually. > > That's not true actually. I backtraced the call to set_invalidated() > using gdb and it's called implicitely by do_actions(). In between this > part of the backtrace there are calls to execute_actions() and > execute_action(), ie. they're called by do_actions(). > > ... -> do_actions() -> execute_actions() -> execute_action() -> ... -> > set_invalidated() Could it be a memory corruption due to the character::get_text_value returning the adress of a local variable ? > A few days ago I noticed that static characters get removed and placed > again on a display list when a sprite loops back to it's first frame. > This should be only true for multi-framed sprites. Anyway, if a *child* is removed and placed again of course it's first frame actions are executed again. --strk; _______________________________________________ Gnash-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-dev

