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

标签 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 后立即出现的对象。

最佳答案

我根据您的代码为您制作了一个 fiddle :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

编辑:为了清楚起见,我已经更新了 fiddle ,而且事实证明您需要在删除“tick”监听器后再次调用 stage.update() 一次。

关于easeljs - 如何在对象上完成补间效果后调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22757236/

相关文章:

javascript - 如何在 javascript 中使用新属性扩展现有类?

javascript - 禁用舞台光标上的画架鼠标事件

javascript - 使用 createJS 获取对容器的缓存版本的引用

javascript - 移动物体时如何最好地结合方向运动(向上和向左、向上和向右......)?

javascript - 画架.js : Browser compatibility when placing an image within a container and adding mouse interactions

javascript - CreateJS 在 bask 后面屏蔽图像

javascript - CreateJS 中 2 个移动物体之间的碰撞检测

javascript - 如何在createjs中编写蒙版圆?

javascript - 在 CreateJS 方法 bezierCurveTo 上使用 .apply() 会出现错误

javascript - 如何处理在 HTML5 Canvas 上绘制的形状并更改其属性?