如何在对象上完成补间效果后调用函数。

时间:2014-03-31 08:48:20

标签: easeljs createjs

完成补间效果后如何调用函数。请仔细阅读此代码。我点击开始的瞬间出现箭头标记。我不希望这种情况发生。我希望在开始按钮上完成补间后出现箭头标记。指出我出错的地方。

        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时出现的对象。

1 个答案:

答案 0 :(得分:3)

我根据您的代码使您成为小提琴:http://jsfiddle.net/959TT/5/

你缺少的是:

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

此行会导致舞台不断更新(例如电影中的帧)。

在您的情况下,只有在两个补间完成后才更新阶段,所以看起来之前没有任何事情发生。

更新阶段可能是一项代价高昂的操作,因此您可以考虑添加和删除" tick"听取者根据情况,如下:

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()。监听器。