首先,我是一个完全的初学者,如果问题很明显,但我没有看到它,那么很抱歉。
无论如何,我的问题是关于 SharedObject - 当我尝试使用 flush()
写入磁盘时,它会抛出
Error #2130: Unable to flush 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);
非常感谢任何帮助!
最佳答案
您的问题很可能是因为您的 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 播放器可能会提示用户存储设置并允许他们更改它们。我不记得。但我相信您可以研究并找到答案。
关于actionscript-3 - Actionscript 3.0 SharedObject刷新()问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499660/