0

我刚刚注意到我的应用程序中有一些奇怪的东西。

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

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

单击时,它会显示带有建议名称文件的“浏览保存”窗口。现在我注意到,在导出、安装和运行应用程序时,当我第一次单击按钮时一切正常,但是当我再次单击时,位置如下所示:

在此处输入图像描述

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

4

1 回答 1

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 的检查中,以避免不必要地执行此操作。

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

于 2012-10-12T19:56:38.750 回答