ASReflect

ソースコード / ライセンス / ドキュメント / ASDoc

ASReflect

ASReflectはActionScript?3上で効率よくリフレクションを行うためのライブラリです。java.lang.reflectに似た設計で、クラスの型、メソッド、プロパティ、メタデータなど様々な情報の取得が出来ます。

最新情報

ダウンロード

導入方法

Flex Builder 2 の場合

  1. Flex Builder上で、ASReflectを使用したいプロジェクトを開くか、作成します。
  2. プロジェクトのプロパティを表示し、「ActionScript? ビルドパス」内の「ライブラリパス」タブを開きます。
  3. 「SWCの追加」をクリックし、表示されたダイアログ内で、ダウンロードした「asreflect-xxx.swc」(xxxはバージョン)を指定して追加します。
  4. 「OK」を押して設定を保存すれば完了です。これでASReflect(org.libspark.asreflectパッケージ)が使えるようになります。

必要な環境

ファーストステップ

ファーストステップでは、独自に作成したクラスの様々な情報を表示する手順を紹介します。

はじめに、クラスを作ります。このクラスの情報を取得してみます。

package
{
    public class MyClass
    {
        public var a:String;
        public var b:Number;
        
        public function func():void
        {
        }
        
        public function add(arg1:int, arg2:int):int
        {
            return arg1 + arg2;
        }
    }
}

クラスの情報を取得するには、ASReflectクラスのgetTypeメソッドを使用することが出来ます。

import org.libspark.asreflect.ASReflect;
...
var type:Type = ASReflect.getType(MyClass);

ここでは、「クラス名」「プロパティの名前と型の一覧」「メソッドの名前と引数の数と戻り値の型の一覧」を表示してみます。

trace('ClassName:', type.name);
trace('Properties:');
for each (var prop:Property in type.properties) {
    trace(' ' + prop.name, prop.type);
}
trace('Methods:');
for each (var method:Method in type.methods) {
    trace(' ' + method.name, method.parameters.length, method.returnType);
}

実行すると、以下のような出力が得られます。(どのクラスにも自動で追加されるプロパティ「length」もプロパティ一覧に表示されています)

ClassName: MyClass
Properties:
 a [class String]
 b [class Number]
 length [class int]
Methods:
 add 2 [class int]
 func 0 null

更に詳しい使い方はドキュメントをご覧下さい。