ソースコード / ライセンス / ドキュメント / ASDoc
ASReflect
ASReflectはActionScript?3上で効率よくリフレクションを行うためのライブラリです。java.lang.reflectに似た設計で、クラスの型、メソッド、プロパティ、メタデータなど様々な情報の取得が出来ます。
最新情報
- 2007.03.26 ASReflect 1.00 rc1 をリリースしました。リリースノートはこちら。
ダウンロード
導入方法
Flex Builder 2 の場合
- Flex Builder上で、ASReflectを使用したいプロジェクトを開くか、作成します。
- プロジェクトのプロパティを表示し、「ActionScript? ビルドパス」内の「ライブラリパス」タブを開きます。
- 「SWCの追加」をクリックし、表示されたダイアログ内で、ダウンロードした「asreflect-xxx.swc」(xxxはバージョン)を指定して追加します。
- 「OK」を押して設定を保存すれば完了です。これでASReflect(org.libspark.asreflectパッケージ)が使えるようになります。
必要な環境
- ActionScript?3.0以上
ファーストステップ
ファーストステップでは、独自に作成したクラスの様々な情報を表示する手順を紹介します。
はじめに、クラスを作ります。このクラスの情報を取得してみます。
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
更に詳しい使い方はドキュメントをご覧下さい。
