残念ながら、Cのデータ構造を送信することはできません。あなたは狂気のように3つの選択肢があります:
- データをC側でシリアル化し、AS3側で再構成します。
- データをオブジェクトにパックして戻します。
- ポインタとサイズをAS3に渡し、AlchemyのRAM ByteArrayからデータを引き出します。
私は完全性のために#3しか含んでいません。複雑なデータ構造のどれかを試してみると夢中になると思います。コードは壊れやすいでしょう。次のポインタはぎこちないでしょう。ブリー。
#2では、動的オブジェクト(AS3_Object経由)または具体的なもの(AS3_Get、AS3_New経由)を使用できます。これはかなり複雑なコードであり、それほど高速ではありません。維持するのが難しいかもしれません。
#1では、シリアル化の種類が重要です。あなたのCコードで構造体をバイナリ 'ファイル'にレンダリングして返し、AS3でByteArrayを介してファイル形式を解析させることができます。または、XMLにレンダリングし、AS3のXMLクラスで解析することもできます。これは、少なくともデシリアライゼーション終了時には(XMLがネイティブに実装されているので)かなり高速であるという利点があります。あなたがC側(または、ahem、sprintfs)に高速XMLレンダラを持っているなら、それほど悪くない。
あなたはどのようにあなたのツリーをActionscriptのように見せますか?文字列のみ、または文字列として_and_はノードの型も保持する数値ですか?最初の場合は、 'toStringTree()'によって生成された文字列をActionscriptに渡すことができます。 –
残念ながら、各ノード(text:String、type:int、startIndex:int、endIndex:int)のほとんどのデータが必要です。 –