AS3加载多个图像

时间:2011-03-30 00:20:35

标签: xml actionscript-3

我正在使用XML加载图片。现在,情况是图像仅加载到XML中的最后一个条目。 cv是一个弹出窗口,其中包含一个名为cHolder的持有者和一个名为ct的文本字段。图像将加载到cHolder上。如何解决这个问题,以便将图像加载到所有cHolder上?

for each (var projectName:XML in projectAttributes) 
    {
        //trace(projectName);
        var projectDP:XMLList = projectInput.project.(@name == projectName).displayP;
        trace(projectDP);

        var cv:MovieClip = new cView();
        catNo += 1;
        if(catNo % 5 == 0)
        {
            catY += 137;
            catX = -170;
            cv.x = catX;
            cv.y = catY;
        }
        else
        {
            cv.x = catX;
            cv.y = catY;
            catX += 112;
        }

        imageLoader.load(new URLRequest(projectDP));        
        cv.cHolder.addChild(imageLoader);
        cv.ct.text = projectName;
        cv.buttonMode = true;
        this.addChild(cv);
    }

2 个答案:

答案 0 :(得分:1)

您需要为每个图像使用单独的加载器对象。像这样:

for each (var projectName:XML in projectAttributes) {
    ...
    imageLoader = new Loader();
    imageLoader.load(new URLRequest(projectDP));
    ...
}

希望有所帮助!

答案 1 :(得分:0)

我强烈推荐LoaderMax(http://www.greensock.com/loadermax/)它非常适合装载多件物品。

样本将是:

var queue:LoaderMax = new LoaderMax({onComplete:onComplete});

queue.append(new ImageLoader("img/photo1.jpg", {name:"photo1"}));
queue.append(new ImageLoader("img/photo2.jpg", {name:"photo2"}));
queue.append(new ImageLoader("img/photo3.jpg", {name:"photo3"}));
queue.append(new ImageLoader("img/photo4.jpg", {name:"photo4"}));

queue.load();

function onComplete() {
  trace("All done");
  cv.cHolder.addChild(queue.getContent("myPhoto1")); // etc
}

您可以使用数组等来存储引用等。