int工作正常,但会导致一些生涩的动作...数字导致AS3中的奇怪行为

时间:2016-05-03 05:41:59

标签: actionscript-3 flash

抬头,我对这件事情都很陌生,所以如果我使用一些不正确的废物,我会道歉。

创建类时,sll $t1, $t1, 16 sra $t1, $t1, 16 数据类型是否会导致问题?我有一个名为Number的{​​{1}},当它被实例化时,我声明了一些我在运行时分配值的属性,例如classAsteroid和{{1} } 例如。当它们被声明为.zVelocity数据类型时,所有内容都会编译并运行正常,但是当通过我的三角函数更改属性时,我会遇到一些不稳定的运动。因此,我将它们全部更改为.xVelocity数据类型,突然发生了一些非常奇怪的事情......当.yVelocity实例不再加载到intNumber坐标时{ {1}}正在运行。相反,所有加载到左上角的Asteroid对象的原点。如果我将.x数据类型更改回.y,则所有.swf个对象都会在stage水平顶部呈现。我希望这是有道理的。我可以上传文件,但我需要一些指导。

.xVelocity

和我的文档int

Sprite

}

我可能错过了一些非常简单的事情。哦,随时可以提供有关您看到我进入的任何可怕习惯的建议,但要完全纠正我的代码可能超出了这个问题的范围,尽管任何尝试都会得到热烈的接受。

**修改

通过实施下面标记为正确的答案解决了生涩的动作!

1 个答案:

答案 0 :(得分:3)

int类型的默认值为0,这就是它们在你的情况下工作的原因,但缺点是它们将所有值四舍五入为整数,这会在动画中产生奇怪的效果。

数字类型的默认值为NaN(不是数字),这就是您遇到很多麻烦的原因。

你永远不会给你的变量一个默认值(你永远不会实例化它们),在int的情况下它起作用,因为它们从零开始,但是在Number的情况下,因为它们以NaN作为默认值开始,所以不起作用值。你一直在尝试使用它们,但它们只会一直返回NaN而且没有任何作用。

我猜你现在知道怎么做但是以防万一:

在使用之前为变量赋值!