gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

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


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