April 10, 2004
FlashのWindowコンポーネントって組み込みの機能で、マウスドラッグによるResizeできないの?…これを解決するだけで一日悩んでしまった。
そういえばすっかりFlashを使うのは久々だったのね。アクションスクリプトのアから忘れていたかも。MX2004のコンポーネントクラスの方でなんとか解決しようかと思って頑張ったのですが、いろいろ悩んだ結果の解決法は、いつもの空MovieClipによるフラグ処理でリサイズ描画処理。
結局、数行のボタンアクションと2フレームだけのタイマー代わりのムービークリップかよっ!
プログラムの視認性が著しく下がるので、いい加減オサラバして、組み込みクラスのイベントドリブンOnlyへの道を進むつもりだったのだが、マウスMoveしながらウインドウの見た目をリサイズさせる良い方法が思いつかない。mousemoveのイベントを取ってたら、なんだか無限ループとかで怒られる。何かの処理が再入しちゃってるらしい。mousemoveをイベントリスナーに登録したら、ウインドウが、いかにも私はボタンです~ってアイコンになるので、もうちょっと違う考え方をしないとダメかも。
今更、気がついて、ホントにホントに申し訳ないのですが(謎)、コンポーネントのVBライクなプログラミングと、アクションスクリプト側の既存のオブジェクトって体系が違ってて気持ち悪いのね。
コンポーネント.left = ムービークリップ._x;
とか。
気持ち悪いぐらいならともかく、これ今までのFlashがわかってないと相当、混乱しない?
つまり、あれこれ欲張らずコンポーネントの枠内に収まるならともかく、ちょっとでも足を踏み出すと、既存のアクションスクリプトの世界に飛び込む必要があって、決して、今のコンポーネントが十分な機能を提供しているわけではないだけに、すげーいろいろ悩んだ挙句、ベタなタイムラインプログラミングをせざるを得ない・・・と。
でも、そのベタなプログラミングとの境というか、行き来するには、やはり昔からのアクションスクリプトプログラミングなので、引き際とか、見極めとかが、すごく難しいような。
そろそろ、ばっさり今までのクラス体系が切り捨てられてアクションスクリプトも変わり時ですな。そっか、MXからMX2004で花開いたかと思ったけど、まだまだ過渡期なのかもしれないですね。
と、ウインドウリサイズごときで一日はまってる場合ではないのだ。習熟度曲線(リハビリ)が上がることを期待して、じっくり考えるようにしていたので、ここからスピードアップしなくては。
ーーー追記
リサイズの監視は、ウインドウの中で、
this.onEnterFrame = fuction(){
~ドラッグ中ならウインドウリサイズ処理~
}
でよかったですね。
監視ムービーを置くのはFlash4あたりのクセが抜けてないです。はい。
他にもっと良い手ないですかねぇ