作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何验证 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/
我是一名优秀的程序员,十分优秀!