使用一个功能保存多个图像 - AS3 ADOBE AIR

时间:2017-02-26 22:55:53

标签: image actionscript-3 air

我有一个包含17个图像链接的数组

        var products:Array;
        trace(products) 

 // Ouput : 
"http://www.myWebsite.com/zootopia.jpg"
"http://www.myWebsite.com/james.jpg"
"http://www.myWebsite.com/tom.jpg"
    ..etc

如果我products[10].movieimage;输出将是第9个链接(类似于:"http://www.myWebsite.com/lalaland.jpg"

我正在寻找没有对话框的每个图像下载。

我设法为具有特定链接的1张图片执行此操作,例如:

function saveImage (event:Event):void {

 var stream:URLStream = new URLStream(); 
 var image1:File = File.documentsDirectory.resolvePath("test.jpg"); 
 var fileStream:FileStream = new FileStream(); 

stream.load(new URLRequest("http://www.myWebsite.com/lalaland.jpg")); 
stream.addEventListener(Event.COMPLETE, writeComplete); 
        

 function writeComplete(evt:Event):void  { 
                var fileData:ByteArray = new ByteArray(); 
                stream.readBytes(fileData,0,stream.bytesAvailable); 
                fileStream.openAsync(image1, FileMode.UPDATE); 
                fileStream.writeBytes(fileData,0,fileData.length); 
                fileStream.close(); 
                 trace("writeComplete");
                 trace(image1.url); 
        } 
}

问题:有没有办法使用我的products数组的网页链接下载所有图片?(如果图片已经存在,请替换它们。我可以使用{{1每个图像的if (image1.exists){ ..等等。但也许有一个更简单的解决方案)

如果你可以通过一些代码告诉我如何做到这一点。

另请注意,我想在if (image2.exists){加载图片,就像那样:

Uiloader

1 个答案:

答案 0 :(得分:1)

不要过度思考。你有你的图像阵列。您有经过测试的例程来保存一个图像。现在把它放在一起:

  1. 某些功能可以初始化并启动它。
  2. 拼接(或弹出)数组上的项目 - 或使用索引var访问数组中的项目
  3. 将其传递给您的下载功能。
  4. 下载完成后,从阵列中弹出另一个项目或增加索引。但首先你要测试array.length== 0或`索引> array.length。如果其中任何一个为真(取决于您使用的方法),那么您就完成了。
  5. 如果您想获得幻想,可以显示进度条并在每次下载完成后更新。