我创建了一个函数:
function playFirework() {
createjs.Tween.get(this.red_firework, { loop: false })
.to({ y: 100 }, 1000, createjs.Ease.getPowInOut(2));
}
这使得烟花在画布上移动到y = 100。当我删除该功能并离开身体时,它会自动播放。我试着打电话给它
playFirework();
要么
this.playFirework();
但它似乎没有发挥。
有什么想法吗?
这是一个常见问题。您的函数是匿名定义的,因此它仅在该框架的范围内可用。当它被调用时,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);
希望有所帮助!