有很多关于如何使用新的Spark组件架构在AS3中创建可换肤组件的示例,但是我还没有找到使用MXML的任何此类示例。
我主要指的是定义皮肤部位和皮肤状态。似乎SkinPart元数据应该与属性相关联,因此不能在MXML中使用,这是正确的吗?
答案 0 :(得分:3)
据我所知,这是不可能的,因为 - 正如你正确指出的那样,没有办法在MXML中分配属性级元数据。
但是在MXML中声明皮肤契约似乎违背了Skinning架构的精神,即将组件的视图与其实现逻辑分开。
而且,鉴于在MXML中声明的所有内容都有一个值,它本身就会将组件耦合到皮肤上。
即:
<!-- labelDisplay has a value -->
<s:Label id="labelDisplay" />
VS
[SkinPart]
public var labelDisplay:Label; // labelDisplay == null;
同样,大多数组件逻辑本身都会以<fx:Script />
块结束,这可能更适合单独的类。