如果我选择索引,将不会addChild

时间:2014-05-09 08:33:54

标签: actionscript-3 flash actionscript

我正在尝试仅选择特定图片时添加孩子。我正在尝试测试添加特定图像的Child(索引)。但由于某些原因,当索引为[0]时,它会添加子项,但如果我将索引设置为[1]则会给出错误参数child必须为非null。 当我在循环中使用index [i] addChild时,它会添加所有2个图像。 想知道为什么我不能选择除[0]之外的任何索引。谢谢你的时间!

public var loadedArray1:Array = new Array;
function loadImage1():void {
    for(var i:int = 5; i < somedata.length; i++){
        if(somedata[i]){
            var loader1:Loader = new Loader();
            loader1.load(new URLRequest("http://www.rentaid.info/rent/"+somedata[i]));
        loader1.contentLoaderInfo.addEventListener(Event.COMPLETE,  onImageLoaded1);
        }
    }
}

function onImageLoaded1(e:Event):void {

    loadedArray1.push(e.target.content);

    for(var i:int = 0; i < loadedArray1.length; i++){

        _contentHolder1.addChild(loadedArray1[0]);
        addChild(_contentHolder1);
    }

}
//
loadImage1();

编辑:

What i suppose to do is this but having trouble, getting the index, also putting loading the image with an index. 

loadedArray1.push(e.target.content);

  for(var i:int = 0; i < loadedArray1.length; i++)
  {
      _contentHolder1.addChild(loadedArray1[index]);
      addChild(_contentHolder1);
  }

1 个答案:

答案 0 :(得分:3)

尝试更换:

_contentHolder1.addChild(loadedArray1[0]);

使用:

_contentHolder1.addChild( loadedArray1[i] );

onImageLoaded中的for循环似乎有点无意义,因为你一遍又一遍地添加相同的元素。

所以实际上尝试更换:

  loadedArray1.push(e.target.content);

  for(var i:int = 0; i < loadedArray1.length; i++)
  {
      _contentHolder1.addChild(loadedArray1[0]);
      addChild(_contentHolder1);
  }

使用:

  loadedArray1.push(e.target.content);
  _contentHolder1.addChild( loadedArray1[loadedArray1.length-1] );

  // Use counter here to only add _contentHolder1 once
  loadedCount++;

  //Assuming that `samedata` is a class member (I can't see the rest of your code)
  if( loadedCount == somedata.length ){ 
      addChild(_contentHolder1);
  }

在课程开始时你需要这个:

  private var loadedCount:int = 0;