2009-07-06 76 views
1

我已经看到了一些非常翔实的文章解释说,SharedObject.getLocal的将返回null,如果它不能找到或创建要求的共享对象,但可以找到任何东西,告诉我为什么方法会失败。有人想刺穿它吗?SharedObject.getLocal的()返回null

回答

0

不幸的是,上述back2dos说是正确的 - 基本上闪光灯会告诉你,创建失败,但没有失败的原因。但是,您可以尝试对其为何可能失败做出有根据的猜测,然后提示用户根据需要对失败做些事情。

如果第一次请求它时无法获得空的SharedObject(SO),并且提供的路径是正确的,那么很可能是用户可能已禁用它们。如果写入对象失败,您可以测量您尝试写入的SO的大小,然后如果它超过默认的100KB限制,则可以要求用户增加其存储空间。另外,使用SharedObject.flush()编写SO时,可以指定SO需要的大小,如果该空间不可用,Flash Player将显示一个对话框,要求用户增加其存储空间。

如果用户需要为允许共享对象,或增加允许的存储空间,你可以提供给打开Flash Player设置面板为他们进行必要的更改:

Security.showSettings(SecurityPanel.LOCAL_STORAGE); 
0

您的意思是,在运行时找出操作失败的原因?你不能...

要么你给的路径格式不正确,要么你不能访问对象,因为它是安全的,你的swf不是......或者仅仅是因为用户不允许使用共享对象...以及其他可能的原因...

格尔茨

back2dos

0

其实,如果可以不创建对象,SharedObject.getLocal()会抛出异常。然后可以读取异常消息(或可能的id?)以确定错误。

我刚刚在getLocal()上抛出一个异常,因为我的自定义类中的所有属性都没有setter。