我已经看过很多非常有用的文章,说明如果找不到或创建请求的SharedObject,SharedObject.getLocal将返回null,但是可以找到任何告诉我为什么此方法的内容失败。有人想拍它吗?
答案 0 :(得分:0)
你的意思是,在运行时找出操作失败的原因?你不能......
您提供的路径格式不正确,或者您无法访问该对象,因为它是安全的,而您的swf不是......或仅仅因为用户不允许使用共享对象......以及可能的其他原因。 ..
格尔茨
back2dos
答案 1 :(得分:0)
不幸的是,back2dos上面说的是正确的 - 基本上Flash会告诉你创建失败了,但不是失败的原因。但是,您可以尝试进行有根据的猜测,了解它可能失败的原因,然后在需要时提示用户对失败做些什么。
如果在第一次请求时无法获得空的SharedObject(SO),并且您提供的路径正确,那么用户可能已禁用它们。如果写入对象失败,您可以测量您尝试写入的SO的大小,然后如果它超过默认的100KB限制,那么您可以要求用户增加其存储空间。此外,在使用SharedObject.flush()编写SO时,您可以指定SO所需的大小,如果该空间不可用,Flash Player将显示对话框,要求用户增加其存储空间。
如果用户需要允许SharedObjects或增加允许的存储空间,您可以打开Flash Player设置面板,让他们进行所需的更改:
Security.showSettings(SecurityPanel.LOCAL_STORAGE);
答案 2 :(得分:0)
实际上,如果它无法创建对象,SharedObject.getLocal()
将抛出异常。然后可以读取异常消息(或可能是id?)以确定错误。
我遇到了getLocal()
抛出异常的问题,因为并非我的自定义类上的所有属性都有setter。