...and maybe incorrect behaviour in Gnash.
I noticed that single-frame sprites are still "advanced" in Gnash. This has the effect of a ever-looping sprite and causes set_invalidated() to be called in each rendered frame.
I think one reason for this is all event handlers should be triggered for single-frame sprites.
This is because advance_sprite() does not check if frames_count>1 and so calls do_actions() in any case. I tried to avoid do_actions() for single-frame sprites but this completely scrambles playback.
This is checked by line " if (m_current_frame != (size_t)prev_frame)"
I guess also some actions get executed again, even if they shouldn't
Maybe we need a testcase to verify this. As I see, Gnash don't do this.
(normal ActionScript code in single-frame sprites should be executed only once!).
confirm.
I failed understanding what happens in do_actions() and I don't understand why it gets called for STOPPED movies at all.
Yes, it's called even for stopped movies, that's confusing. But the action list won't be filled again for stopped movies, so even if do_actions() being called again, it will do nothing actually.
At least for me this is a big problem since it causes 99% of my movies to be played really slow (continuously full screen redraws) and it worked fine before.
I have little knowledge about the "invalidated bounds". Is this related? I cann't tell why for this... _______________________________________________ Gnash-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-dev

