Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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
Image 使用一个功能保存多个图像-AS3 ADOBE AIR_Image_Actionscript 3_Air - Fatal编程技术网

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

Image 使用一个功能保存多个图像-AS3 ADOBE AIR,image,actionscript-3,air,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 如果我做了产品[10]输出将是第9个链接(类似:)http://www.myWebsi

我有一个包含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
如果我做了
产品[10]输出将是第9个链接(类似:
)http://www.myWebsite.com/lalaland.jpg“

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

我设法为一个带有特定链接的图像这样做,如下所示:

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); 
        } 
}
问题:有没有办法通过我的
产品
阵列的web链接下载所有图像?(如果图像已经存在,请替换它们。我可以使用
if(image1.exists){
if(image2.exists){
等方法来下载每个图像。但可能有更简单的解决方案)

如果你能告诉我如何,用一点代码,我可以做到这一点

另外,请注意,我想在
Uiloader
中加载图像,如下所示:

    function loadImages():void {
uiloader1.source = image1.url;
uiloader2.source = image2.url;
etc...
    }

不要想太多。你有你的图像数组。你有保存一个图像的测试例程。现在把它放在一起:

  • 有些函数初始化并启动它
  • 拼接(或弹出)阵列上的项目–或使用索引
    var
    访问阵列中的项目
  • 将其传递给下载函数
  • 下载完成后,从数组中弹出另一项或增加索引。但首先要测试
    array.length==0
    或`index>array.length。如果其中一项为真(取决于您使用的方法),则完成下载
  • 如果你想变得更有趣,你可以显示一个进度条,并在每次下载完成时更新它

  • 我认为
    For
    循环可能有助于您在多次迭代中重复执行指令(即:图像总数)。请参见此。遇到问题时,在此处询问并显示错误代码。Thx获得答案。我阅读了这篇文章。它告诉我如何重复指令,但没有告诉我如何使用不同的名称保存每个图像(像image1,然后是image2..等等)。因为如果我做
    while(products.movieimage<18){saveImage();}
    ,它会每次重复函数saveImage并替换我的“
    test.jpg
    ”文件。只需做一个
    var num:int=1;
    然后当你做if语句时,你将num作为函数变量
    while传递(stuff<18){saveImage(num);}
    然后在该函数中
    saveImage
    你说
    filename=“image”+String(num);num++
    ,其中通过使用
    num++
    意味着
    num
    的值在下次使用
    {saveImage(num);}时增加+1
    …非常感谢。我会试试看!我的数组包含18个链接。因此我可以编写18个下载函数,每个函数中保存的文件都有不同的名称(image1、image2、image3…image18).但这将是非常长的,而且,我认为,是糟糕的编码。我正在寻找一种方法,使用1个函数,可以将包含web链接的阵列的所有图像保存到18个不同的文件中。如果您有示例代码可供共享(不完全是为了这个项目。我知道他会占用你太多的时间。但也许有人在我面前有同样的问题??如果我能有一些代码,我会很激动的。@Steph–不,你误解了。把它想象成一排或一排人在酒店前等出租车。那排是你的阵列。出租车是你的下载路线酒店门卫检查是否有人排队,如果有,他会叫另一辆出租车……明白我的意思。至于“给你一些密码”–你不会用这种方式学习的,是吗?谢谢你的解释。我会尝试编写代码,但我是根据示例代码学习AS3的。现在已经3年了,每次我在论坛或网站上获取示例代码时都是这样学习的。复制工作代码,并阅读它进行学习。进行一些修改,看看我是否更改此代码时会发生什么这是我学习的方式(从我更改的工作代码开始)。