Arrays 数组的一个问题

Arrays 数组的一个问题,arrays,actionscript-3,Arrays,Actionscript 3,我试图保留一个静态数组列表,以便在需要时在flash应用程序中全局调用它,但是它似乎没有向数组列表中添加任何值 package com.globals { import com.player.PlayerBullets; import com.ships.enemy.SpaceDrone; import com.globals.Globals; import flash.display.MovieClip; public class MCActiveLib

我试图保留一个静态数组列表,以便在需要时在flash应用程序中全局调用它,但是它似乎没有向数组列表中添加任何值

package com.globals
{
    import com.player.PlayerBullets;
    import com.ships.enemy.SpaceDrone;
    import com.globals.Globals;
    import flash.display.MovieClip;
    public class MCActiveLibrary 
    {
        private static var enemyShips:Array = new Array();
        private static var enemyBullets:Array = new Array();
        private static var playBullets:Array = new Array();

        public static function addPlayerBullets(bullets:PlayerBullets):void
        {
            playBullets.push(bullets);
            trace(playBullets[1]);
            bullets.id = playBullets.length -=1;
            trace("array Length:"+ bullets.id + "\nbullet ID:"+playBullets.length+"\n");
            Globals._stage.addChild(bullets);
        }
        public static function getPlayerBullets(i:int):PlayerBullets
        {
            return playBullets[i];
        }
        public static function removePlayerBullets(i:int):void
        {   
        trace(i);
            Globals._stage.removeChild(playBullets[i]);
            //updatePositions(playerBullets, i+1);
            //playerBullets.splice(i, 1);
        }
}
我得到的运行时错误是

TypeError:Error#2007:参数子项必须为非null。 在flash.display::DisplayObjectContainer/removeChild()中 在com.globals::MCActiveLibrary$/removePlayerBullets()[H:\HobbyProject\SpaceDevils\com\globals\MCActiveLibrary.as:28] 在com.player::PlayerBullets/eFrame()[H:\HobbyProject\SpaceDevils\com\player\PlayerBullets.as:30]

至于正在运行的跟踪命令

[对象播放包] 数组长度:0 项目符号ID:0 0

这一个让我有点困惑,特别是考虑到对象PlayerBullets被发现在数组的位置0,即使数组长度是0

非常感谢任何人能给予的帮助

换行

bullets.id = playBullets.length -=1;

您的行将更改数组的长度,而不是设置项目符号.id

此外,数组的索引为零,因此跟踪(Playbolds[1]);将失败,因为数组中只有1个对象,位于索引0,而不是索引1。将其替换为跟踪(playBullets[0])

换行

bullets.id = playBullets.length -=1;

您的行将更改数组的长度,而不是设置项目符号.id


此外,数组的索引为零,因此跟踪(Playbolds[1]);将失败,因为数组中只有1个对象,位于索引0,而不是索引1。将其替换为跟踪(playBullets[0])

为什么你写的是
playshills.length-=1
,而不是
playshills.length-1
?请解释一下-Globals.\u stageYeah。。差不多。。感谢kodiak@neil,这是一门专为我设计的课程,我可以从任何需要的地方进入舞台。在这种情况下有助于我在一个没有直接访问后台的类中动态存储一个对象数组。为什么你写的是
playbolds.length-=1
,而不是
playbolds.length-1
?请解释一下-Globals.\u stageYeah。。差不多。。感谢kodiak@neil,这是一门专为我设计的课程,我可以从任何需要的地方进入舞台。在这种情况下会有所帮助,这样我就可以在一个类中动态存储一个对象数组,而这个类不能直接访问stage。哇,谢谢。我怎么会错过这么简单的事情。。一定是瞎了。谢谢marijinWow,谢谢。我怎么会错过这么简单的事情。。一定是瞎了。谢谢marijin