【发布时间】:2020-03-25 01:13:57
【问题描述】:
我用三个动画设置这个循环,第一个在初始屏幕加载时运行 (firstAnimation)。然后接下来的两个动画使用回调在它们之间循环(slideAnimation -> rotateAnimation -> slideAnimation...)
如何停止使用POINTERDOWN 的动画并在PONTERUP.. 上恢复它?
我在下面所做的方式仅在 firstAnimation 期间有效,一旦它进入循环,它显然不再针对这两个动画。那么如何使用单个 .pause() .resume() 命令来定位所有三个动画呢?
var slideAnimation = function(){
scene.beginDirectAnimation(box, [xSlide], 0, 2 * frameRate, false, 2, rotateAnimation);
}
var rotateAnimation = function(){
scene.beginDirectAnimation(box, [yRot], 0, 2 * frameRate, false, 2, slideAnimation);
}
var firsAnimation = scene.beginDirectAnimation(box, [xSlide], 0, 2 * frameRate, false, 2, slideAnimation);
scene.onPointerObservable.add((pointerInfo) => {
switch (pointerInfo.type) {
case BABYLON.PointerEventTypes.POINTERDOWN:
light2.intensity =0.95;
firsAnimation.pause();
box.scaling = new BABYLON.Vector3(4, 1, -1)
break;
case BABYLON.PointerEventTypes.POINTERUP:
light2.intensity =0.15;
firsAnimation.restart();
box.scaling = new BABYLON.Vector3(1, 1, 1)
break;
}
});
或者这需要一种不同的方法吗?
【问题讨论】:
标签: javascript babylonjs babel-babylon