AS3 在通过 URLLoader 访问文件后将其删除



在AIR中的AS3中,我使用URLLoader从文件中加载json数据进行解析。然后,我想向数据中添加对象,并使用write而不是APPEND重写同一个文件。AIR编译器说,基本上"不行,文件正在使用中。"

在重新写入或删除文件之前清空数据或关闭URLLoader是不起作用的。

一旦URLLoader加载了文件的数据,你如何控制它?

使用FileStream而不是URLLoader,您就不需要使用一个糟糕的0ms计时器。

好吧,我看到其他人以前已经解决了这个问题。在删除函数消除这个问题之前,只需要一个非常轻微的延迟(实际上是0毫秒的计时器!)。有趣的是,如果wait()函数中没有计时器,而是从那里调用deleteIt(),那么问题就会返回。

import flash.filesystem.*;
import flash.net.URLLoader;
var json:URLLoader
function loadMyJSONData():void 
{
       json = new URLLoader();
       json.addEventListener(Event.COMPLETE, wait);
       json.load(new URLRequest("jsondata.json"));
}

function wait(e)
{
    var timer:Timer = new Timer(0, 1);
    timer.addEventListener(TimerEvent.TIMER, deleteIt);
    timer.start();
    //deleteIt();
}

function deleteIt(e)
{
    var fileToDelete:File = new File();  
    fileToDelete.nativePath = "C:\AIR Test 2";         
    fileToDelete = fileToDelete.resolvePath("jsondata.json");           
    fileToDelete.deleteFile();
}

相关内容

  • 没有找到相关文章

最新更新