【发布时间】:2010-12-19 02:39:54
【问题描述】:
如何从服务器下载多个图像并将它们存储在 Flash IDE、Adobe AIR 的应用程序目录中?
具体来说,我正在使用 AMFPHP 从数据库中提取路径并将它们下载到应用程序目录。
【问题讨论】:
标签: air adobe flash-cs4 download amfphp
如何从服务器下载多个图像并将它们存储在 Flash IDE、Adobe AIR 的应用程序目录中?
具体来说,我正在使用 AMFPHP 从数据库中提取路径并将它们下载到应用程序目录。
【问题讨论】:
标签: air adobe flash-cs4 download amfphp
如果我猜对了,您是在尝试使用 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}';
我假设下载的文件是存储写入图像路径的数组的名称。这应该会产生一个 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/ 在 mac os 和 /Users/{username}/Local Settings/Application Data/Adobe/Flash CS3 或 Windows 上的 FlashCS4/{language}/Configuration/StockImages/ 然后,您可以使用 jsfl 文件的路径作为参数调用 Flash。
另一种选择是编写一个命令行工具,它接收两个参数:一些二进制数据和一个文件路径(字符串)
然后您可以编写一个 Flash 面板(一个进行 jsfl 调用并位于 WindowSWF 文件夹中的 swf)并使用 as3 加载图像并调用命令行工具将它们写入磁盘。 您将使用未记录的 FLfile.runCommandLine 来执行此操作。
选项取决于您对 AIR/JSFL/其他语言编写命令行工具的熟悉程度。
我不确定这一切的结果是什么……可能有更简单的方法。
【讨论】: