2014-03-31 46 views
2

如何在補間效果完成後調用函數。請通過此代碼。箭頭標記出現在我點擊開始的瞬間。我不希望發生這種情況。在開始按鈕完成補間之後,我想要出現箭頭標記。指出我出錯的地方。如何在補間效果完全在對象上完成後調用函數。

 createjs.Tween.get(start_button,{loop:false},true) 
     .to({y:-436,alpha:0},800,createjs.Ease.get(1)).call(function() 
     { 
     l_s.visible=true; 
     var arrow_left=new ARROWS(arrowLeft,200,500); 
     createjs.Tween.get(cent_cont,{loop:false},true) 
     .to({alpha:1},1000,createjs.Ease.get(1)) 
     .wait(3000).call(function() 
     { 

      stage.addChild(arrow_left); 

      stage.update(); 
     }) 
     }) 

l_s,cent_cont是形狀對象(與我所要求的沒有任何關係,所以不打擾)。 arrowLeft是當我點擊start_button時出現的對象。

回答

3

我讓你根據你的代碼小提琴:http://jsfiddle.net/959TT/5/

什麼你錯過的是:

createjs.Ticker.addEventListener("tick", function(){stage.update(event);}); 

這行導致舞臺上不斷更新(如在電影幀) 。

在你的情況下,你只是在兩個補間完成後才更新舞臺,所以看起來在這之前沒有任何事情發生。

更新階段可以是一個代價高昂的操作,所以你可能會考慮添加和刪除「嘀」視情況而定監聽器,像這樣:

function tickHandler(event){ 
    stage.update(event); 
} 

當您需要補間動畫:

createjs.Ticker.addEventListener("tick", tickHandler); 

所有動畫完成後:

createjs.Ticker.removeEventListener("tick", tickHandler); 
stage.update(); // to make sure everything is drawn 

編輯:爲了清晰起見,我已經更新了小提琴,也發現你需要在刪除「tick」監聽器後再次調用stage.update()。

相關問題