EventDispatchの意味がわからん

AS3の話ですが、カスタムイベントを自作する意味が分かりません。ない頭をひねってみたサンプルが↑です。
とりあえず、以下の要領でボタンを押してみてください。

  1. 青いmcをクリック
  2. イベントをつけるボタンをクリック
  3. 青いmcをクリック
  4. イベントをはずすボタンをクリック
  5. 青いmcをクリック

説明。

まず、青い四角のmcをクリックするとテキストエリアに「mcをクリック」と表示されます。これはmcにaddEventListenerしたMouseEvent.CLICKのハンドラから呼び出したものです。
で、イベントをつけるボタンを押すと、カスタムイベントが発行され、青い四角mcにPUSHというカスタムMouseEvent.CLICKが設定されます。この状態で青い四角mcをクリックすると、「mcをクリック」に追加して「クリックイベント」と表示されます。
イベントをはずすボタンを押すと、カスタムイベントがremoveEventListenerされ、青いmcを押しても「クリックイベント」と表示はされません。

これはどういうことか。

mcやまぁその他のターゲットに対して、クリックしたときの関数を変える、または追加する、という使い方ですね。
ボタンの形をしたものを置いといて、何かのタイミングにカスタムイベントを追加して押したときの挙動を変えるとか。そういう使い方なの? クリックハンドラのオーバーライドってことか。違うのか。

今回使ったサンプルソースはこちら(CS3 .fla形式)。

うーむ。初級を抜けた人が中級~上級に向かうときにハマる、「使い方の分からないクラス/関数」というのは実はいっぱいあって、それを解決するにはASの勉強だけではダメっぽいように思います。たとえばroot変数をクラスのstatic変数にするとか、サウンドの制御をカスタムのクラスで使うとか、コンポーネントを使わないvideoPlayerクラスを試してみるとか、MVCモデルとか、デザインパターンとか。
あとは、この年齢になってプログラミングをやり直してもいいものか、という戸惑いもあります。若くて優秀な人がいっぱいいる中、フレームワークやライブラリも充実しているのに業務ですぐに使えないことをコツコツ勉強する時間をとってしまっていいものか、みたいな。

この記事には、カテゴリ AS3 タグは , がつけられています。