ActionScriptで動的なインスタンス生成を行う
クラス名をもらって、そのクラス名から動的にインスタンスを生成したいときに、flash.utils.getDefinitionByNameが使えます。
引数に指定したクラス名から、クラスの参照を取得することができるので、そこからインスタンスを生成できます。
// 戻り値がObjectなので、Classでキャストしておく var myClass:Class = flash.utils.getDefinitionByName("Hoge") as Class; var myInstance:Object = new myClass();
たとえば、インタフェースが統一されているけど、その実装クラスは実行時にしか判明しない場合、以下のようにして動的なインスタンス生成ができます。
public function createCommand(className:String):ICommand { var command:Class = flash.utils.getDefinitionByName(className) as Class; return new command as ICommand; }