科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件[冷枫]在Flex中使用本地共享对象

[冷枫]在Flex中使用本地共享对象

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在Flex中使用本地共享对象

作者:冷枫 来源:CSDN 2007年9月23日

关键字: 冷枫 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.   }

 

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=756722

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章