1

我有一个在 Flash Pro 5.5 中创建的 swf,在舞台上有几个子 MovieClip。在其中一个孩子身上,我使用了“组件定义”对话框,试图使该孩子成为如下所示的 SmartAsset 类的实例。然后我在运行时将发布的父 swf 加载到我的主应用程序中(为此使用 BulkLoader)。资产将很好地加载,但有问题的孩子不是 SmartAsset 类型,而是普通的 MovieClip。奇怪的是,它添加了两个动态属性:type(来自 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 或 1 与 ApplicationDomain.currentDomain
  • 将 SmartAsset 导入主应用程序并在其上使用 registerClassAlias。
4

0 回答 0