tamanegiの日記: flashのreadObject()
日記 by
tamanegi
備忘録。flashだけどコードはHaxe
問題: サブWorkerで処理をさせて、処理済みデータをメインに渡そうと
していたのだが、readObjectのところでエラーが出てうまくデータを受け取れない。
デバッガで実行すると、以下のreadObjectのところでこけている。
ここには書いてないwriteObjectとかsendは大丈夫そうだった。
var obj:ByteArray = __channel.receive();
var c:MyClass = obj.readObject();
サブworker内の処理にバグがあったのかと思って、サブworkerのtraceを受け
取るためのchannelをわざわざ作ってサブworkerの動作を追ってみたけど、
問題はなかった。writeObjectに食わせるものも予想どおりにできていた。
で、何が問題だったのかと言うと、どうもreadObjectをする時に引数無しの
コンストラクタが呼ばれているのが問題だった。渡しているオブジェクトの
サブクラスに、引数を要求するクラスがあって、そいつのnewで死んでた。
てか、良く見たらデバッガのメッセージにもコンストラクタでコケたことが
書いてあった。ちょっと調べたら、こんな記事とかあったりして、
割と普通のことだったらしい。悲しい。まぁなんとかできてよかった。
# そのリンク先とは一点だけ違いがあって、オブジェクトの private 変数は
# 問題無く処理できてる。バージョンあがったせいかな?
あとはswfの編集と書き出し周りだ。ヒントあるからなんとかなりそうかな?
flashのreadObject() More ログイン