[AS3]registerClassAlias的用法
来源:互联网 发布:mac装虚拟机怎么样 编辑:程序博客网 时间:2024/05/16 03:35
registerClassAlias在利用AMF3进行序列话网络通讯中,是非常有用的。需要把客户端的对象直接传送到服务器得时候,保留该对象的类(类型)。 这样的话,就可以传送自定义对象或者系统自带对象。
具体的使用方法,官方有详细地用法。这里我只说说自己的一些理解。
readObject方法对构造器有参数的类,是会出错的,会弹出参数数量不匹配这个错误。因为还原对象进行反射的时候,是默认没有参数的给构造器的。这也是有些人 讨论Sprite等对象不能进行深度拷贝的原因
所以在使用AMF3进行序列话的时候要注意这个了,还有一个就是,如果那个类包含了多个类,也就是个复合类,那么里面的那个复合类,也必须进行registerClassAlias,例如
具体使用例子,参考官方例子,下面是摘录出来的
此示例使用 registerClassAlias() 函数为 ExampleClass 注册一个别名 ( com.example.eg )。 由于为类注册了别名,因此可以将对象作为 ExampleClass 的实例反序列化,且代码将输出 true。 如果删除 registerClassAlias() 调用,则代码将输出 false
具体的使用方法,官方有详细地用法。这里我只说说自己的一些理解。
readObject方法对构造器有参数的类,是会出错的,会弹出参数数量不匹配这个错误。因为还原对象进行反射的时候,是默认没有参数的给构造器的。这也是有些人 讨论Sprite等对象不能进行深度拷贝的原因
所以在使用AMF3进行序列话的时候要注意这个了,还有一个就是,如果那个类包含了多个类,也就是个复合类,那么里面的那个复合类,也必须进行registerClassAlias,例如
- package
- {
- import flash.geom.Point;
- public class Test
- {
- public var name:String;
- public var point:Point;
- }
- }
- 这样需要写两条语句才能完全把Test序列化
- registerClassAlias("point",Point);
- registerClassAlias("test",Test)
此示例使用 registerClassAlias() 函数为 ExampleClass 注册一个别名 ( com.example.eg )。 由于为类注册了别名,因此可以将对象作为 ExampleClass 的实例反序列化,且代码将输出 true。 如果删除 registerClassAlias() 调用,则代码将输出 false
- package {
- import flash.display.Sprite;
- import flash.net.registerClassAlias;
- import flash.utils.ByteArray;
- public class RegisterClassAliasExample extends Sprite {
- public function RegisterClassAliasExample() {
- registerClassAlias("com.example.eg", ExampleClass);
- var eg1:ExampleClass = new ExampleClass();
- var ba:ByteArray = new ByteArray();
- ba.writeObject(eg1);
- ba.position = 0;
- var eg2:* = ba.readObject();
- trace(eg2 is ExampleClass); // true
- }
- }
- }
- [AS3]registerClassAlias的用法
- AS3 的一些用法
- AS3 setChildIndex 的用法
- AS3 setTimeOut、setInterval的用法 .
- flash registerClassAlias()
- AS3的Proxy类的用法
- as3 中get和set的用法
- AS3中 is和as的用法
- as3中数组的一些用法
- AS3.0 数学函数Math的用法
- as3 中get和set的用法
- AS2中的_root,在AS3的用法
- AS3.0中XML的基础用法
- flash.net.registerClassAlias类
- as3 定时器用法
- AS3 Embed用法笔记
- as3 Matrix用法
- AS3 的正则又有一些不一样的用法
- 我这个岁数的男人
- vista+asp+iis7—An error occurred 解决方案
- 成功编译boost1.34.1
- 枚举和清除 IE 缓存
- NDS输出汉字
- [AS3]registerClassAlias的用法
- 超级asp解密函数(问题)
- 发些今年的作品:网络斗地主
- 想清楚干点什么,比怎么干更重要--Leo读《不是孙振耀写的职场感言》(2)
- 8.01
- jxta学习笔记3~jxta运行的基本步骤~
- 08一级建造师的一道考题
- delphi 只运行一个程序
- 关于oracle安装的一些自己的体会(非安装教程)