这是我的代码行:
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)
请注意,包中包含所有类可能会增加代码大小.