9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

enchant.jsでのイベントの追加・削除について

Last updated at Posted at 2014-02-09

#サンプル
enchant.jsでのイベントの追加・削除について - jsdo.it

#独自イベントを作成、発行
Eventオブジェクトを作成してDispatchEventを実行

//タッチイベントリスナを登録
sprite.ontouchstart = function(){
    //hitイベントを発行
    var e = new enchant.Event("hit");
    this.dispatchEvent(e);
};
  
//hitイベントリスナを登録
sprite.onhit = function(){
  alert("HIT"); 
};

イベントの削除

一度しかイベントを実行したくない場合は removeEventListener()でイベントの削除を使う。
引数にはイベント名と登録した関数を渡す。

var touchFunc = function(){
  alert("タッチ");
  //イベントの削除
  this.removeEventListener("touchstart", touchFunc);
};

object.addEventListener("touchstart", touchFunc);

登録した全てのイベントの削除

addEventListenerで登録したイベントを削除したい場合はclearEventListener()を使う。

sprite.addEventListener("enterframe", function(){
    this.moveBy(1, 1);
});
sprite.addEventListener("enterframe", function(){
    this.rotate(10);
});

//イベントをまとめて削除
sprite.ontouchstart = function(){
    this.clearEventListener("enterframe");
};

#イベントに登録した無名関数を削除
arguments.calleeで実行中の関数への参照を返す。
removeEventListenerにargument.calleeを渡すことで無名関数でもイベントを削除できる。

sprite.addEventListener("touchstart", function(){
  alert("タッチ");
  //実行中の関数(無名関数)を削除
  this.removeEventListener("touchstart", arguments.callee);
});

#参考サイト
enchant.js 開発のレシピ

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?