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

パスワード:


パスワード紛失

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

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fumio
Åê¹ÆNo.25932
投稿日時: 2006-6-6 5:09
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: プロパティの参照がメソッドの実行方法によって出来ない理由
オブジェクト(this)を参照(ターゲットと)してメソッドを呼出せば、functionブロック内でthisが参照できます。
引用:
旭日ゆうほさんは書きました:
1. 「this._func()」を実行した場合、
  実行したメソッド内で「this」を参照できる。

ローカル変数というか、getFunction()がオブジェクトから切離したfunctionだけを返すからでしょう。以下のスクリプトと、同じ結果になるものと考えられます。
    // メソッドを割り当てる変数取得メソッド
    public function getFunction():Function
    {
		// return _func;
		return function ():Void {
			trace([this, _testVar]);
		};
	}

引用:
2. ローカル変数は「this」で参照できないので、
  上記の「func()」を実行した場合、実行したメソッド内で「this」を参照できない。

Functioln.call()メソッドは、this参照を指定して、そのメソッドとして呼出すことができます。
引用:
3. 「call(this)」は、どこに定義されているのか分からないメソッドに
  「thisの位置ですよ」と教えてあげるために使える。

逆にいえば、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


----------------
 

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

題名 投稿者 日時
   プロパティの参照がメソッドの実行方法によって出来ない理由 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