0

我写了一个数组,当发生命中测试时,应该将一个数字推入数组。但是,当我使用 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(),但我总是得到相同的结果,即我的数组中只有一项。作为参考,这是我为它编写变量的方式:

 public var myArray:Array = new Array();
4

2 回答 2

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
    }
}
于 2013-06-19T16:43:54.967 回答
1

根据您的代码,您实际上并没有将任何东西推入数组。

正确的语法是:

myArray.push(something);
于 2013-06-19T21:22:58.810 回答