[AS3]registerClassAlias的用法

原创 2008年08月01日 07:39:00
registerClassAlias在利用AMF3进行序列话网络通讯中,是非常有用的。需要把客户端的对象直接传送到服务器得时候,保留该对象的类(类型)。 这样的话,就可以传送自定义对象或者系统自带对象。
具体的使用方法,官方有详细地用法。这里我只说说自己的一些理解。
readObject方法对构造器有参数的类,是会出错的,会弹出参数数量不匹配这个错误。因为还原对象进行反射的时候,是默认没有参数的给构造器的。这也是有些人 讨论Sprite等对象不能进行深度拷贝的原因
所以在使用AMF3进行序列话的时候要注意这个了,还有一个就是,如果那个类包含了多个类,也就是个复合类,那么里面的那个复合类,也必须进行registerClassAlias,例如
  1. package
  2. {
  3.     import flash.geom.Point;
  4.     
  5.     public class Test
  6.     {
  7.         public var name:String;
  8.         public var point:Point;
  9.     }
  10. }
  11. 这样需要写两条语句才能完全把Test序列化
  12. registerClassAlias("point",Point);
  13. registerClassAlias("test",Test)
具体使用例子,参考官方例子,下面是摘录出来的


此示例使用 registerClassAlias() 函数为 ExampleClass 注册一个别名  ( com.example.eg )。 由于为类注册了别名,因此可以将对象作为 ExampleClass 的实例反序列化,且代码将输出  true。 如果删除 registerClassAlias() 调用,则代码将输出 false

  1. package {
  2.     import flash.display.Sprite;
  3.     import flash.net.registerClassAlias;
  4.     import flash.utils.ByteArray;
  5.     public class RegisterClassAliasExample extends Sprite {
  6.         public function RegisterClassAliasExample() {
  7.             registerClassAlias("com.example.eg", ExampleClass);
  8.             var eg1:ExampleClass = new ExampleClass();
  9.             var ba:ByteArray = new ByteArray();
  10.             ba.writeObject(eg1);
  11.             ba.position = 0;
  12.             var eg2:* = ba.readObject();
  13.             trace(eg2 is ExampleClass); // true
  14.         }
  15.     }
  16. }



版权声明:本文为博主原创文章,转载必须声明出处和作者。地址:http://blog.csdn.net/sujun10 作者:弃天笑

flash registerClassAlias()

1.ByteArray::writeObject()  只能存储对象中的属性 2.对于自定义对象,如var ani:Animal = ByteArray::readObject() as A...

AS3 event stopImmediatePropagation() stopPropagation()用法以及区别

转载如下:   版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及 本声明  http://goday.blogbus.com/logs/14062836....
  • zhytry
  • zhytry
  • 2016年03月30日 17:17
  • 327

AS3 Embed用法笔记 .转

1. 用[Embed]元数据标签可以嵌入GIF,PNG,JPEG,或者MP3文件。ActionScript代码的顺序非常重要。你必须在声明变量前添加[Embed]元数据标签,而且这个变量的类型会是Cl...

Flex之旅:第一部分:flex必备基础知识积累(3)---is as typeof in instanceof 用法介绍

is运算符 is运算符是ActionScript 3.0中的新增运算符,用来测试变量或表达式是否为给定的数据类型。返回值是true 和 false。is运算符可以检查正确的继承层次结构,不但能够检...
  • miqi770
  • miqi770
  • 2015年03月11日 15:10
  • 659

as的用法.ppt

  • 2017年08月16日 15:22
  • 24.53MB
  • 下载

数据库之SQL 语句as的用法 SQL 结果重命名

as 一般用在两个地方,一个是query的时候,用来重新指定返回的column 名字 如:一个table 有个column叫 id, 我们的query是 select id from table1...
  • lqhed
  • lqhed
  • 2016年05月24日 18:14
  • 410

IT忍者神龟之关于oracle with as用法终结

with as语法 –针对一个别名 with tmp as (select * from tb_name) –针对多个别名 with    tmp as (select * from t...
  • vipyhd
  • vipyhd
  • 2014年09月19日 12:46
  • 701

T-SQL with as 的用法(转)

一.WITH AS的含义      WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时...
  • lxq_jy
  • lxq_jy
  • 2012年02月28日 11:49
  • 287

关于LayoutInflater的错误用法(警告提示:Avoid passing null as the view root)

项目中用LayoutInflater加载xml布局一直飘黄警告,上网搜了搜发现没有解释明白的,到是找到了一篇外国的博文,但是竟然是英文。。。幸好以前上学时候的英语不是很差加上谷歌的辅助,简单翻一下! ...

oracle关键字with..as和wm_concat的用法说明

1,创建临时表with...as 2,相同id合并相关列
  • xb12369
  • xb12369
  • 2014年04月23日 10:06
  • 1268
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[AS3]registerClassAlias的用法
举报原因:
原因补充:

(最多只允许输入30个字)