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