我正在尝试序列化和反序列化从外部SWF加载的AVM1Movie。它看起来很好,但是当我试着把它读出去时它就会出错。
public var loader:Loader = new Loader();
public function Main():void
{
var request:URLRequest = new URLRequest("Input.swf");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(request);
}
public function onComplete(event:Event):void
{
registerClassAlias("flash.display.AVM1Movie", AVM1Movie);
var serialized:ByteArray = new ByteArray();
serialized.writeObject(loader.content);
serialized.position = 0;
var unserialized:AVM1Movie = serialized.readObject() as AVM1Movie;
}
一切都很好,直到最后一行,此时它给了我:
[Fault] exception, information=ArgumentError: Error #2012: AVM1Movie$ class cannot be instantiated.
我没有任何问题使用它来序列化其他任何东西,只有这个AVM1Movie我已经加载了。有人知道它有什么用吗?
谢谢! :)
编辑:我发现故障是由于AVM1Movie是一个抽象类而产生的,并且没有抽象类可以实例化。通常,人们可以通过创建子类的实例来解决这个问题,但AVM1Movie没有任何子类。任何人都知道如何解决这个问题?