需要停止删除补间动画
need to stop remove a tween animation
我已经创建了一些补间,但我需要停止它们
因为我需要用新的补间重用一些资源。
override:true 对某些人有帮助,但是,
就是这个功能,一旦触发,有定时器,不管怎么玩,你可以看到有很多回调
window.autoSurfaces = function(){
if(!window.gameStarted){
console.log("autoSurfaces");
playAutoScene();//start playing function to control numbers and alpha of wheels
var delay = 700
var animtime = 500
currentTween = createjs.Tween.get(leaves_anim).to({alpha:.7}, animtime).wait(800).call(leavesOut);//call end frame function
tweenAray.push(currentTween)
console.log(currentTween)
leaves_anim.gotoAndPlay("go");
function leavesOut(){
currentTween = createjs.Tween.get(leaves_anim).to({alpha:0}, animtime).wait(200).call(snowIn);
tweenAray.push(currentTween)
console.log(currentTween)
}
function snowIn(){
currentTween = createjs.Tween.get(snow_anim).to({alpha:1}, animtime).wait(800).call(snowOut)
tweenAray.push(currentTween)
console.log(currentTween)
snow_anim.gotoAndPlay("go");
}
function snowOut(){
currentTween = createjs.Tween.get(snow_anim).to({alpha:0}, animtime).wait(delay).call(stopAll);
tweenAray.push(currentTween)
//console.log("fired");
function stopAll(){
playAutoOut();
leaves_anim.gotoAndStop(0);
snow_anim.gotoAndStop(0);
}
}
}
}
然后我设置了 currentTween 的全局变量:
currentTween = createjs.Tween.get(target).to({alpha:.7}, animtime).wait(800).call(callHandler);
然后:
removeTweens(currentTween);
尝试设置数组 - tweenAray.push(currentTween)
tweenAray.removeTweens(currentTween)
还有
createjs.Tween.removeAllTweens();
甚至
createjs.Tween.removeAllTweens = function() {
var tweens = createjs.Tween._tweens;
for (var i=tweens.length-1; i>=0; i--) {
tweens[i]._paused = true;
tweens.splice(i,1);
}
};
没有任何反应或出现错误
我正在从 Flash CS6
导出
有什么指点吗?
干杯
我不确定我是否完全理解你的问题,但这里有一个快速的说明...
使用覆盖将导致新补间停止具有相同目标的任何先前补间。例如
createjs.Tween.get(foo).to({x:100, alpha:0.5}, 200);
createjs.Tween.get(foo, {override:true}).to({x:500}, 500);
第二个补间将覆盖第一个补间,因为它们都以 foo
为目标。第一个补间不会 运行.
如果你想停止补间,只需保留对补间的引用,然后使用 setPaused(true)
。这有效地杀死了补间。
var tweensToKill = [];
tweensToKill.push( new createjs.Tween.get(foo).etc(...) );
tweensToKill.push( new createjs.Tween.get(bar).etc(...) );
// ... later:
while (tweensToKill.length) {
tweensToKill.pop().setPaused(true);
}
我已经创建了一些补间,但我需要停止它们
因为我需要用新的补间重用一些资源。 override:true 对某些人有帮助,但是,
就是这个功能,一旦触发,有定时器,不管怎么玩,你可以看到有很多回调
window.autoSurfaces = function(){
if(!window.gameStarted){
console.log("autoSurfaces");
playAutoScene();//start playing function to control numbers and alpha of wheels
var delay = 700
var animtime = 500
currentTween = createjs.Tween.get(leaves_anim).to({alpha:.7}, animtime).wait(800).call(leavesOut);//call end frame function
tweenAray.push(currentTween)
console.log(currentTween)
leaves_anim.gotoAndPlay("go");
function leavesOut(){
currentTween = createjs.Tween.get(leaves_anim).to({alpha:0}, animtime).wait(200).call(snowIn);
tweenAray.push(currentTween)
console.log(currentTween)
}
function snowIn(){
currentTween = createjs.Tween.get(snow_anim).to({alpha:1}, animtime).wait(800).call(snowOut)
tweenAray.push(currentTween)
console.log(currentTween)
snow_anim.gotoAndPlay("go");
}
function snowOut(){
currentTween = createjs.Tween.get(snow_anim).to({alpha:0}, animtime).wait(delay).call(stopAll);
tweenAray.push(currentTween)
//console.log("fired");
function stopAll(){
playAutoOut();
leaves_anim.gotoAndStop(0);
snow_anim.gotoAndStop(0);
}
}
}
}
然后我设置了 currentTween 的全局变量:
currentTween = createjs.Tween.get(target).to({alpha:.7}, animtime).wait(800).call(callHandler);
然后:
removeTweens(currentTween);
尝试设置数组 - tweenAray.push(currentTween)
tweenAray.removeTweens(currentTween)
还有 createjs.Tween.removeAllTweens();
甚至
createjs.Tween.removeAllTweens = function() {
var tweens = createjs.Tween._tweens;
for (var i=tweens.length-1; i>=0; i--) {
tweens[i]._paused = true;
tweens.splice(i,1);
}
};
没有任何反应或出现错误 我正在从 Flash CS6
导出有什么指点吗?
干杯
我不确定我是否完全理解你的问题,但这里有一个快速的说明...
使用覆盖将导致新补间停止具有相同目标的任何先前补间。例如
createjs.Tween.get(foo).to({x:100, alpha:0.5}, 200);
createjs.Tween.get(foo, {override:true}).to({x:500}, 500);
第二个补间将覆盖第一个补间,因为它们都以 foo
为目标。第一个补间不会 运行.
如果你想停止补间,只需保留对补间的引用,然后使用 setPaused(true)
。这有效地杀死了补间。
var tweensToKill = [];
tweensToKill.push( new createjs.Tween.get(foo).etc(...) );
tweensToKill.push( new createjs.Tween.get(bar).etc(...) );
// ... later:
while (tweensToKill.length) {
tweensToKill.pop().setPaused(true);
}