我想在KineticJS中編寫代碼來移動由包含它的精靈的組所代表的單元(這是一個組,因爲我可能想向圖形表示添加更多的東西)。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');
一切正常。有了這一行的一切仍然按預期工作的大部分時間(即動畫停止運動結束後),但有時精靈完全消失,我得到下面的神祕的錯誤消息:
Error: d is undefined" in line 29 in kinetic-v3.9.8.min.js
出於測試的目的,現在moveTo通過點擊屏幕上的鼠標來調用。我認爲這可能與我在前一次移動結束之前單擊鼠標有關,但有時甚至在我小心翼翼地不做時也會出現錯誤。
編輯:錯誤發生在大多數時候,當我點擊舞臺邊緣附近,移動順序命令單元「出」它。儘管如此,除非我更改精靈動畫並且我不瞭解連接,否則沒什麼不好。此外,我設法重現錯誤,無需點擊邊界附近的任何地方,它只是更加罕見。