CreateJS:无法让补间工作

时间:2012-09-02 21:15:58

标签: javascript canvas tween createjs

所以,

我刚刚开始学习CreateJS,我遇到了第一个问题:我无法补间工作(因为我希望它能够正常工作)。

以下是示例:http://www.hakoniemi.net/labs/createjs-test/

我希望让云从右向左移动 - 此刻它只会跳到目标。

代码看起来:

 createjs.Tween.get(stack["cloud"]).to({"x":25}, 1000).call(test);

其中createjs.Tween.get(stack["cloud"])有效且执行函数test。然而,根本没有1000毫秒的视觉效果。

我查看了教程,这是事情应该如何运作,但事实并非如此。我做错了什么?

编辑:如果我在控制台中使用不同的值重新执行代码,则补间和视觉效果会正常发生(这里是使用setTimeout的版本:http://www.hakoniemi.net/labs/createjs-test/index2.html

1 个答案:

答案 0 :(得分:2)

中设置初始x值时出现类型问题
if (this.getAttribute("x")) {
  ref.x = this.getAttribute("x");
}

问题是getAttribute()返回一个字符串,您可以验证输出Object.prototype.toString.call(ref.x)。这样,似乎第一次补间尝试运行它无法进行正确的数学运算。最后,它正确地将值更新为结束值作为数字,这就是为什么下一次调用相同方法的原因正常工作。

你可以通过确保ref.x是一个数字来解决这个问题。例如:

if (this.getAttribute("x")) {
  ref.x = parseInt(this.getAttribute("x"));
}

您可以在此fiddle中看到它正常工作。

最后一点,BitmapImageLoaded在加载后立即将资源添加到舞台上。如果您的云图像在背景之前加载,它将被置于其下,您将无法看到它们。 (以防万一)))