扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
本地共享对象的概念想必都很清楚了,有些类似于浏览器的Cookie,在Flash中提供了下面的操作本地对象的方法:
SharedObject.clear() 删除本地共享对象
SharedObject.flush() 立即把共享对象数据写入本地文件
SharedObject.getLocal() 创建或连接本地共享对象
SharedObject.getSize() 取得本地共享对象的指定大小数据
Flex中使用本地共享对象的方法本质上和在Flash中是相同。
基本的使用方法如下:
1. //定义本地共享对象
2. var myLSO:SharedObject;
3. //创建本地共享对象
4. myLSO = SharedObject.getLocal('foo');
5. //给共享对象赋值
6. //可以保存的有数字、字符串、布尔型、XML、日期型、数组型和对象等数据类型
7. currentUserName = 'Liu21st';
8. itemsArray = new Array(101,346,483);
9. currentUserIsAdmin = true;
10. myLSO.data.userName = currentUserName;
11. myLSO.data.itemNumbers = itemsArray;
12. myLSO.data.adminPrivileges = currentUserIsAdmin;
13. //共享对象的写入会在应用程序退出时候自动进行
14. //如果需要强制写入,可以使用flush方法
15. myLSO.flush();
下面我们来看下在Flex中的一个简单的本地共享对象应用。用户点击按钮后立即把在文本输入框中的字符保存到本地共享对象中,第二次运行的时候就会在文本框中显示上次保存的数据
<mx:Application xmlns:mx='http://www.macromedia.com/2003/mxml' initialize='initApp();'>
2. <mx:Script source='LSO_script.as'/>
3. <mx:TextInput id='myTI'/>
4. <mx:Button label='Set Value' click='setVal();' />
5. </mx:Application>
LSO_script.as文件代码如下:
1. var v;
2. var myLSO:SharedObject;
3.
4. function initApp() {
5. // 初始化本地共享对象
6. myLSO = SharedObject.getLocal('dataStorage');
7. if (myLSO==null) {
8. alert('无法创建本地共享对象','Error');
9. } else {
10. getVal();
11. }
12. }
13.
14. function getVal() {
15. // 取得共享对象数据
16. v = myLSO.data.val;
17. myTI.text = v;
18. }
19.
20. function setVal() {
21. // 保存共享对象数据
22. v = myTI.text;
23. myLSO.data.val = v;
24. myLSO.flush();
25. }
更复杂的应用可以保存数组对象到本地共享对象
1. <mx:Application xmlns:mx='http://www.macromedia.com/2003/mxml' initialize='initApp();'>
2. <mx:Script source='LSO2_script.as'/>
3. <mx:VBox backgroundColor='white' borderStyle='solid' marginLeft='10' marginBottom='10' width='150'>
4. <mx:Label text='Color'/>
5. <mx:TextInput id='myColor' width='100' />
6. <mx:Label text='Scent'/>
7. <mx:TextInput id='myScent' width='100' />
8. <mx:Label text='Height'/>
9. <mx:TextInput id='myHeight' width='30' />
10. <mx:Label text='Last SetVal On'/>
11. <mx:TextArea id='myLastDate' width='100' height='75' />
12. </mx:VBox>
13. <mx:Button label='Set Values' click='setVal();' />
14. </mx:Application>
1. var myArray:Array;
2. var myLSO:SharedObject;
3.
4. function initApp() {
5. // 初始化本地共享对象
6. myLSO = SharedObject.getLocal('flowerValues');
7. if (myLSO==null) {
8. alert('无法创建本地共享对象','Error');
9. } else {
10. getVal();
11. }
12. }
13.
14. function getVal() {
15. // 取得共享对象的值
16. myArray = myLSO.data.flowerArray;
17.
18. myColor.text = myArray[0];
19. myScent.text = myArray[1];
20. myHeight.text = myArray[2];
21.
22. myLastDate.text = myLSO.data.date;
23. }
24.
25. function setVal() {
26. //保存共享对象
27. myArray[0] = myColor.text;
28. myArray[1] = myScent.text;
29. myArray[2] = myHeight.text;
30.
31. myLSO.data.flowerArray = myArray;
32. myLSO.data.date = new Date();
33. myLSO.flush();
34. }
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=756722
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者