Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AS3-无序XML IMG加载_Xml_Actionscript 3_Image_Preloader - Fatal编程技术网

AS3-无序XML IMG加载

AS3-无序XML IMG加载,xml,actionscript-3,image,preloader,Xml,Actionscript 3,Image,Preloader,我有以下代码可在我的项目中加载拇指和完整图像: private function processXMLHandle(e:Event):void { var xml:XML = new XML(e.target.data); for each (var line:XML in xml.IMAGE) { var file:String = line.@THUMB;

我有以下代码可在我的项目中加载拇指和完整图像:

private function processXMLHandle(e:Event):void
    {
        var xml:XML = new XML(e.target.data);

        for each (var line:XML in xml.IMAGE)
        {
            var file:String = line.@THUMB;              

            var loader:Loader = new Loader();
            loader.load(new URLRequest(file));

            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);

            var fileFull:String = line.@FULL;

            var loaderFull:Loader = new Loader();
            loaderFull.load(new URLRequest(fileFull));
            loaderFull.contentLoaderInfo.addEventListener (Event.COMPLETE, completeFullHandler);

        }

        myXMLLoader.removeEventListener(Event.COMPLETE, processXMLHandle);
    }
当我推送我为此创建的数组时,图像以未排序的顺序出现

我的一个朋友告诉我,事情是这样的:“小文件先提交”。他告诉我装载机有问题,但他帮不了我

谁能告诉我怎么了


谢谢

看起来您正在循环浏览包含图像列表的给定XML文档,并在循环中异步加载图像。在这样做时,显然较小的图像将首先完成,从而引发Event.COMPLETE事件。这是因为您要求flash立即同时加载所有图像

您可能想做的是先加载第一个映像,然后在循环中同步加载映像…当执行images Event.COMPLETE时,继续加载下一个映像,依此类推,直到它们全部完成。这样做将迫使应用程序按照XML中定义的顺序加载图像,并且一次加载一个图像,有点像队列


祝你好运

实现这一点的最佳方法是对代码进行多一点结构

首先,创建一个类(我们称之为ImageLoader),负责加载thumb和完整图像。这将是一个包含2个加载程序实例的类。为每个项创建此类的实例,并在开始之前将它们推入数组中

数组已满后,迭代数组,指示ImageLoader实例启动。此方法将依次调用其每个装入器实例的装入方法

两台装载机完成后,表示已完成


在更高级别,在包含ImageLoader实例数组的同一类中,侦听每个ImageLoader实例发出的自定义事件。把他们算进去。当您计算完数组中的项目数后,加载就完成了,数组的顺序与开始时相同,拇指和完整图像可以方便地分组。

Ralph,谢谢您的回答。。但是你有没有关于我如何做到这一点的例子?斯宾德,谢谢你的解释。这对我来说真的很有意义,但我无法执行。我正在学习动作脚本,它对我来说太复杂了。