【问题标题】:KineticJS - moving sprites causing unknown errorKineticJS - 移动精灵导致未知错误
【发布时间】: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


    【解决方案1】:

    解决了。这与运动无关,并且像我的大多数错误一样,非常尴尬。将动画更改为仅包含一帧的“空闲”而不是“walkDown”时,我只是忘记使用 sprite.setIndex()。

    底线:sprite.setIndex() 很重要。

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 2018-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多