如何保留运行时加载的Flash组件类型

时间:2012-11-28 22:40:56

标签: actionscript-3 flash

我有一个在Flash Pro 5.5中创建的swf,它在舞台上有几个子MovieClip。在其中一个子节点上,我使用了“组件定义”对话框,试图使该子节点成为下面显示的SmartAsset类的实例。然后我在运行时将已发布的父swf加载到我的主应用程序中(使用BulkLoader)。资产将加载正常,但有问题的孩子不是SmartAsset类型,而是一个vanilla MovieClip。奇怪的是,它添加了两个动态属性:类型(来自SmartAsset类,具有我在Flash Pro中设置的正确值)和无用的componentInspectorSetting。 如何让Flash将此孩子的类型保持为SmartAsset?

目标是让设计人员能够使用Flash Pro中的图形组件UI为资产子项分配自定义属性。主应用程序可以根据这些属性以不同方式处理这些子项。我可以满足于使用所带来的动态属性,但我知道我可以增强SmartAsset并且Flash会保留所有功能,因为孩子是SmartAsset的实际实例。

package  {
    import flash.display.MovieClip;

    public class SmartAsset extends MovieClip {

        private var _type:String;

        [Inspectable(name="type", variable="type", enumeration="phys_circle,phys_square,phys_polygon,placeholder,proxy,subpart", defaultValue="subpart")]
        public function get type():String {return _type;}
        public function set type(value:String):void {_type = value;}
    }
}

我尝试过的事情没有成功:

  • LoaderContext null或ApplicationDomain.currentDomain
  • 将SmartAsset导入主应用程序并使用 registerClassAlias就可以了。

0 个答案:

没有答案