使用Adobe AIR下载和存储多个文件(Flash CS4 Dev)

时间:2009-11-21 21:30:24

标签: air adobe flash-cs4 download amfphp

如何从服务器下载多个映像并将它们存储在Flash IDE,Adobe AIR的应用程序目录中?

具体来说,我使用AMFPHP从数据库中提取路径并将其下载到应用程序目录。

1 个答案:

答案 0 :(得分:1)

如果我说得对,你试图用AIR应用程序下载一些图像并将图片放在Flash CS4的文件夹中?

如果是这样,它取决于你的操作系统,所以你需要确保你的路径正确。执行if / else并检查systrayIcon或dockIcon。

你可以解决这个问题。

您可以使用AIR附带的File API将文件保存到正确位置的磁盘,或者保存到临时位置,然后将它们复制到flash文件夹。

您可以使用AIR将下载的文件写入磁盘并编写一个小的JSFL脚本并即时调用它。 类似的东西:

var jsfl:String = 'var files = [';

for(var i:int = 0 ; i < downloadedFiles.length; i++){
 if(i < downloadedFiles.length-1) jsfl += '"'+downloadedFiles[i]+'",';
 else         jsfl += '"'+downloadedFiles[i]+'"];\n';
}

jsfl += 'for(var i = 0 ; i < files.length; i++ ){\n';
jsfl += '\tFLfile.copy(files[i],fl.configURI+'StockImages/'+files[i].substr(files[i].lastIndexOf('/')+1));\n}';

我假设downloadedFiles是存储写入图像路径的数组的名称。这应该会产生一个jsfl脚本,如:

var files = ["file:///path/file_01.jpg","file:///path/file_02.jpg","file:///path/file_03.jpg"];

for(var i = 0 ; i < files.length; i++ ){
 FLfile.copy(files[i],fl.configURI+'StockImages/'+files[i].substr(files[i].lastIndexOf('/')+1));
}

这应该将图像复制到/ users / {username} / Library / Application Support / Adob​​e / Flash CS3或FlashCS4 / {language} / Configuration / StockImages / on mac os 和/ Users / {username} / Local Settings / Application Data / Adob​​e / Flash CS3 或FlashCS4 / {语言} /配置/ StockImages /在Windows上 然后,您可以使用jsfl文件的路径作为参数调用Flash。

另一种选择是编写一个接收2个参数的命令行工具:一些二进制数据和一个文件路径(字符串)

然后你可以编写一个Flash面板(一个生成jsfl调用并存在于WindowSWF文件夹中的swf)并使用as3加载图像并调用命令行工具将它们写入磁盘。 您可以使用未标记的FLfile.runCommandLine来执行此操作。

选项取决于您使用AIR / JSFL /其他语言编写命令行工具的舒适程度。

我不确定这一切的结果是什么......可能有更简单的方法。