You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Under CreateJS 1.0.0, when a multiframe movieclip is present on the stage (with autoReset in the default TRUE state), then removed, then added again, the reset behavior causes all the movieclip's frame actions to be executed in reverse order from its current frame, which is clearly not desirable, and was not the default behavior under CJS 2015.
Note that I'm working in the Adobe Animate environment, but based on my investigation this seems to be an issue with TweenJS instead of anything Adobe's layered on top of it.
For example, say you have a five-frame movieclip, with an action on frame 1 of "console.log(1);", then "console.log(2);" on the next frame, etc., with an added "this.stop();" on the last frame. Then place this movieclip on a root timeline with enough frames for the movieclip to fully play, and a blank keyframe at the end so the movieclip will be removed from and re-added to the stage when the root timeline loops. What you'll see in the console is: 1, 2, 3, 4, 5, 4, 3, 2, 1... repeating. The 4, 3, 2, 1, spews all at once within a single tick.
In AbstractTween.js, p._runActions(), around line 533, I added this line of code after "if (jump)...": else if (t0 > t1 && !this.reversed) { return this._runActionsRange(t1, t1, jump, true); }
This seems to fix the problem, though TweenJS has to handle so many edge cases I doubt this is a proper fix. I'd imagine having the reset() method set a flag would be preferable.
Details: Adobe Animate 23 (Build 103), Windows 11, all browsers
The text was updated successfully, but these errors were encountered:
Under CreateJS 1.0.0, when a multiframe movieclip is present on the stage (with autoReset in the default TRUE state), then removed, then added again, the reset behavior causes all the movieclip's frame actions to be executed in reverse order from its current frame, which is clearly not desirable, and was not the default behavior under CJS 2015.
Note that I'm working in the Adobe Animate environment, but based on my investigation this seems to be an issue with TweenJS instead of anything Adobe's layered on top of it.
For example, say you have a five-frame movieclip, with an action on frame 1 of "console.log(1);", then "console.log(2);" on the next frame, etc., with an added "this.stop();" on the last frame. Then place this movieclip on a root timeline with enough frames for the movieclip to fully play, and a blank keyframe at the end so the movieclip will be removed from and re-added to the stage when the root timeline loops. What you'll see in the console is: 1, 2, 3, 4, 5, 4, 3, 2, 1... repeating. The 4, 3, 2, 1, spews all at once within a single tick.
In AbstractTween.js, p._runActions(), around line 533, I added this line of code after "if (jump)...":
else if (t0 > t1 && !this.reversed) { return this._runActionsRange(t1, t1, jump, true); }
This seems to fix the problem, though TweenJS has to handle so many edge cases I doubt this is a proper fix. I'd imagine having the reset() method set a flag would be preferable.
Details: Adobe Animate 23 (Build 103), Windows 11, all browsers
The text was updated successfully, but these errors were encountered: