がるの健忘録 このページをアンテナに追加 RSSフィード

2009-06-15

[]memo

えと…ちょっと今回は細かい粒度の話。


addEventListenerってのがあって。イベント取得系に「ぽちっとな」とイベントをaddできるです(このメソッド名でイベントをadd出来なきゃ色々と嘘であるw)。

問題は。

後出し有効

・どうも第二引数のfunction名でmapってるっぽい

感じで。つまり、1つのボタンを「使い回したい」時に、途中からよぉわからん動きになるです。


つまり。

ある場所で

  this.aobj_.bt.addEventListener(MouseEvent.CLICK, execute2);

とやって、その後

  this.aobj_.bt.addEventListener(MouseEvent.CLICK, execute1);

とやって、のLoopを作ると。「Clickでexecute2に飛ぶイベント」が1回しか走らんです。

でまぁremoveEventListenerなるメソッドがあるですが…「いいぢゃん引数省略なら全部removeる」でさぁ orz

  this.aobj_.bt.removeEventListener();

とか

  this.aobj_.bt.removeEventListener(MouseEvent.CLICK);

とか、引数でエラーになりました orz

ちゃんと。イベントタイプ名はおろか、function名まで正確に入れておかないと削除してくれないです orz


とりあえず

  this.aobj_.bt.removeEventListener(MouseEvent.CLICK, execute1);
  this.aobj_.bt.addEventListener(MouseEvent.CLICK, execute2);

  this.aobj_.bt.removeEventListener(MouseEvent.CLICK, execute2);
  this.aobj_.bt.addEventListener(MouseEvent.CLICK, execute1);

で回避したですが。


hasEventListener ってのがあるですが…「イベントタイプ(Clickとか)の処理用callback関数が登録されているか」をBooleanで出してくれるだけで、function名のListひとつ出しちゃくれねぇ orz

せめて

インスタンス名だけ指定すると、どんなイベントタイプが登録されているのかがわかる

インスタンス名+イベントタイプで、どんなfunction名が登録されているのかがわかる

の2つのメソッドがあれば色々楽なのですが…あったら教えてください > all


…普通に考えると。あると思うんだけどなぁ…