4

このメソッドを使用して共有オブジェクトを特定の場所に保存していますが、パスを指定できません

SharedObject.getLocal("save","how to give path here for window");

これにより、次のエラーが発生します

Error: Error #2130: Unable to flush SharedObject.
at Error$/throwError()
at flash.net::SharedObject/flush()
at OnlineDiagramEditor/SaveData_mouseDownHandler()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3240]
at OnlineDiagramEditor/__SaveData_mouseDown()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3522]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152]
at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2918]

時々それは与える

Error: Error #2134: Cannot create SharedObject.
at flash.net::SharedObject$/getLocal()
at OnlineDiagramEditor/SaveData_mouseDownHandler()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3236]
at OnlineDiagramEditor/__SaveData_mouseDown()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3522]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152]
at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2918]
4

1 に答える 1

5

SharedObjectsは事前定義された場所に自動的に保存され、クロスドメインではありません。つまり、各ドメインは独自のSOのみを読み取ることができます。

localPath、事前定義された場所のFlashPlayerのどのサブフォルダーにSOを保存するかを定義する唯一のパラメーターです。これは、デフォルトで、SO自体を保存しているSWFを指します。

localPath: String [optional]-共有オブジェクトを作成したSWFファイルへの完全パスまたは部分パスを指定し、共有オブジェクトがローカルに格納される場所を決定する文字列。デフォルト値はフルパスです。

また:

パラメータはオプションですがlocalPath、特に他のSWFファイルが共有オブジェクトにアクセスする必要がある場合は、その使用法について検討する必要があります。共有オブジェクトのデータが、別の場所に移動されない1つのSWFファイルに固有である場合は、デフォルト値を使用するのが理にかなっています。他のSWFファイルが共有オブジェクトにアクセスする必要がある場合、または共有オブジェクトを作成するSWFファイルが後で移動される場合、このパラメーターの値は、SWFファイルが共有オブジェクトにアクセスできるかどうかに影響します。たとえば、localPathをSWFファイルへのフルパスのデフォルト値に設定して共有オブジェクトを作成した場合、他のSWFファイルはその共有オブジェクトにアクセスできません。後で元のSWFファイルを別の場所に移動すると、そのSWFファイルでさえ共有オブジェクトにすでに保存されているデータにアクセスできなくなります。

したがって、同じSOにアクセスする必要がある同じドメインに複数のSWFがgetLocal()ある場合は、各SWFに同じパスを指定する必要があります。

http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001508.html


例えば:

Windowsでは、SOはに保存され%APPDATA%\Macromedia\Flash Player\#SharedObjects\ます。

これは、のようなユーザー用のサブフォルダーです5D3RT21F

次に、のように、SOファイルを作成したドメインのサブフォルダーがありますwww.flickr.com

次に、ドメイン上のSWFの相対パスを反映するいくつかのサブフォルダー(のよう\apps\slideshow\show.swf\に)は、ここにSOファイルを見つけることができます。

ただし、/root)を指定するとlocalPath、SOファイルが直接にwww.flickr.comあり、同じドメイン上の他のSWFが自由にアクセスできます。

于 2013-02-26T08:37:14.623 に答える