是否可以使用Spark组件架构在MXML中创建可换肤组件?

时间:2010-10-14 13:17:27

标签: flex flex4 mxml skinning

有很多关于如何使用新的Spark组件架构在AS3中创建可换肤组件的示例,但是我还没有找到使用MXML的任何此类示例。

我主要指的是定义皮肤部位和皮肤状态。似乎SkinPart元数据应该与属性相关联,因此不能在MXML中使用,这是正确的吗?

1 个答案:

答案 0 :(得分:3)

据我所知,这是不可能的,因为 - 正如你正确指出的那样,没有办法在MXML中分配属性级元数据。

但是在MXML中声明皮肤契约似乎违背了Skinning架构的精神,即将组件的视图与其实现逻辑分开。

而且,鉴于在MXML中声明的所有内容都有一个值,它本身就会将组件耦合到皮肤上。

即:

<!-- labelDisplay has a value -->
<s:Label id="labelDisplay" />

VS

[SkinPart]
public var labelDisplay:Label; // labelDisplay == null;

同样,大多数组件逻辑本身都会以<fx:Script />块结束,这可能更适合单独的类。