AS3从外部SWF实例化类

Chr*_*ris 4 flash actionscript external actionscript-3

我正在和我的好友聊聊这件事,他确信你可以做到这一点,并说他已经做到了,但是我无法让它发挥作用.

我想知道它是否甚至可能.我尝试在外部下载的SWF中键入一个var作为一个类,然后创建一个实例但不能做.

一些代码

private static function onCompleteHandler(e:Event) {
dashboardObject = e.target.content;
// registerClassAlias("Dashboard", ); doesnt work
var dash:Class = getDefinitionByName("Dashboard") as Class;
var myDash = new dash();
trace(myDash.show);
}

错误

ReferenceError: Error #1065: Variable Dashboard is not defined.
at global/flash.utils::getDefinitionByName()
at System$/onCompleteHandler()

因此,除非在项目SWF中编译,否则您似乎无法创建类的实例.如果这是真的是我想要它做的事情.我不希望人们试图通过下载SWF文件来创建我的类的实例,而不是我在这里构建的内容.

谢谢

Ric*_*lay 7

你需要做两件事:

  1. Dashboard一个包(package.to.Dashboard).无包类具有编译形式的不同属性(受保护的命名空间),而不是具有包的属性,使得外部SWF无法访问它们.
  2. 确保已加载的SWF已加载到与父项相同的ApplicationDomain中

然后,您应该能够getDefinitionByName从加载的SWF和new返回中使用Class.