2015-09-09 87 views
1

我已經創造了一些充斥着,但我必須阻止他們需要停止刪除補間動畫

正如我需要重用一些資產與新的補間。 覆蓋:真正幫助一些,但是,

這是函數,一旦被掀起,用定時器,他們發揮不管,你可以看到有很多電話的腰板

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

任何指針出口?

乾杯

+0

有沒有人有任何想法? 在想,也許使用時間軸補間,我將能夠阻止內的所有定時器等? – Roy

回答

1

我不知道我完全理解你的問題,但這裏是它一個快速刺...

使用覆蓋將導致一個新的補間停止任何先前的補間具有相同目標。防爆。

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); }

+0

感謝那 while循環是最好的方法,你知道任何教程或鏈接和時間軸補間的例子,一直沒能找到任何,但它可能是未來的最佳選擇 再次感謝 – Roy