我创建了一个工作类来解析Collada文件(Alternativa3d Engine)。
我将dae / xml文件发送到Worker类并解析它。在Main类接收它时,出现错误“类型强制失败”。
这是代码。
主类:发送数据
if (bgWorkerX.state == WorkerState.RUNNING)
{
var _b:ByteArray = (new modelX() as ByteArray);
var xml:XML = (new XML(_b.readUTFBytes(_b.length)));
bgWorkerCCX.send(["START_PARSING", XParser]);
}
主类:接收数据
if (!resultCX.messageAvailable)
{
return;
}
var result:String = resultCX.receive(true);
if (result == "SUCCESS")
{
var txt3:TextField = new TextField();
txt3.text = "Parsed result : " + Mesh(resultCX.receive(true)); //ERROR LINE : TYPE COERCION FAILED.
}
}
工人阶级:
private function handleCommandMessage(event:Event):void
{
if (!commandChannel.messageAvailable) {
return;
}
var message:Array = commandChannel.receive() as Array;
if (message != null && message[0] == "START_PARSING")
{
StartParsing(XML(message[1]));
}
}
private function StartParsing(xml:XML):void
{
parser = new ParserCollada();
parser.parse(xml);
resultChannel.send("SUCCESS");
resultChannel.send(parser.getObjectByName('mainbody') as Mesh);
}
任何人都知道如何将类似对象转换为所需类型?
答案 0 :(得分:0)
尝试使用ByteArray.writeObject
...
ByteArray.readObject
方法......
我也遇到过这个问题但不确定是否可以做到。
如果你成功解决了,请告诉我。