在Flex中使用本地共享对象

本地共享对象的概念想必都很清楚了,有些类似于浏览器的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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值