#サンプル
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 開発のレシピ