AIR> browseForSave奇怪的行为

时间:2012-09-26 20:29:57

标签: actionscript-3 air

我刚注意到我的应用中有些奇怪。

我有一个“保存”按钮,可以触发此功能:

 var saveFile:File = File.desktopDirectory.resolvePath(nameOfProject+".uct");
 saveFile.browseForSave("Save as");
 saveFile.addEventListener(Event.SELECT, saveFileToSystem);

单击时,将显示“浏览以保存”窗口,其中包含建议的名称文件。 现在我注意到,在导出,安装和运行应用程序时,当我第一次单击按钮时,一切正常,但是当我再次单击时,位置看起来像这样:

enter image description here

“where”字段是同一个文件....?即使我点击保存,它也不会保存。奇怪的是,在Flash Builder中测试我的应用程序时没有发生这种情况。 任何提示?

1 个答案:

答案 0 :(得分:0)

我做了上面的解决方法,似乎可以解决这个问题。代码是这样的:

var saveFile:File = File.documentsDirectory.resolvePath("output.file");
var tempMovedAway:File = File.applicationStorageDirectory.resolvePath("temp.temp");
currentFileRenamedForAirBug = picker.clone();
currentFileRenamedForAirBug.moveTo(tempMovedAway), true);
saveFile.addEventListener(Event.SELECT, function():void {
        tempMovedAway.deleteFile();
    } );
saveFile.addEventListener(Event.CANCEL, function():void {
        tempMovedAway.moveTo(currentFileRenamedForAirBug);
    });
saveFile.browseForSave("save file"); 
// MUST be sure to call saveFile.browseForSave, or you risk losing an existing file.

您可以将此批次包装在Air运行时(NativeApplication.nativeApplication.runtimeVersion)和Mac-only的检查中,以避免执行此操作。

另外,如果您的文件保存代码可能依赖于对现有文件进行更改(而不是创建一个全新的文件),则需要稍微调整一下。