2013-05-25時点でのCreateJSのEventDispatcherはlistenerが真値を返すと(同一ループ内の)それ以降のlistener呼び出しをキャンセルするようになっている。
以下のコードでは、2番目のlistenerが呼ばれない。
createjs-eventdispatcher.js
var A = function() {};
createjs.EventDispatcher.initialize(A.prototype);
var a = new A();
a.addEventListener('a', function() {
console.log(1);
return true;
});
a.addEventListener('a', function() {
console.log(2);
});
a.dispatchEvent('a');
これって一体どういう意図なんだろうか…?
CoffeeScriptではfunctionの最後の値が自動的にreturnされるので多くの場合、明示的にfalse
を返さなくてはいけない。ハマった。