共享对象的位置
我使用这个方法保存在特定位置的共享对象,但我不能给路径共享对象的位置
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]
共享对象被自动保存在预定的位置和它们不跨域,这意味着,电子ach域只能读取自己的SO。
localPath
只是一个参数,它定义了Flash Player应该保存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文件。
但如果指定/
(根)作为localPath
,那么你会发现,这样在文件在同一个域直接www.flickr.com
和其他SWF将*访问它。
但在方法第二个参数SharedObject.getLocal(“”,“”);指定路径.. – Devendra 2013-02-26 08:39:42
我已编辑我的答案,以反映 – Teejay 2013-02-26 08:41:19
谢谢@teejay .....但有任何其他方式来存储在特定位置的sava数据? – Devendra 2013-02-26 12:09:40