正确使用getDefinitionByName

Vis*_*ani 1 actionscript-3

这是我的代码行:

  new (getDefinitionByName(String( "mypackage.MyDynamicClass"  )) as Class) ;
Run Code Online (Sandbox Code Playgroud)

这会生成错误:mypackage.MyDynamicClass未定义.

我用Google搜索并找到了一个解决方案:在import语句中使用该类的名称.

所以,

  import mypackage.MyDynamicClass 
  new (getDefinitionByName(String( "mypackage.MyDynamicClass"  )) as Class) ;
Run Code Online (Sandbox Code Playgroud)

有效!!!

但是,我对这个解决方案并不满意,因为它确实违反了动态类的好处.如果我知道类的名称(导入),那么为什么我会将它用作字符串?

任何动态加载类的替代方法都有效吗?

Vishwas

Mir*_*ea 5

看一下这篇文章:http://blogs.adobe.com/cantrell/archives/2010/09/loading-classes-dynamically-in-actionscript-3.html 您无法避免在运行时包含所需的类.你可以随时使用:

import mypackage.*
Run Code Online (Sandbox Code Playgroud)

请注意,包中包含所有类可能会增加代码大小.