Object.__proto__
またAS2です(^^;
なんとなく何に使うのかわからなかった__proto__ですがヘルプを眺めててつかいどころが。
たとえばclassAからloadVarsなどのためのclassBを起動して読み込み後classAのメソッドにコールバックするとき、applyとかcall使うためにfunctionをわたすときfunctionは渡すのは当然としてもscopeで使うObjectとしてクラスの参照も渡したりしてたんだけどなんか二つも値を渡すのはアホらしい気もしてました。でもfunctionだけわたしてもsocpeはfunction.__proto__ でいけたんですねえ。。。
ということでソースはっときます。
fla
var cA:TestA = new TestA();
cA.Init();
class TestA{
function TestA(){
}
function Init(){
var cB:TestB = new TestB();
cB.callBack = callBackFunc;
cB.Init();
}
function callBackFunc( str1, str2 ){
trace(str1 +":"+str2);
}
}
import mx.transitions.OnEnterFrameBeacon;
import mx.utils.Delegate;
class TestB {
var _callF:Function;
function TestB() {
OnEnterFrameBeacon.init();
}
function set callBack(f:Function) {
_callF = f;
}
function get callBack():Function {
return _callF;
}
function Init() {
var oListener:Object = new Object();
oListener.onEnterFrame = Delegate.create( this, eventFunc );
MovieClip.addListener(oListener);
}
function eventFunc(){
callBack.apply( callBack.__proto__, [ "test1", "test2"]);
}
}