我写了一个数组,当一个hittest发生时,一个数字应该被推入数组。但是,当我使用myArray.push时,它输入数字,当我再次调用myArray.push时,不是再次输入数字而是在我的数组中有2个数字,它只是在同一个地方输入数字。所以,如果我使用trace(myArray.length),无论它推了多少次,它都会说我存储了1个数字。 这是我的代码:
if (hitTestObject(target.hit)) {
//pushes a number into an array
myArray.push();
//checks array length
if (myArray.length == 3) {
//do stuff
}
}
我在myArray.push()的参数中尝试了数字,字符串和Math.random(),但我总是得到相同的结果,我的数组中只有1个项目。 作为参考,这是我为它编写变量的方式:
public var myArray:Array = new Array();
答案 0 :(得分:1)
你必须把东西推进阵列。尝试:
myArray.push(myArray.length);
然而,看起来你只是增加数字而不是创建一个数组会更好。数组是稍后引用的对象的容器。所以,除非你需要跟踪数组中的第三个对象实际上是'2'......否则数组是无用的。尝试创建一个数字并每次增加变量。像这样:
// Declared outside of the function
var integer:int = 0;
//
if (hitTestObject(target.hit)) {
integer = integer + 1;
// likewise you could use ++integer or integer++;
if (integer == 3) {
//do stuff
}
}
答案 1 :(得分:1)
根据您的代码,您实际上并没有将任何内容推送到数组中。
正确的语法是:
myArray.push(something);