Image 使用一个功能保存多个图像-AS3 ADOBE AIR
我有一个包含17个图像链接的数组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
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年了,每次我在论坛或网站上获取示例代码时都是这样学习的。复制工作代码,并阅读它进行学习。进行一些修改,看看我是否更改此代码时会发生什么这是我学习的方式(从我更改的工作代码开始)。