浏览代码

Don't trip AnimationEvents outside current range

Ensures that no AnimationEvents that are outside the current animation range get triggered.
FunFetched 8 年之前
父节点
当前提交
42bb55dea2
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      src/Animations/babylon.animation.ts

+ 6 - 1
src/Animations/babylon.animation.ts

@@ -653,7 +653,12 @@
             this.setValue(currentValue);
             // Check events
             for (var index = 0; index < this._events.length; index++) {
-                if (currentFrame >= this._events[index].frame) {
+                // Make sure current frame has passed event frame and that event frame is within the current range
+                // Also, handle both forward and reverse animations
+                if (
+                    (range > 0 && currentFrame >= this._events[index].frame && this._events[index].frame >= from) ||
+                    (range < 0 && currentFrame <= this._events[index].frame && this._events[index].frame <= from)
+                ){
                     var event = this._events[index];
                     if (!event.isDone) {
                         // If event should be done only once, remove it.