调用registerClassAlias,当遇到的类构造函数是带参数的,会报错

millfox 2009-07-02 05:40:22
请大家帮忙看看,总是提示:"ArgumentError: Error #1063: Person() 的参数数量不匹配。应该有 2 个,当前为 0 个。at flash.utils::ByteArray/readObject()"


package {
import flash.display.Sprite;
import flash.net.registerClassAlias;
import flash.utils.ByteArray;

public class Test extends Sprite
{
public function Test()
{
registerClassAlias("com.Person", Person);

var person:Person = new Person("tom",18);

var ba:ByteArray = new ByteArray();
ba.writeObject(person);
ba.position = 0;
var obj:* = ba.readObject();
trace(obj.toString());
}
}
}

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";
}
}

...全文
173 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
flag_and_leg 2011-05-12
  • 打赏
  • 举报
回复
给构造函数的参数设置默认值试试:
public function Person(firstName:String=null, age:int=0){
_firstName = firstName;
_age = age;
}
zinking3 2009-10-02
  • 打赏
  • 举报
回复
没有看出明显的问题
不知道也没用过你那个register class API
我觉得应该是你对这种序列化的机制还不是很清楚的缘故

2,278

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧