如何将数组的每个元素添加到舞台as3

时间:2014-04-16 15:03:10

标签: actionscript-3

我有一个带有movieclips(r1,r2等)的数组,并且必须隐藏动画片段,直到有一个hitestobject,所以我最初有这个代码

var replace:Array = [r1,r2,r3,r4,r5,r6,r7,r8]
var len:int = replace.length;
for( var o:int = 0; o < len; o++ )
    this.removeChild( replace[o] );
  replace.length = 0;

每次我有一个hittestoblect时,我想在舞台上添加该数组的每个元素。我的代码有问题,因为在舞台上只添加了r1,我不知道如何修复它。你能帮我吗?

 function releaseToDrop(e:MouseEvent):void
 {
     Star(e.target).stopDrag();
     if (Star(e.target).hitTestObject(target))
   {
      removeChild(Star(e.target));
      for(var o:uint = 0;o<7;o++){
      var replace:Array = [r1,r2,r3,r4,r5,r6,r7,r8]
            addChild(replace[0])

 } 

}

1 个答案:

答案 0 :(得分:1)

这一行:

addChild(replace[0]);

始终添加第一个子节点,添加特定对象,用您拥有的任何索引替换0。如果你想逐个添加它们,就像每次击中时一个接一个地添加它们,你应该在函数之外有一个计数器,每当有一个命中时它会增加

var counter:int = 0;

function releaseToDrop(e:MouseEvent):void
{
   Star(e.target).stopDrag();
   if (Star(e.target).hitTestObject(target))
   {
     removeChild(Star(e.target));
     var replace:Array = [r1,r2,r3,r4,r5,r6,r7,r8]
     addChild(replace[counter]);
     counter = counter+1;
   } 
 }