2009-07-06 58 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。