~只所以wo k a o ,是因为换了很多个标题,都被网易给屏蔽了- -!只能无语了。。。
很久很久以前想做一个小游戏的排行榜。将分数存储在本地,很轻易得做到了。结果就是死都无法读取出来。
今天没事将代码又看了一遍,我靠。
就因为我一直在初始化程序里将记录分数的数组实例化了。一个实例化过的数组当然是空的,一个空的数组当然是无法读取出任何数据的。。。我k a o 。。。。
将代码发一下,给需要的朋友看看。
这个是存储的类,也是主类
package{
imp
imp
imp
imp
imp
imp
imp
public class Save extends MovieClip{
private var example:SharedObject = SharedObject.getLocal("Test","/");//创建一个文件名为Test的文件
private var myButton:MyButton = new MyButton();//read Button
private var saveButton:SaveButton = new SaveButton();
private var reBtn:removeBtn = new removeBtn();
public function Save(){
init();
}
private function init():void{
addChild(myButton);
myButton.x = 200;
myButton.y = 300;
myButton.addEventListener(MouseEvent.CLICK,showScore);
addChild(saveButton);
saveButton.x = 200;
saveButton.y = 150;
saveButton.addEventListener(MouseEvent.CLICK,saveData);
}
private function showScore(evt:MouseEvent):void{
new Read();//实例化读取类
}
private function saveData(evt:MouseEvent):void{
example.da
example.da
example.da
example.da
try{
var flushResult:String = example.flush();
if(flushResult == SharedObjectFlushStatus.PENDING){
//检查用户是否同意以足够磁盘空间保存数据
example.addEventListener(NetStatusEvent.NET_STATUS,on
}else if(flushResult == SharedObjectFlushStatus.FLUSHED){
//成功保存,保存后你想要执行的代码
//co
trace("success");
}
}catch(e:Error){
//这个是如果有错误发生,弹出系统的panel,让用户自己设置
Security.showSettings(SecurityPanel.LOCAL_STORAGE);
}
}
private function on
trace("ene");
if(evt.info.co
//用户同意将数据保存在本地
trace("tongyi");
}else if(evt.info.co
//用户不同意将数据保存在本地
trace("bu");
}else{
trace(evt.info.co
}
}
private function remove():void{
//最后移除监听器
example.removeEventListener(NetStatusEvent.NET_STATUS,on
}
}
}
下面是读取的类。用来读取数组里的数据并且输出
package{
imp
imp
public class Read extends MovieClip{
private var exampleRead:SharedObject;
private var example:SharedObject;
private var out:int = 0;
private var outAry:Array = new Array();
public function Read(){
init();
}
private function init():void{
outAry = new Array();
read();
}
private function read():void{
exampleRead = SharedObject.getLocal("Test","/");
for(var i:uint = 0;i < exampleRead.da
out = exampleRead.da
outAry.push(out);
}
order();
}
private function order():void{//排序方法。冒泡法。
for(var i:uint = 0;i < outAry.length;i++){
for(var j:uint = 1;j < outAry.length - i;j++){
if(outAry[j - 1] < outAry[j]){
//两两交换
outAry[j - 1] = outAry[j - 1] + outAry[j];
outAry[j] = outAry[j - 1] - outAry[j];
outAry[j - 1] = outAry[j - 1] - outAry[j];
}
}
}
showOutAry();
}
private function showOutAry():void{
//输出最大的三个数
for(var i:uint = 0;i < 3;i++){
trace(outAry[i]);
}
}
}
}
仅以此代码鞭策曾经抽住的脑子。。。