« 2007北海道ツーリング4 | メイン | 2007北海道ツーリング5 »

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"]);
}
}

トラックバック

このエントリーのトラックバックURL:
http://www2.infective.jp/mt/mtdayo-tb.cgi/616

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)