浏览代码

Merge pull request #6371 from zakhenry/patch-1

fix(Runtime Animation): Reset future runtime animation events on goToFrame
David Catuhe 6 年之前
父节点
当前提交
378092fe5d
共有 2 个文件被更改,包括 12 次插入0 次删除
  1. 1 0
      dist/preview release/what's new.md
  2. 11 0
      src/Animations/runtimeAnimation.ts

+ 1 - 0
dist/preview release/what's new.md

@@ -32,5 +32,6 @@
 - Added support for `AnimationGroup` serialization ([Drigax](https://github.com/drigax/))
 - Removing assetContainer from scene will also remove gui layers ([TrevorDev](https://github.com/TrevorDev))
 - A scene's input manager not adding key listeners when the canvas is already focused ([Poolminer](https://github.com/Poolminer))
+- Runtime animation `goToFrame` when going back in time now correctly triggers future events when reached ([zakhenry](https://github.com/zakhenry))
 
 ## Breaking changes

+ 11 - 0
src/Animations/runtimeAnimation.ts

@@ -428,6 +428,17 @@ export class RuntimeAnimation {
             frame = keys[keys.length - 1].frame;
         }
 
+        // Need to reset animation events
+        const events = this._events;
+        if (events.length) {
+            for (var index = 0; index < events.length; index++) {
+                if (!events[index].onlyOnce) {
+                    // reset events in the future
+                    events[index].isDone = events[index].frame < frame;
+                }
+            }
+        }
+
         this._currentFrame = frame;
         var currentValue = this._animation._interpolate(frame, this._animationState);