在Flex中使用本地共享对象

2853人阅读 评论(1) 收藏 举报

本地共享对象的概念想必都很清楚了,有些类似于浏览器的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>

1.



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.   }

 

 

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1038095次
    • 积分:13692
    • 等级:
    • 排名:第914名
    • 原创:305篇
    • 转载:28篇
    • 译文:0篇
    • 评论:592条
    最新评论
    [╄ 冷枫]简介