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

时间:2017-03-29 13:11:31

标签: android actionscript-3 air

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

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

谢谢

1 个答案:

答案 0 :(得分:2)

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

根据您的需要,您可以选择保存简单的文本文件,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();

您可以将上述代码放在方法中,并在想要保存数据时调用。

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

以下是加载文件的代码:

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>

希望这会有所帮助。干杯。