我有一个在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;}
}
}
我尝试过的事情没有成功: