我在 flash builder 4.6 中构建一个应用程序,我有在线文件(jpgs flvs 等),但为了节省带宽,我将文件下载到用户文件夹,因此它们只下载一次,到目前为止一切都很好而且花花公子但是,我需要检查移动设备上我的用户文件夹中的文件是否已在线更新并重新下载。我试图在没有运气的情况下到处寻找这样的例子。
我在这里先向您的帮助表示感谢。
我在 flash builder 4.6 中构建一个应用程序,我有在线文件(jpgs flvs 等),但为了节省带宽,我将文件下载到用户文件夹,因此它们只下载一次,到目前为止一切都很好而且花花公子但是,我需要检查移动设备上我的用户文件夹中的文件是否已在线更新并重新下载。我试图在没有运气的情况下到处寻找这样的例子。
我在这里先向您的帮助表示感谢。
好吧,要检查文件夹中的文件,简单的var files:Array = assets.getDirectoryListing();
就是为您提供所需的内容,
现在的问题是如何知道您的文件是否已更新...基本上,如果它们始终具有相同的名称,您就是不能...我所做的是生成一个随机数,每次添加新文件,并将其添加到文件名中,当您检查时,如果您有相同的编号,则无需更新,在另一种情况下您更新,
这只是你能做的一个想法,如果你有兴趣,我可以帮助你,
干杯!!
这是一个可能使它更清晰的示例:我所做的是:
xml 上的文件名如下所示:file_name?123123
当我再次读取 xml 时,我这样做是为了检查:
var arr1:Array = filename.split("?"); // file name from the localStorage
var arr2:Array = xml.file.name.toString().split("?"); // file name from the XML file
if(arr1[arr1.length -1] != (arr2[arr2.length -1]){
//download the new file and replace the old file
}
ps:我这样做是?
因为@
在读取 xml 时出现了一些问题,并且由于我在 Windows 上工作,并且它不接受文件名中的内容,所以在存储它之前,我只需更改文件名fileName.split("?").join("@");
我个人对应用程序配置文件做类似的事情。我的应用程序的大部分内容完全由我编写的 API 驱动,这些 API 有时会生成大量 JSON 数据供应用程序使用。为了避免在每次启动时下载这些数据(通常约为 200-300kb),我遵循以下模式:
File.exists
)update
,值为0
。这确保了 Unix 时间戳永远不会小于这个File.modificationDate.time
作为update
值发送{'valid':'no new data'}
这显然需要一些工作来处理 AS3 端的 JSON 返回以及一些 PHP,但它确实有效并且应该适用于任何类似的情况