将放置在舞台上的对象添加到阵列(AS3)

时间:2012-06-29 09:10:41

标签: actionscript-3 flash-cs5

我正在开发一个项目,我在舞台上放置了一堆对象(相同类型)。我想要做的是将所有这些对象添加到数组中。

这是我的代码,虽然不起作用。我知道这不是向舞台添加东西的最佳方式,但我必须这样做。

package 
{   
import flash.events.Event
import flash.display.MovieClip;

public class Pellet_Manager extends MovieClip
{
    var pellets:Array = new Array();
    var pellet:Pellet;

    public function Pellet_Manager()
    {
        var pellet:Pellet;
        for (Pellet in stage)
        {
            pellet = Pellet;
            pellets.push(pellet);
        }
    }
}

}

我在舞台上有5个Pellet实例,我想将它们添加到pellets数组中。我应该给每个人一个像“pellet1”这样的实例名称并循环检查每个实例并将其添加到数组中吗?

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

1)要访问舞台,您已将经理添加到舞台,并在将其添加到舞台时编写回调函数

2)你的foor循环有一些错误

希望它有所帮助!

 package  {   
      import flash.events.Event
      import flash.display.MovieClip;

      public class Pellet_Manager extends MovieClip  {
          var pellets:Array = new Array();
          var pellet:Pellet;

          public function Pellet_Manager()  {
              this.addEventListener (Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
          }

          private function onAddedToStage (evt:Event) {
                var pellet:Pellet;
                for each (var pellet:Pellet in this.stage)   {
                    pellets.push(pellet);
                }
          }


      }

 }

答案 1 :(得分:0)

你应该通过索引在舞台上循环播放儿童:

var pellets:Array = new Array();
var num:int = stage.numChildren;
for (var i:int ; i<num ; i++){
    pellets.push(stage.getChildAt(i));
}