冷枫@CSDN

CSharp程序员大本营:积累平凡就是积累卓越!有了翅膀,你就有了天空!钝到极点的刀才最具杀伤力——因为它是锤子!...

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

 

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JavaProgramers/article/details/756722
个人分类: [E]Flex+CF+Ajax
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

在Flex中使用本地共享对象

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭