イベントをスルーするイディオム

今日知ったイディオム。なるほどと思った。

以下は、至って普通のコード。

package {
import flash.events.*;
import Hoge;
public class Test {
public function Test() {
var hoge:Hoge = new Hoge();
hoge.addEventListener(Event.COMPLETE, trace);
hoge.doSomething();
}
}
}

Test は普通に Hoge からのイベントをリスンしている。そして、Hoge

package {
import flash.events.*;
import Foo;
public class Hoge extends EventDispatcher {
public function Hoge() { }
public function doSomething():void {
var foo:Foo = new Foo();
foo.addEventListener(Event.COMPLETE, dispatchEvent);
foo.doSomething();
}
}
}

10 行目に注目。

foo.addEventListener(Event.COMPLETE, dispatchEvent);

第二引数に dispatchEvent を指定することでそのままイベントをスルーできる。中間管理職的なオブジェクトにちょうど良いショートカットだと思う。