在前面 一篇文章《[原]一种随机类的方法》中提到的关于使用 getDefinitionByName() 方法获取类,但是在文章的最后的问题,不知道有没有人思考过这样做为什么特殊。
这里公布答案:
getDefinitionByName() 它将直接从当前应用程序域(ApplicationDomain)去查询并获取,因此当我们Load,一个swf执行时,会报错。
有时候对于多层次的应用程序域(相当于应用程序域的树,层次>=3)管理起来会非常麻烦。
因此我们需要单独提取出LoaderContext 管理他们,通过LoaderContext的applicationDomain中getDefinition()来管理它们。例如 单例模式。
道理弄懂了,实现起来就是很简单的东西了。