[AS3]as3.0应用SharedObject保存的使用技巧
在AS3的帮助文档中说:
flush():将本地永久共享对象立即写入本地文件。 如果不使用此方法,则 Flash Player 会在共享对象会话结束时(也就是说,在 SWF 文件关闭时,在由于不再有对共享对象的任何引用而将其作为垃圾回收时,或者在调用 SharedObject.clear() 或 SharedObject.close() 时),将共享对象写入文件。
以前做项目时,测试过,好像是不能保存的。这次测试似乎又能保存了,不知道为什么?我的测试代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
- creationComplete="init()" >
- <mx:Script>
- <![CDATA[
- import flash.utils.setTimeout;
- private var _info:XML = new XML('<data ver="1.3"><item name="ywx" age="29" /></data>');
- private function init():void
- {
- var tempSo:SharedObject = SharedObject.getLocal("test","/");
- tempSo.data.info = _info;
- setTimeout(hoho,1000);
- }
- private function hoho():void
- {
- setTimeout(hoho,1000);
- var tempSo:SharedObject = SharedObject.getLocal("test","/");
- trace(tempSo.data.info,"==CuPlayer.com=");
- }
- ]]>
- </mx:Script>
- </mx:Application>
在程序启动后,tempSo.data.info会保存一个xml对象,但没有调用过SharedObject的flush()方法,意味着info属性是没有保存到硬盘的sol文件里,此时关闭程序(关闭网页或者swf文件),将11-12行代码注释掉,再次编译运行,第22行输出还是有xml对象。就是说保存成功了。
不知道这个自动保存功能是不是真的可靠呢?能否加以利用,项目中现在的做法是没对SharedObject有一个操作,立即调用了flush方法,如果这个自动保存是可靠的,那么就是不是可以省去每次操作后对flush的调用了呢?……
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例