关闭

在Flex中使用本地共享对象

标签: flexapplicationfunctionbuttondateflash
2955人阅读 评论(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
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

如何在共享内存上创建C++对象

游戏中通常会使用共享内存来存放一些数据,这样当程序二进制更新(只涉及代码逻辑变更,不涉及数据结构变更),程序core,异常停止等情况发生时,存放在共享内存中的数据并不会丢失。通过这种方式可以大大减少游...
  • dickyjyang
  • dickyjyang
  • 2014-03-17 19:10
  • 1315

Java多线程与并发应用-(6)-多个线程之间共享对象和数据的方式

此内容来自张孝祥老师的java多线程与并发库高级应用 如果多个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据。 如果多个线程执行的代码不同,这时候...
  • lp1137917045
  • lp1137917045
  • 2015-04-23 23:41
  • 1999

使用Alluxio高效存储Spark RDD

越来越多的公司和组织(例如百度和伯克利)开始将Alluxio和Spark一起部署从而简化数据管理,提升数据访问性能。
  • Alluxio
  • Alluxio
  • 2017-03-02 16:03
  • 2381

FMS3系列(六):使用远程共享对象(SharedObject)实现多人时时在线聊天(Flex | Flash)

转载自:http://www.pin5i.com/showtopic-23952.html FMS开发中,经常会使用共享对象来同步用户和存储数据。对于实现广播文字信息实现聊天的支持非常强大,还可以跟...
  • u012377333
  • u012377333
  • 2015-03-26 10:43
  • 585

flex共享对象ShareObject在win7系统本地保存路径

在本地,创建的文件可以在 C:\Users\{你的用户名}\AppData\Roaming\Macromedia\Flash Player\#SharedObjects\HT6EGZ4Y\#loca...
  • john2522
  • john2522
  • 2011-12-15 10:59
  • 5818

Flex使用BlazeDs与Java交互及自定义对象转换

前天接到领导分发的新任务,需要将之前用JAVA Swing实现的报表前端移植到Flex端,后台不变依然采用JAVA代码,这样就涉及到前端Flex如何同JAVA后台通信的问题。在网上查了下,主要有如下三...
  • u011532498
  • u011532498
  • 2013-08-01 23:38
  • 471

使用BlazeDS实现java与flex传对象时,RemoteClass中包含自己写的类,后台无法转换的问题

环境:BlazeDS 3.0.0.544  http://fandayrockworld.iteye.com/blog/966236 BlazeDS很好的帮助我们实现java对象和Flex...
  • guolong1983811
  • guolong1983811
  • 2011-11-04 11:09
  • 550

杜鹏的个人博客 Flex使用Blazeds与Java交互及自定义对象转换详解

一、建立Flex与Java交互的工程。   本文中讲到的交互是利用Blazeds的,因为这个是免费的,呵呵,我是穷人。   首先就是去下载Blazeds的压缩包,这个可以从官网或者CSDN、Jav...
  • jbgtwang
  • jbgtwang
  • 2012-03-07 23:41
  • 2213

Flex使用Blazeds与Java交互及自定义对象转换详解

====================================================== 注:本文源代码点此下载 =============================...
  • chaoxidawang
  • chaoxidawang
  • 2012-01-11 15:37
  • 205

使用BlazeDS实现java与flex传对象时,RemoteClass中包含自己写的类,后台无法转换的问题

环境:BlazeDS 3.0.0.544   BlazeDS很好的帮助我们实现java对象和Flex对象的相互转化,减少了我们的硬编程量,很方便。 但是最近遇到一个问题,描述如下:   ja...
  • jbgtwang
  • jbgtwang
  • 2012-03-08 00:14
  • 1846
    个人资料
    • 访问:1083341次
    • 积分:14168
    • 等级:
    • 排名:第1015名
    • 原创:305篇
    • 转载:28篇
    • 译文:0篇
    • 评论:592条
    最新评论
    [╄ 冷枫]简介