在运行时用参数实例化加载的 swf

Posted

技术标签:

【中文标题】在运行时用参数实例化加载的 swf【英文标题】:Instantiate loaded swf with arguments at runtime 【发布时间】:2013-06-29 13:00:45 【问题描述】:

我正在开发一个项目,该项目具有一个主 swf,可根据需要加载子 swf。有没有一种方法可以加载这些子 swf,以便可以使用参数调用其文档类中的构造函数?

举个例子:

我有一个在运行时加载的子类,可以在其构造函数中给出对齐参数。

我在运行时将它作为一个类加载,并使用父级 Master swf 中的参数对其进行实例化。

显然,我可以在子节点中创建一个辅助“构造函数”,在实例化后构建我想要的东西,我只是想知道是否有办法管理加载的 swfs 的实例化,和/或将它们加载到类中而不是而不是显示对象。

【问题讨论】:

【参考方案1】:

加载的 SWF 已经是一个构造对象。使用 AS3,您可以获取类名并实例化一个新对象:

在下面的函数中传入你想要“复制”的对象。它将获取类名并将其转换为类。然后,它将创建该类的一个新实例,您可以在其中传递一些参数

public function getClassObj(obj:*, constructorArgument:*):* 
    var objClass:Class = Class(getDefinitionByName(getQualifiedClassName(obj)));
    var tempObj:* = new objClass(constructorArgument);
    return tempObj;

【讨论】:

我认为这可能是唯一的方法,问题在于实例化原始对象的开销,一旦我掌握了它的类的句柄就将其丢弃。此外,孩子的构造函数需要在构造函数中使用默认值构建,以便可以在没有参数的情况下对其进行实例化。谢谢回复。我想你是正确的;这是唯一的方法。我现在将坚持使用辅助构造方法。

以上是关于在运行时用参数实例化加载的 swf的主要内容,如果未能解决你的问题,请参考以下文章

AS3在运行时加载和访问外部SWF中的字体

寻找在动态加载 Jar 文件和在 Java 运行时实例化类时使用 Apache Felix 的基本示例

ActionScript 3 AS3在运行时加载和访问外部SWF中的字体

Flash ActionScript 3 运行时安全错误

如何使用 php readfile 将 swf 加载到另一个 swf 并保留 url 参数?

2017.12.17 servlet 生命周期