Home > しらべる > FlashLiteでポップアップ

FlashLiteでポップアップ

  • Posted by: memorycraft
  • 2008年2月 3日 23:25
  • しらべる

今、とある案件でFlashLite3をいじってます。はじめてのFlashLite。
過去のバージョンでは、Flashとは勝手が違って作成がかなり大変だったようですが、
3は、API的にはFlash7と大して変わらずなんとか頑張れそうです。

ここまで触ってきた中で、Flashとは違う部分をメモっときます。


① メモリが少ない。デフォルトヒープが2MB程度なので、
  いつもFlashで使ってる自前フレームワークが使えない

② コンポーネントが挙動不審
  Buttonでさえもあやしい

③ モーダルがうまくいかない
  PopupManager.createPopup がモーダルにならない

①に関しては、いまさらタイムラインはやりたくない。妥協案として
Flashのスクリーン機能のフォーム + ビヘイビア + 自前のサポートクラスを
併用することで対応した。いまのところメモリ消費は抑えられてる。

※スクリーン機能は全ての画面をメモリ上に常に展開(インスタンスがステージ上に常駐)しているので、画面数が増えるとダメダメでした。。
やっぱり外部SWF、またはattachMovie、removeMovieClipを繰り返すのが一番いいようです。

②はもともとコンポーネントがメモリ増大のネックになるので、
なるべく簡易的な手作りで対応。ボタン関係はButtonコンポーネントではなく、ボタンシンボルを使用。コンボボックスを使いたいけど、やはりまともに動かないので、ポップアップで擬似的に対処。

③表示中のフォームをhideさせずに、上にポップアップ用のフォームを表示することで擬似ポップアップにした。
またmx.screens.Formを継承し、setEnabledを子要素に対して再帰的に呼び出すように拡張することでモーダルを擬似的に再現。
デザインをそれっぽくしてコンボボックスのプルダウンを表現した。
※出現時にattachMovie, 消滅時にremoveMovieClipするポップアップ機構を作りました。

細かいところでいろいろクセがあって大変どす。。
こんなトリッキーなことしなくても、もっとうまくやる方法がありそうな気がするのだけど、どうなんだろう。。


ビヘイビア、初めてつかったけど、ちょっと興味深い。
今回みたいに一人で、すばやく、とにかく動くものを、っていうときに、いい手段かも。
そこでできた雛形をもとに複数人で、じっくり、堅いものを、となったら
ビヘイビアをメソッド化したりして、OOPに以降していく感じ。
Flash内で、ビヘイビアがどこに使われているかを検索できたらいいな。

Trackbacks:0

TrackBack URL for this entry
http://www.memorycraft.jp/mt-tb.cgi/3
Listed below are links to weblogs that reference
FlashLiteでポップアップ from メモリークラフト

Comments:0

Comment Form

Home > しらべる > FlashLiteでポップアップ

ページの先頭へ戻る