パスワードを忘れた? アカウント作成
10714912 journal
日記

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の編集と書き出し周りだ。ヒントあるからなんとかなりそうかな?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...