在ActionScript 3中如果我们只知道类名称但又想获得一个类的引用的话,那么我们可以使用flash.utils.getDefinitionByNam创建一个类的实例…

在ActionScript 3中如果我们只知道类名称但又想获得一个类的引用的话,那么我们可以使用flash.utils.getDefinitionByNam创建一个类的实例。

例如:

package
{
  import flash.display.Sprite;
  import flash.utils.getDefinitionByName;

  public class DynamicCall extends Sprite
  {
    public function DynamicCall()
    {
           var ClassReference:Class = getDefinitionByName("String") as Class;
           var s:String = (new ClassReference("foo=") as String);
           trace(s);
    }
  }
}

以上代码根据类名称“String”创建一个String类的实例,getDefinitionByName需要完整类路径,所以如果我们想创建MovieClip的实例的话,我们需要提供完整的类路径:

           var ClassReference:Class = getDefinitionByName("flash.display.MovieClip") as Class;

这样的方法虽然有些旁门左道,但却非常有用!

原文地址:ActionScript 3 : Get a Class Reference by Class Name