flash - 验证 AS3 SharedObject 数据的属性是否存在

标签 flash actionscript-3 cookies shared

如何验证 SharedObject 的某些属性是否存在?换句话说,我想确保我从本地 SharedObject 中读取了一些有意义的内容(第一次加载 swf 时不应该得到任何好处)

我从 http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/net/SharedObject.html 上找到的信息出发

假设我定义了

var my_so:SharedObject = SharedObject.getLocal("superfoo");

现在,如果我已经在 my_so.data.foobar 下获得了一些东西,我想在我的应用程序中使用它。 (myapp.myfoo 在此之前已经有一个默认值)

if (my_so.data.foobar != null) myapp.myfoo=my_so.data.foobar;

这似乎卡在 Flash 10.1 上。我错过了什么?

编辑:感谢您的帮助,问题已解决。 :)

但是,很高兴看到这种检查 SharedObject 的惯用方式。我发现很多例子教如何使用 SharedObject 但它们似乎掩盖了你需要检查是否在其中保存了任何有值(value)的东西这一事实。这正是第一次加载 .swf 时发生的情况。另一个问题是检查是否成功实例化了 SharedObject(例如,当它被禁用时),但这完全是另一个问题......

最佳答案

我怀疑您遇到了 null vs undefined 问题。

我会尝试使用 hasOwnProperty方法:

if (my_so.data.hasOwnProperty("foobar")) myapp.myfoo=my_so.data.foobar;

有几种方法可以确定对象是否具有特定属性,但 hasOwnProperty() 可能是最好的方法。

关于flash - 验证 AS3 SharedObject 数据的属性是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852090/

相关文章:

javascript - 如何使用javascript在html中交换swf?

actionscript-3 - 如何将多个 'Datas' 传递给 View ?

actionscript-3 - 如果不调用 clearTimeout(), flash.utils.setTimeout() 是否会泄漏内存?

actionscript-3 - 弹性 3/空气 : Writing blank new lines to files using FileStream

Angular 2 - 从响应中获取 cookie

flash - 如何在全屏模式下启用键盘输入?

flash - MediaElement.js 不会在 IE8 中加载媒体

javascript - 禁用第三方 cookie 是否也会禁用第三方 javascript 创建的 cookie?

javascript - 将页面 id 保存在 cookie 中,并从其他页面的数据库中检索该 id 的行

flash - 如何检查 html5 视频支持?