Sin*_*int 3 cookies flash shared actionscript-3
如何验证SharedObject的某些属性是否存在?换句话说,我想确保从我的本地SharedObject读取一些合理的东西(第一次加载swf时不应该有任何好处)
我来自http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/net/SharedObject.html上的信息.
让我们说我定义
var my_so:SharedObject = SharedObject.getLocal("superfoo");
Run Code Online (Sandbox Code Playgroud)
现在,如果我已经在my_so.data.foobar下获得了一些东西,我想在我的应用程序中使用它.(myapp.myfoo之前已经有一个默认值)
if (my_so.data.foobar != null) myapp.myfoo=my_so.data.foobar;
Run Code Online (Sandbox Code Playgroud)
这似乎挂在Flash 10.1上.我错过了什么?
编辑:感谢您的帮助,问题得到解决.:)
但是,很高兴看到对SharedObject进行此类检查的惯用方法.我发现了很多教导如何使用SharedObject的例子,但是他们似乎忽略了这样一个事实:你需要检查一下你是否在其中保存了任何有价值的东西.这就是第一次加载.swf时发生的事情.另一个问题是检查一个是否成功实例化了SharedObject(例如,当它被禁用时),但那将是另一个问题......
我怀疑你遇到了null vs undefined问题.
我会尝试使用hasOwnProperty方法:
if (my_so.data.hasOwnProperty("foobar")) myapp.myfoo=my_so.data.foobar;Run Code Online (Sandbox Code Playgroud)
有几种方法可以确定对象是否具有特定属性,但hasOwnProperty()可能是最好的方法.
| 归档时间: |
|
| 查看次数: |
5105 次 |
| 最近记录: |