Actionscript 3.0 SharedObject flush()问题

时间:2014-02-01 15:03:50

标签: actionscript-3 flash flash-cs5 flush shared-objects

首先,我是一个初学者,很抱歉,如果问题很明显,但我没有看到。

无论如何,我的问题是关于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);

非常感谢任何帮助!

1 个答案:

答案 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播放器可能会提示用户使用存储设置并允许他们更改它们。我记不起来。但我相信你可以研究并发现它。