博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flex 学习笔记------Local Shared Object 和 Custom Class
阅读量:5272 次
发布时间:2019-06-14

本文共 2096 字,大约阅读时间需要 6 分钟。

Local Shared Object

actionscript中,SharedObject类可以把数据存在客户端。shared object 有两种类型:local 和 remote。其中Local Shared Object (LSO)类似于浏览器的cookie缓存功能,可以用来记录用户的登录状态或是其他信息。

相对于cookie来说,LSO可以存储更多的数据量且不会超期。

1. 读写 LSO

var example:SharedObject = SharedObejct.getLocal("example");

这里getLocal()方法,若存在名为example的LSO,则返回其相应的内容;若不存在,则创建一个新的LSO,并且命名为example。

example.data.username = "Fran";example.data.array = new Array('1','2','3');example.data.date = new Date();example.data.object = {name:'fran', age:'21'}; var result:String = example.flush();

2. 删除 LSO 

如果想删除 LSO 对象里面的某个变量:

example.data.username = null; // 这里并没有真删除 usernamedelete example.data.username; // 这里是真正的删除了 username

如果想删除整个 LSO 对象:

example.clear(); // 这将在用户的硬盘中删除example对应的文件

3. 设置 LSO 的大小

example.flush(size);  // size不填默认是0,指使用最小的磁盘空间存储example

4. Custom Class: 如何在LSO中保存自定义类的实例

LSO使用特殊的二进制格式,Action Message Format (AMF),当要在LSO中存储类实例时,实例会被编码为包含属性的普通的object。这样当重新从共享对象中读取实例时,已经不是原来的类实例了,因为已不能根据类型信息解码回来。

flash.net包中的registerClassAlias( )方法就是为解决这个问题的,这个方法的使用是很简单的,在AS1.0和AS2.0中写法是Object.registerClass( ),但是在AS3.0里已经被删除了,取而代之的是flash.net.registerClassAlias( )。

registerClassAlias( )方法需要两个参数,第一个参数表示类的别名,可以用任意字符串表示别名,比如modal包中有个Person类,别名可以是modal.Person,第二个参数类引用。

registerClassAlias( "somePackage.ExampleClass", ExampleClass );
// 创建自定义类package model {    public class Person {        private var _firstName:String;        private var _age:int;    }}// 主类package {    import flash.net.registerClassAlias;    import flash.net.SharedObject;    import model.Person;    public class Example {    public function Example( ) {    // 将 "model.Person" 映射到 Person 类    registerClassAlias( "model.Person", Person );    var example:SharedObject = SharedObject.getLocal( "example" );    if ( example.data.person == undefined ) {        trace( "first time, saving person instance" );        var person:Person = new Person("Darron", 24);        example.data.person = person;    } else {        trace( "person instance already saved, using stored values" );    }    trace( example.data.person.toString( ) );}

  

  

 

转载于:https://www.cnblogs.com/zyc-undefined/p/3199963.html

你可能感兴趣的文章
12010 解密QQ号(队列)
查看>>
2014年辛星完全解读Javascript第一节
查看>>
装配SpringBean(一)--依赖注入
查看>>
daydayup2 codeforces143C
查看>>
ANT打包J2EE项目war包
查看>>
UESTC-我要长高 DP优化
查看>>
java选择文件时提供图像缩略图[转]
查看>>
方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
查看>>
Matlab parfor-loop并行运算
查看>>
string与stringbuilder的区别
查看>>
2012-01-12 16:01 hibernate注解以及简单实例
查看>>
iOS8统一的系统提示控件——UIAlertController
查看>>
PAT甲级——1101 Quick Sort (快速排序)
查看>>
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
旅途上看的电影和观后感
查看>>