如何在 as3 上自动保存我的首选项?

How do I automatically save my preferences on as3?

如何使用 actionScrpt3 中的按钮自动保存游戏和加载游戏?

我正在开发一款游戏,我想在可以自动保存游戏时离开游戏,当我再次启动游戏时,主菜单中会出现一个按钮,它会在保存游戏的位置加载游戏

谢谢

最简单的方法是通过特定操作将文件保存到应用程序存储目录(例如单击保存按钮,或在特定时间段后等)。

根据您的需要,您可以选择保存简单的文本文件、XML 文件甚至 JSON 文件,以适合您的需要为准。只需将您的数据插入文件并将其保存到应用程序存储目录即可。

以下是将一个简单的文本文件保存到应用程序存储目录的代码:

var dataToSave:String = "Some data to be saved.....";
var file:File = File.applicationStorageDirectory.resolvePath("savedUserInfo.txt");
var stream:FileStream = new FileStream();
stream.open(file, FileMode.WRITE);
stream.writeUTFBytes(dataToSave);
stream.close();

你可以把上面的代码放在一个方法里面,当你想保存数据的时候调用。

每次在应用程序启动时,您都可以检查文件是否存在并加载数据,并根据 resume/restore 游戏状态执行您的操作。

这是加载文件的代码:

var file:File = File.applicationStorageDirectory.resolvePath("savedUserInfo.txt");
if(file.exists){
    var stream:FileStream = new FileStream();
    stream.open(file, FileMode.READ);
    var data:String = stream.readUTF(); 
    stream.close();
    //perform your operations to restore/resume game state
}else{
    //there was no saved game file. Resume normal game bootup.
}

正如我所说,这可能是将文件保存到应用程序存储目录的最简单方法。根据您的需要,您可能希望选择对代码更友好的格式,如 JSON 或 XML 来保存和加载数据。当然,根据您决定的格式,会有一些代码更改。

此外,请确保您设置了写入文件的权限。为此,您需要在应用程序描述符中添加以下内容,尤其是 "WRITE_EXTERNAL_STORAGE" 行。

<android>
    <manifestAdditions><![CDATA[
        <manifest android:installLocation="auto">
            <uses-permission android:name="android.permission.INTERNET"/>
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        </manifest>
    ]]></manifestAdditions>
</android>

希望这对您有所帮助。干杯。