我正在flash builder 4.6中构建一个应用程序,我有文件(jpgs flvs等)在线,但为了节省带宽我将文件下载到用户文件夹,所以它们只下载一次,到目前为止所有不错,但是,我需要检查移动设备上已存在的文件是否已在线更新并重新下载。我试着在没有运气的情况下寻找一个这样的例子。
感谢您的帮助。
答案 0 :(得分:0)
好吧,要查看文件夹中的文件,简单的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("@");
答案 1 :(得分:0)
我个人与app配置文件类似。我的应用程序的大部分内容完全由我编写的API驱动,并且API有时会生成大量的JSON数据供应用程序使用。为避免每次启动时下载此数据(通常约为200-300kb),我遵循以下模式:
File.exists
)update
且值为0
的配置文件的请求。这确保没有Unix时间戳会小于此File.modificationDate.time
作为update
值{'valid':'no new data'}
这显然需要一些工作来处理AS3端的JSON返回以及一些PHP,但它确实有效,应该适用于任何类似的情况