flash as3 movieClip loader没有按数字顺序加载

时间:2011-02-23 17:20:20

标签: flash actionscript-3 actionscript loader movieclip

我正在加载一系列电影剪辑并使用flash as3将它们添加到舞台上,但问题是影片剪辑在完成加载后会立即添加到舞台中,而不是按顺序添加到舞台中。数组,因此屏幕上的顺序显得混乱。如何确保它们以与URL中引用相同的顺序添加到舞台中?这是我的代码:

var currentLoaded:int = 0;

function loadThumbs(){
    for (var i in project_array){
        var thumbLoader:Loader = new Loader();
        thumbLoader.load(new URLRequest(project_array[i].project_thumb));
        thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
    }
}

function thumbLoaded(e:Event):void {
    project_array[currentLoaded].projectThumb.thumbHolder.addChild(e.target.content);
    admin.slideHolder.addChild(project_array[currentLoaded].projectThumb);
    currentLoaded++;
}

3 个答案:

答案 0 :(得分:1)

资产的加载速度可能比其他资产更快,所以这样的事情可能会有所帮助......

  function thumbLoaded(e:Event):void {
      project_array[currentLoaded].projectThumb.thumbHolder.addChild(e.target.content);
      currentLoaded++;
      if(currentLoaded>=project_array.length){
        addAssetsToStage();
      }
    }

    function addAssetsToStage():void{
      for(var i:int=0;i<project_array.length;i++)
      {
        admin.slideHolder.addChild(project_array[i].projectThumb);
      }   
    }

答案 1 :(得分:1)

我只是输入相同的解决方案...... 要以某种特定顺序加载,您必须使其递归。 您可以尝试使用greensock中的loadermax库。坚如磐石,快速轻巧。 除了非常容易使用,你可以设置平行加载踏板的数量。 你可以找到它here

答案 2 :(得分:0)

嗯,我想这很有效 - 但是如果有人想出办法在没有等待每个先前的图像加载之前加载,请告诉我!

    var currentLoaded:int = 0;

function loadThumbs(){
    if (currentLoaded < project_array.length){
        var thumbLoader:Loader = new Loader();
        thumbLoader.load(new URLRequest(project_array[currentLoaded].project_thumb));
        thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
    }
}

function thumbLoaded(e:Event):void {
    project_array[currentLoaded].projectThumb.thumbHolder.addChild(e.target.content);
    admin.slideHolder.addChild(project_array[currentLoaded].projectThumb);
    currentLoaded++;
    loadThumbs();
}