AS3:反序列化AVM1Movie时出错:“类无法实例化”?

时间:2012-06-06 23:54:58

标签: actionscript-3 serialization flash bytearray loader

我正在尝试序列化和反序列化从外部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没有任何子类。任何人都知道如何解决这个问题?

0 个答案:

没有答案