ようやっとFlash9に触り始めて、気になったことのメモ。
Flash9からは、ライブラリのアイテムからリンケージIDがなくなって、そのままクラスを割り当てるようになりました。
で、問題。
ライブラリのアイテムとクラスはどうやら一対一の関係なんですよね。
かりに、MyButtonクラスをMCに結びつけるとする場合、
その場合、異なる外見でボタンとして使いたいアイテムが5種類あった場合どうすればいいんだろうか?
わざわざ extends MyButton みたいに書いただけのサブクラスをアイテム毎に用意しなけらばならないの???? それはちょっとメンドイ。 多分、AS3での製作上でAS2ともっとも勝手が違う部分ってのはこの辺なんじゃないかな。
今までのノウハウが役に立たない感じなので、打開案をいくつか考えた。
・覚悟を決めて、アイテム毎にMyButtonのサブクラスを作る。
この場合、ボタンの増減にあわせてファイルが超変動しそう。
・MyButtonクラスと結びつける1つのMCに全ての外見を格納し、スキンとして実行時に外見を割り当てる。
オーサリング状態では、まったくデザインができなくなりそう。
っていうか、重そう。
・ボタンにMCやdisplay系を継承させないようにする。んで、実行時に画面上のMCをボタンに引数で渡すと、そのMCがボタンとして機能するようにする。
これが一番現実的かなぁ、ただボタンのコンテナっぽい階層でMyButtonを初期化するコードを書く必要がある。
うーん、どうすればいいんだろう。
妙案ある人おしえてください。