如何从服务器下载多个映像并将它们存储在Flash IDE,Adobe AIR的应用程序目录中?
具体来说,我使用AMFPHP从数据库中提取路径并将其下载到应用程序目录。
答案 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 / Adobe / Flash CS3或FlashCS4 / {language} / Configuration / StockImages / on mac os 和/ Users / {username} / Local Settings / Application Data / Adobe / Flash CS3 或FlashCS4 / {语言} /配置/ StockImages /在Windows上 然后,您可以使用jsfl文件的路径作为参数调用Flash。
另一种选择是编写一个接收2个参数的命令行工具:一些二进制数据和一个文件路径(字符串)
然后你可以编写一个Flash面板(一个生成jsfl调用并存在于WindowSWF文件夹中的swf)并使用as3加载图像并调用命令行工具将它们写入磁盘。 您可以使用未标记的FLfile.runCommandLine来执行此操作。
选项取决于您使用AIR / JSFL /其他语言编写命令行工具的舒适程度。
我不确定这一切的结果是什么......可能有更简单的方法。