Flex 序列化自定义类 解决 sharedObject 保存自定义对象

问题
我想把自定义类实例存储到LSO
解决办法
使用flash.net.registerClassAlias( )方法保留类型信息并把类实例添加到共享对象的data属性上。
讨论
LSOs 使用特殊的二进制格式,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,第二个参数类引用。

-ActionScript
registerClassAlias( "somePackage.ExampleClass", ExampleClass );

这个代码的作用是把这个类的信息存进LSO,当读取数据时,Flash 播放器就知道这个object到底是什么类。

下面的例子完整实现了类实例的保存,首先创建自定义类:
-ActionScript
// Create a Person class in the model package
package model {
public class Person {
private var _firstName:String;
private var _age:int;
public function Person(firstName:String, age:int) {
_firstName = firstName;
_age = age;
}
public function toString( ):String {
return _firstName + " is " + _age + " years old";
}
}
}

接着,编写主类读取和写入数据
-ActionScript
package {
import flash.net.registerClassAlias;
import flash.net.SharedObject;
import model.Person;
public class Example {
public function Example( ) {
// Map "model.Person" to the Person class
registerClassAlias( "model.Person", Person );
// Create a shared object and store a Person instance in it
var example:SharedObject = SharedObject.getLocal( "example" );
// Test to see if the person instance has been saved already
if ( example.data.person == undefined ) {
trace( "first time, saving person instance" );
var person:Person = new Person("Darron", 24);
// Write the class instance to the local shared object
example.data.person = person;
else {
trace( "person instance already saved, using stored values" );
}
/* Every time this code is executed, the following is displayed:
Darron is 24 years old
*/

trace( example.data.person.toString( ) );
}

这里需要注意的是registerClassAlias( )必须在SharedObject.getLocal( )方法之前调用才有效。否则的话共享对象会把Person解释为普通的object类型进行存储。

转载于:https://www.cnblogs.com/bmate/archive/2011/06/20/2084915.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js禁止页面滚动

1.申明函数&#xff1a; function preventBackgroundScroll(e: React.WheelEvent){ const target e.currentTarget if ( (e.deltaY < 0 && target.scrollTop < 0) || (e.deltaY > 0 && target.scrollHeight - target.clientHeight - target.scrollTo…

当老虎来临时

两个人在森林里&#xff0c;遇到了一只大老虎。A就赶紧从背后取下一双更轻便的运动鞋换上。B急死了&#xff0c;骂道&#xff1a;“你干嘛呢&#xff0c;再换鞋也跑不过老虎啊&#xff01;” A说&#xff1a;“我只要跑得比你快就好了。” 心得&#xff1a;二十一世纪&am…

R学习-小白笔记05

----回归诊断----#样本是否符合正态分布假设&#xff1f;#是否存在离群值导致模型产生较大误差&#xff1f;#线性模型是否合理&#xff1f;#误差是否满足独立性&#xff0c;等方差&#xff0c;正态分布等假设条件&#xff1f;#是否存在多重共线性&#xff1f; ----正态分布检验…

入门笔记(启动篇)

linux启动过程&#xff1a; bios自检&#xff0d;&#xff0d;&#xff1e;MRB&#xff0d;&#xff0d;&#xff1e;GRUB&#xff0d;&#xff0d;&#xff1e;内核加载&#xff0d;&#xff0d;&#xff1e;INIT&#xff0d;&#xff0d;&#xff1e; /etc/i…

乌班图 之 常用操作命令(二)

一、tree命令 tree [目录名]  以树状图列出文件目录 -d 只显示目录&#xff0c;不显示文件。 二、cp命令 cp即copy   cp 源文件 目标文件 -i  重名自动 覆盖 加了 -i 提示   y/n -r  复制目录及该目录下所有字目录和文件&#xff0c;目标文件必须是一个目录名。 三、…

php 对比两个压缩包内容,php实现的zip文件内容比较类

本文实例讲述了php实现的zip文件内容比较类。是一个非常实用的PHP类文件。分享给大家供大家参考。具体分析如下&#xff1a;该php zip文件比较类主要实现比较两个zip文件的内容&#xff0c;返回新增&#xff0c;删除&#xff0c;及相同的文件列表。暂时只支持单层。需求&#x…

Exchange2010外部传输域的使用方法

安装好EX2010后并不能马上与外部邮件进行收发&#xff0c;需要进行以下几个配置&#xff1a; 1、配置接收连接器 2、配置接受域 3、配置发送连接器 可以参考这个链接&#xff1a;http://www.chinaemail.com.cn/server/xtfl/Exchange/201101/59114.html 下面以我的实例来说明一…

Shiro安全框架入门篇

一、Shiro框架介绍 Apache Shiro是Java的一个安全框架&#xff0c;旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证&#xff0c;授权&#xff0c;企业会话管理和加密等。Shiro的具体功能点如下&#xff1a; &#xff08;1&#xff09;…

php 京东首页分类导航,仿京东导航栏

摘要&#xff1a; 仿京东顶部导航栏 仿京东顶部导航栏*{margin:0px;padding:0px;}.header{width:100%;height:35px;background-color:#E3E4E5;}.header_content{width:1200px;height:35px;margin:auto;padding:0px;}.header_left{width:300px;height:35px;line-height:35px…

asp.net ajax1.0基础回顾(七):综合应用

本文将通过学生信息管理来介绍asp.net ajax的综合应用实例&#xff0c;包括“浏览”、“查询”、“添加”和“多选删除”功能&#xff0c;以及其它相关设计。 本示例源代码下载地址&#xff1a;http://down.51cto.com/data/220541 本示例中&#xff0c;程序架构参考Petshop&…

探讨程序员如何学习你不熟悉的技术,以及用什么样的方法去学习.

由于公司的业务拓展&#xff0c;有一部份的程序要用Delphi来实现&#xff08;基于原来的程序拓展&#xff09;现在需要学习Delphi&#xff0c;刚开始接手时感觉不知如何下手&#xff08;也许是本人才疏学浅&#xff09;&#xff0c;于是在网上找了很多资料&#xff0c;总是感觉…

转载:关于对REST的基本认识和理解

1.什么是 REST?REST 是属于 WEB 自身的一种架构风格&#xff0c;是在 HTTP 1.1 规范下实现的。Representational State Transfer 全称翻译为表现层状态转化。Resource&#xff1a;资源。比如 newsfeed&#xff1b;Representational&#xff1a;表现形式&#xff0c;比如用JSON…

php ajax取不到值,PHP没有从Ajax获取值

我一直在搜索所有的答案&#xff0c;但我无法让它工作。我想从ajax发送两个整数值到php。这是ajax部分&#xff1a;$(document).ready(function(){$(input[type"radio"]).click(function(){var id_user$(this).filter(:checked).val();var stringname$(this).attr(na…

ASP.NET MVC3书店--第五节 表单编辑(第二部分)(转)

http://blog.sina.com.cn/s/blog_6ad539a90100r469.html5.5 使用HTML帮助器来截短文字 使用我们的StoreManager控制器中的Index方法添加视图的时候&#xff0c;有一个潜在的问题。事实上&#xff0c;我们的书名与作者名属性的长度值可能超出页面上 所定义的这两个列的长度。我们…

SSL-ZYC 1760 商店选址问题

题目大意&#xff1a; 给出一个城市的地图&#xff0c;商店设在一点&#xff0c;使各个地方到商店距离之和最短。 思路&#xff1a; 这是一道最短路的问题。a[i][j]表示从i到j的最短路径&#xff0c;最终求出最小值并输出。 代码&#xff1a; #include <cstdio> #incl…

c++ java通信 protocol buffer,google protocol buffer (C++,Java序列化应用实例)

google protocol buffer (C,Java序列化使用实例)转载,请注明出处: http://blog.csdn.net/eclipser1987/article/details/8525383 (eclipser163.com)1.下载安装:google protocol buffer 的官网地址是:http://code.google.com/p/protobuf/建议下载稳定版本:protobuf-2.4.1 linu…

hadoop等的下载地址

有的时候要使用老的版本hadoop,找不到地方下载,保存连接如下http://archive.apache.org/dist/hadoop/core/http://archive.cloudera.com/cdh/3/

前端“黑话”polyfill

前言 在Web前端开发这个日新月异的时代&#xff0c;总是需要阅读一些最新的英文技术博客来跟上技术的发展的潮流。而有时候会遇到一些比较高频的“黑话”&#xff0c;在社区里面可能已经是人人皆知的“共同语言”&#xff0c;而你接触的少就偏偏看不懂。就像现在几乎所有中国人…

java 什么是线程同步,java多线程同步集合是什么?并发集合是什么?

java中关于集合的内容也是十分丰富的&#xff0c;而且相关的知识点也是十分多的。多线程集合所涵盖的范围是十分广阔的。今天就来为大家介绍一下&#xff0c;java多线程同步集合是什么以及并发集合是什么?一起来看看吧。首先我们需要知道的是&#xff0c;无论是同步集合还是并…

windwos 批处理重定向, 讲的策彻底

本帖主要参考了《命令行参考》和一些前辈的文献&#xff0c;并加入了我自己的一些理解&#xff0c;希望能对各位有所帮助。 《命令行参考》中对重定向操作符有所论述&#xff0c;不过实在晦涩难懂&#xff0c;并且还有些错误&#xff0c;不利于大家理解。重定向的简单用法相信大…