そういうものなのかはよくわからないけど。
LocalConnection はカスタムクラスを swf 間でやり取りできなくはないけど、インスタンスそのものではなく、プロパティしか送ることができない。AMF形式というものに圧縮されて送られるそうだけど、その詳細はまだよくわかりません。なので、public 型および、明示的な getter, setter だけが渡せるという話だったんだけど、そこで躓いた。
クラスのプロパティを private として定義するときは、当然 public アクセスしてほしくない値だからで、その値に getter と setter を両方用意することはナンセンスだと思ってた。なので、private なプロパティを含むカスタムクラスを LocalConnection で send するときも、当然 getter しか用意しなかった。そこに落とし穴があった。
setter のないプロパティは、send 先で取得することができない。おそらく、AMF形式とやらから解凍するとき(unserialize?)に、値をセットするんだろうけど、それができないんじゃないだろうか(要調査)。じゃあ public でいいじゃない?
ずいぶん時間をとられたけど、ひらめいたとき、これが答えであってほしいような、ほしくないような気持ちがなんとも気持ち悪い感じでした。
0 件のコメント:
コメントを投稿