我正在和我的 friend 聊天,他相信你可以做到这一点,并说他已经做到了,但我无法让它发挥作用。
我想知道是否有可能。我尝试在外部下载的 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 文件来尝试创建我的类的实例。
谢谢
最佳答案
你需要做两件事:
Dashboard
一个包 ( package.to.Dashboard
)。与有包的类相比,无包类以编译形式被赋予不同的属性( protected 命名空间),使得外部 SWF 无法访问它们。 然后,您应该能够使用加载的 SWF 中的
getDefinitionByName
和 new
返回 Class
。关于actionscript-3 - AS3 从外部 SWF 实例化类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1634757/