0

Collada ファイル (Alternativa3d Engine) を解析するワーカー クラスを作成しました。

dae/xml ファイルを Worker クラスに送信して解析しています。Main クラスで受信中に、「Type Coercion failed」というエラーが発生しました。

これがコードです。

メイン クラス: データの送信

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

同様の種類のオブジェクトを目的のタイプに変換する方法を知っている人はいますか?

4

1 に答える 1

0

ByteArray.writeObjectそのために...
ByteArray.readObjectメソッド を使用してみてください...
私もこの問題に直面しましたが、それが可能かどうかはわかりません。
うまく解決できたら教えてください。

于 2012-10-08T11:42:32.563 に答える