sharedObject位置

时间:2013-02-26 08:16:32

标签: actionscript-3 shared-objects

我正在使用此方法将共享对象保存在特定位置,但我无法提供路径

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]

1 个答案:

答案 0 :(得分:4)

SharedObjects会自动保存在预定义的位置,并且它们不是跨域的,这意味着每个域只能读取自己的SO。

localPath只是一个参数,用于定义Flash播放器应保存SO的预定义位置的子文件夹。默认情况下,这是指保存SO本身的SWF。

  

localPath: String [optional] - 一个字符串,它指定创建共享对象的SWF文件的完整路径或部分路径,并确定共享对象在本地存储的位置。默认值是完整路径。

此外:

  

虽然localPath参数是可选的,但您应该考虑使用它,特别是如果其他SWF文件需要访问共享对象。如果共享对象中的数据特定于一个不会移动到另一个位置的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,那么您将直接在www.flickr.com和同一域中的其他SWF中找到SO文件将自由访问它。