我正在使用此方法将共享对象保存在特定位置,但我无法提供路径
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]
答案 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文件将自由访问它。