阵列未正确填充AS3

时间:2013-06-19 16:36:06

标签: arrays actionscript-3

我写了一个数组,当一个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();

2 个答案:

答案 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);