Flexのイベントを調べる

http://d.hatena.ne.jp/sato-shi/20080404/p2
いつも勝手にお世話になってるid:sato-shiさんの紹介ブログ

これ、基本だろ!

ViewStackとかStateとか、正確なイベントが取りにくいとき、
まず最初に必ずことです。

ちなみに、これをやるときめんどいから


override public function dispatchEvent(event:Event):Boolean
{
trace(this.toString+"::"+event.type);
return super.dispatchEvent(event);
}

てやるけど、
これだと、マウスイベントとかエンターフレームまで入ってきてたまにウザイから(出ないコンポーネントもある)


override public function dispatchEvent(event:Event):Boolean
{
switch (event.type) {
case "ウザイ1":
//case "ウザイ2":
case "ウザイ3":
case "ウザイ4":
break;
default:
trace(this.toString+"::"+event.type);
break;
}
return super.dispatchEvent(event);
}

このようにウザイイベントリストをまとめたのを適当に準備しといて、
見たいものだけコメントアウトするようにして、出来るだけ知らなくていいものは消せる準備をしておいたほうがいい。


僕はいつも"mouseMove"とか"enterFrame"とか計10個くらいウザイリストを用意したのを、
適当なエディタとかにコピーしてて、イベントのタイミングを知りたいときにコピペして不要になったら削除するようにしています。

ちなみに今日発覚したバグで、Stateの切り替えイベントをビジュアルコンポーネント単位でaddとremoveで見てたら、
実はaddイベントの後、currentStateChangeが出ていたため、元のStateがきちんとリムーブされる前にとある処理をしてしまい、
画面がダブルというバグを埋めていました。

StateEventから、コンポーネントにたどり着くのは結構めんどくさいから、
このタイミングはかなりむかつきました。