在数组中存储多个数字(As3)

时间:2014-04-13 01:56:11

标签: arrays actionscript-3 flash

        private var hitArray:Array = new Array [ 10, 20, 30, 40, 50, 60]; 

您好。

我在数组中存储了多个数字,看起来flash不喜欢这个,我猜我告诉数组它将有10个空格,20个空格等......或者数组需要理解它是数据类型的变量。

所以我的下一个想法是使用这个

将一百个数字存储到数组中
    private var hitArray:Array = new Array; 



    public function Main() 
    {
        for (var i:int = 0; 0 < 100; i++)
        {
            hitArray.push(i);
        }



        //iniaite health
        hitCounter = 0;
        resetPos = new Point(x, y);
        //iniation players
        _character = new player();
        timmy = new SirTimmy();
        caroline = new princess();
        goblinCanMove = true;






        stage.addEventListener(Event.ENTER_FRAME, mainGameLoop)

    }

通过这样做,我将能够实现更好的hitTestPoint方法!

    private function enemyCollisionGoblin():void
    {

        //trace(aKnifeArray.length);

        //knive proccess
        for (var o:int = 0; o < aKnifeArray.length; o++)
        {
            var currentKnife:Knife= aKnifeArray[o];
            if (currentKnife.x < 0)
            {
                //trace ('backmissile gone lol');
                aKnifeArray.splice(o, 1);
                currentKnife.removeKnife();
            }


            //if (_character.x < redGoblin.x && _character.x > redGoblin.x - 600)

            for (var p:int = 0; p < hitArray.length; p++)
            {
                var number:Number = hitArray[p];


                if (currentKnife.hitTestPoint(_character.x + number, _character.y - number, true)) //|| currentKnife.hitTestPoint(_character.x - 50, _character.y - 60, true))
                {
                    trace("hit");
                }
            }
        }
    }

我面临的问题是flash不喜欢主构造函数中的for循环,尽管它是一个启动的。

如果变量i大于100,它应该突破for循环,但不是。

我的问题是,我如何在数组中存储数字,因此我可以在命中测试点中使用该数组。

抱歉,我知道这很简单,但我目前正在开发和学习!

建议非常感谢!

1 个答案:

答案 0 :(得分:2)

您获得了无限循环,因为您的循环条件为0 < 100而不是i < 100

 for (var i:int = 0; 0 < 100; i++)

初始化数组的第一种方法不正确。它应该是

private var hitArray:Array = new Array (10, 20, 30, 40, 50, 60); 

你的括号错了。使用Array构造函数创建数组时必须小心,因为:

var awd:Array = new Array (10);

以上将创建一个容量为10的空数组。

var awd:Array = [10];

上面将创建一个数字为10的单个数组。这通常是创建数组的方法,因为它快速而简单。

var awd:Array = [10, 1, 2, 3, 4, 5];