【发布时间】:2012-06-15 18:37:05
【问题描述】:
我正在尝试在 KineticJS 中编写代码来移动由包含其精灵的组表示的单元(它是一个组,因为我可能想在图形表示中添加更多内容)。
运动功能的代码是:
this.moveTo = function(x,y) {
distance = Math.sqrt((this.shape.getX() - x)*(this.shape.getX() - x)+(this.shape.getY() - y)*(this.shape.getY() - y));
time = distance / MOVEMENT_SPEED;
var sprite = this.sprite;
this.sprite.setAnimation('walkDown'); //TODO: change
this.group.transitionTo({
x: x,
y: y,
duration: time,
easing: "ease-in-out",
callback: function(){
sprite.setAnimation('idle');
}
})
}
没有sprite.setAnimation('idle'); 行一切正常。有了这条线,大多数情况下一切仍然按预期工作(即动画在运动结束后停止)但有时精灵完全消失,我收到以下神秘的错误消息:
Dynamic-v3.9.8.min.js 的第 29 行中的错误:d is undefined"
出于测试的目的,现在通过在屏幕上单击鼠标来调用 moveTo。我认为这可能与我在上一个动作结束之前单击鼠标有关,但有时即使我小心不这样做也会发生错误。
编辑:当我在舞台边缘附近单击并且移动命令命令单元“退出”它时,大部分时间都会发生错误。尽管如此,除非我更改精灵动画并且我不了解连接,否则不会发生任何不好的事情。此外,我设法在不单击边界附近的任何位置的情况下重现了该错误,这种情况更加罕见。
【问题讨论】:
标签: kineticjs