トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     プロパティの参照がメソッドの実行方法によって出来ない理由
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
AsahiYuho
Åê¹ÆNo.25940
投稿日時: 2006-6-6 21:37
Bak@Fla名人
居住地: 心は岡山
投稿: 91
使用環境:
Re: プロパティの参照がメソッドの実行方法によって出来ない理由
お返事ありがとうございます。
大分頭がすっきりしてきました

関数は「this._func()」のように参照ありきで実行されるものだったのですね。
うまく文章にできませんが、理解できました。

引用:
野中文雄さんは書きました:
逆にいえば、getFunction()の戻り値を別のオブジェクトに設定して呼出せば、thisはそのオブジェクトを参照するようになります。
// タイムライン: _root
// フレームアクション
function xTest():Void {
	trace(this);
}
function xGetFunction():Function {
	return xTest;
}
xTest();  // 出力: _level0
xGetFunction()();  // 出力: undefined
var obj:Object = new Object();
obj.myFunction = xGetFunction();
obj.toString = function():String  {
	return "this is obj";
};
obj.myFunction();  // 出力: this is obj

最後に野中先生のスクリプトを参考にもう少し試してみます。
// タイムライン: _root
// フレームアクション
function xTest():Void {
	trace(this);
	this.comFunction();
}

function xGetFunction():Function {
	return xTest;
}

function comFunction():Void
{
	trace([this, "_root.comFunction()"]);
}

xTest();           // 出力: _level0と_level0,_root.comFunction()
xGetFunction()();  // 出力: undefinedのみ

var obj:Object = new Object();
obj.myFunction = xGetFunction();
obj.toString = function():String  {
    return "this is obj";
};

obj.comFunction = function():Void
{
	trace([this, "obj.comFunction()"]);
};

obj.myFunction();              // 出力: this is objとthis is obj,obj.comFunction()
xGetFunction().call(obj);  // 出力: this is objとthis is obj,obj.comFunction()

実際の出力は以下のとおりです。
引用:
出力:
_level0
_level0,_root.comFunction()
undefined
this is obj
this is obj,obj.comFunction()
this is obj
this is obj,obj.comFunction()

同名の関数を作り、「this」の参照をコントロールすることで処理を分岐できました。
何かに使えそうです。

おかげさまで関数に対する理解が深まりました。
長いことお付き合いしていただき、ありがとうございました


----------------
旭日ゆうほ
swf置いてます。AM902

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-5 19:48
     Re: プロパティの参照がメソッドの実行方法によって出来ない理由 Fumio 2006-6-5 20:17
       Re: プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-5 22:01
         Re: プロパティの参照がメソッドの実行方法によって出来ない理由 Fumio 2006-6-6 5:09
         » Re: プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-6 21:37
     Re: プロパティの参照がメソッドの実行方法によって出来ない理由 gonzaemon0 2006-6-7 10:25
       Re: プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-7 16:41

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops