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

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

举个例子:

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

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

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

【问题讨论】:

    标签: actionscript-3 class actionscript instantiation loader


    【解决方案1】:

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

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

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

    【讨论】:

    • 我认为这可能是唯一的方法,问题在于实例化原始对象的开销,一旦我掌握了它的类的句柄就将其丢弃。此外,孩子的构造函数需要在构造函数中使用默认值构建,以便可以在没有参数的情况下对其进行实例化。谢谢回复。我想你是正确的;这是唯一的方法。我现在将坚持使用辅助构造方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多