如何在动画cc上播放我的功能?

问题描述 投票:0回答:1

我创建了一个函数:

function playFirework() {
createjs.Tween.get(this.red_firework, { loop: false })
.to({ y: 100 }, 1000, createjs.Ease.getPowInOut(2));
}

这使得烟花在画布上移动到y = 100。当我删除该功能并离开身体时,它会自动播放。我试着打电话给它

playFirework();

要么

this.playFirework();

但它似乎没有发挥。

有什么想法吗?

javascript animation createjs animate-cc
1个回答
0
投票

这是一个常见问题。您的函数是匿名定义的,因此它仅在该框架的范围内可用。当它被调用时,this是全局的,所以this.red_firework是未定义的。

一个简单的解决方案是在this上定义函数。

this.playFirework = function() {
    createjs.Tween.get(this.red_firework, { loop: false })
      .to({ y: 100 }, 1000, createjs.Ease.getPowInOut(2));
}

如果您使用this.playFirework()调用它,这将使范围正确。

您也可以将函数保持原样,但将调用绑定到this

playFirework.call(this);

希望有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.