如何使用actionScrpt3中的按钮自动保存游戏并加载游戏?
我正在开发一款游戏,当我可以自动保存游戏时我想离开游戏,当我再次启动它时,主菜单中会出现一个按钮,它会加载游戏保存的位置
谢谢
答案 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>
希望这会有所帮助。干杯。