首先,我是一个初学者,很抱歉,如果问题很明显,但我没有看到。
无论如何,我的问题是关于SharedObject - 当我尝试使用flush()
写入磁盘时,它会抛出
错误#2130:无法刷新SharedObject。
我在整个网络上检查过类似的问题,但问题仍然存在。我正在努力工作的代码是
var time:int;
var saveDataObject:SharedObject=SharedObject.getLocal("saveDataFile");
if (saveDataObject.data.savedTime==null) {
time=0;
time=time+1;
saveDataObject.data.savedTime=time;
} else {
time=saveDataObject.data.savedTime;
time=time+1;
saveDataObject.data.savedTime=time;
}
var timer:TextField = new TextField();
addChild(timer);
timer.defaultTextFormat=mainFormat;
timer.embedFonts=true;
timer.antiAliasType=AntiAliasType.ADVANCED;
timer.text=String("Time launched:" +time);
saveDataObject.flush();
trace(saveDataObject.size);
非常感谢任何帮助!
答案 0 :(得分:2)
您的问题很可能是因为您的Flash播放器设置为不允许Flash播放器将数据保存到您的计算机。
flush()方法在无法保存时抛出Error异常。它成功时返回SharedObjectFlushStatus.FLUSHED。当需要额外的存储空间时,它返回SharedObjectFlushStatus.PENDING。
你的flush()方法抛出错误。这意味着Flash Player无法将共享对象写入磁盘。如果用户永久禁止本地信息存储,则可能会发生此错误。
这不是您的代码的问题。
您可以到此处更改存储设置:
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html
最好的办法是在冲洗时放一个try catch。这样就可以捕获错误并且不会使程序崩溃。此外,如果你发现它我认为Flash播放器可能会提示用户使用存储设置并允许他们更改它们。我记不起来。但我相信你可以研究并发现它。