从XML文件加载图像只写入加载到屏幕的最后一个文件

时间:2014-01-03 17:13:11

标签: xml actionscript-3 for-loop addchild

我使用XML文件存储有关数据集的信息,代码需要加载XML文件,循环遍历根节点的子集,然后使用收集的信息加载到多个图像文件中。

我已经加载了一个图像,但它始终是该集合中的最后一个。 跟踪loadPath似乎可以工作,它显示2条单独且正确的路径

据推测,每次循环运行时都会覆盖imgLoader,那么我如何将当前实例写入舞台然后转移到另一个舞台上呢?我有点侃侃吗?

var thumbPath : String = "data/images/pre/thumbs/";
var loadPath : String;

xmlLoader.load(new URLRequest("data.xml"));

xmlLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
    myXML = new XML(e.target.data);

    var dbLength:uint = myXML.SECTION[0].DOCUMENT.length();

    // For loop collects info
    for (var i:int = 0; i < dbLength; i++){
        mcArray[i] = myXML.SECTION.DOCUMENT.@TITLE[i];

    };
    for each (var value:String in mcArray) {
            loadPath = thumbPath + value + ".png";
            // trace(loadPath);
            imgLoader.load(new URLRequest(loadPath));
                this.addChild(imgLoader);
    };
} 

1 个答案:

答案 0 :(得分:1)

您可以通过几种不同的方式执行此操作,具体取决于您在加载时如何显示图像。第一种/最简单的方法是为for循环内的每个图像创建一个新的图像加载器,而不是每次都覆盖它。第二种方法是一次加载一个(无循环),并在加载完成后获取位图数据并创建一个新的位图,在屏幕上显示新的位图,然后使用相同的加载器加载下一个图像。