Proxyクラス
S2Flex2のソースを読んで知った。
http://livedocs.adobe.com/flex/2_jp/langref/flash/utils/Proxy.html
プロパティへのアクセスや、メソッドの呼び出しのプロキシを作れる。
こんな感じでProxyを継承しておくと、
import flash.utils.flash_proxy; import flash.utils.Proxy; use namespace flash_proxy; public dynamic class HogeProxy extends Proxy { flash_proxy override function callProperty(methodName:*, ...args):*{ trace("callProperty methodName:" + methodName + " args:" + args); return methodName; } flash_proxy override function setProperty(name:*,value:*):void{ trace("setProperty name:" + name + " value:" + value); } flash_proxy override function getProperty(name:*):*{ trace("getProperty name:" + name); return name; } }
定義していないプロパティやメソッドが、存在するかのようにアクセスすることができる。
var hogeProxy:HogeProxy = new HogeProxy(); hogeProxy.moge = "もげ"; var f:String = hogeProxy.fuga; hogeProxy.foobar("ふーばー");