我试着让这个游戏在闪存/ AS3中进行,只要玩家不输就行。球员上场时间越长,他/她的得分就越高。
我还需要保存高分,所以我决定使用文本文件保存这个。我使用模式更新打开该文件,以便如果该文件不存在,则创建该文件并进行读写。但是很明显,当第一次创建文件时,它是空的,所以当我试图读取文件中的数据时,它返回错误#2030。然后,它不会执行任何涉及文件流的代码。而且,即使文件中有一个数字,我也不能读它,因为程序不知道高分将是多少位数。这是我正在使用的代码:
var file:File = File.documentsDirectory;
file = file.resolvePath("hscore.txt");
var fileStream:FileStream = new FileStream();
fileStream.openAsync(file, FileMode.UPDATE);
var buffer:Number = fileStream.readInt();
if (buffer > 0){
if (score > buffer){
buffer = score;
fileStream.writeInt(buffer);
}
else{
highScore.text = String(buffer);
}
}
else{
fileStream.writeInt(score);
highScore.text = String(score);
}
fileStream.close();我尝试使用readUTF/writeUTF和readUTFBytes/writeUTFBytes,而不是readInt/writeInt,但是对于readUTF/writeUTF,它只会给出相同的错误,对于readUTFBytes/writeUTFBytes,程序需要知道高分是多少位数。如果有人知道如何避免2030年的错误,或者知道如何读取文件而不到达末尾,或者知道如何查看文件中有多少位数,请告诉我。
我本可以在文件中添加一行,告诉程序有多少位数,但是当文件是新的时,文件流将到达文件的末尾,同时试图读取数字数。我也对其他储存高分的方法持开放态度,并在以后阅读。提前感谢您的帮助。
我试着用Adobe为Android做这件事。
发布于 2014-04-27 18:26:25
根据评论中的帮助回答我自己的问题:
感谢“维斯珀和克雷格”
*编辑*
意识到你不需要在第一步关闭文件.
*编辑2*
不是UTF-8,ASCII
https://stackoverflow.com/questions/23324031
复制相似问题