root/as3/Commands/src/commands/Command.as

リビジョン 609, 1.7 kB (コミッタ: fladdict, コミット時期: 4 年 前)

--

Line 
1 package commands
2 {
3         /**
4          * 「任意の関数を実行する」コマンド.
5          *
6          * <p>Commandクラスを用いることで、「関数の呼び出し」という行為を変数としてやりとりするが可能となります。</p>
7          *
8          * @example 以下はCommandクラスの基本的な使い方です。この例では"Hello Command"という文字列を表示するCommandを作成し、実行しています。
9          * <listing version="3.0">
10          * var command:Command = new Command(null, trace, ["Hello Command"]);
11          * command.execute();
12          *
13          * //Outputs
14          * //Hello Command</listing>
15          *
16          */
17         public class Command extends CommandBase
18         {
19                 //このthisObjectはクロージャのthisスコープをコントロールする為に、一応のこしておく。
20                 protected var _thisObject : Object;
21                 protected var _function : Function;
22                 protected var _params : Array;
23                
24                 /**
25                  * 関数execute()実行時に行いたい処理を登録します。
26                  *
27                  * @param thisObject Thisとして使用されるスコープです。基本的にnullで問題ありません。クロージャおよびAS2との互換性の為に存在しています。
28                  * @param func:Function 登録したい関数の参照。
29                  * @param params:Array 関数実行時に渡されるパラメーター
30                  */
31                 public function Command(thisObject:Object, func:Function, params:Array=null)
32                 {
33                         super();
34                         _thisObject = thisObject;
35                         _function = func;
36                         _params = params;
37                 }
38                
39                
40                
41                 /**
42                  * コンストラクタで登録した処理を実行します。
43                  *
44                  * @eventType Event.COMPLETE
45                  */
46                 override public function execute():void
47                 {
48                         _function.apply(_thisObject, _params);
49                         this.dispatchComplete();
50                 }
51         }
52 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。