详细请看:http://www.k-zone.cn/zblog/post/flash-builder-gumbo-customer-sparkskin-3.html
通过上两篇文章我们可以得到一个结论:使用SparkSkin、Skin方式设定spark组件的皮肤是非常容易的事情。如果同样的效果在Flex SDK 3里面设定的话,将会是件非常麻烦的事情。
Flex SDK 4(Gumbo)众所周知有两套组件:spark组件和halo组件,那么既然spark组件中的皮肤设定是非常容易的事情,在halo中呢?能否也会像spark组件一样方便?
答案:当然是肯定的。
其原因是:仍旧使用SparkSkin和Skin组件来完成自定义皮肤。
先回忆一下在spark组件中自定义皮肤的方法:
1、
Button {
skinClass: ClassReference("com.rianote.flex.skin.KButton");
}
2、<Button skinClass="com.rianote.flex.skin.KButton" />
3、myButton.setStyle( "skinClass", Class( KButton ));
在spark中,对其设定皮肤我们使用skinClass这个属性。同样在halo包里面,我们应该如何定义这个皮肤呢?
看以下的代码:
<fx:Style>
.sparkButtonStyle {
skin: ClassReference("com.rianote.flex.skin.KButton");
}
</fx:Style>
<mx:Button label="我是halo组件" styleName="sparkButtonStyle"/>
是不是很容易呢?同样对于经常熟悉开发Flex SDK 3的程序员来说,上述代码一点都不陌生。
再让我们对比一下spark组件的写法:
<fx:Style>
Button {
skinClass: ClassReference("com.rianote.flex.skin.KButton");
}
</fx:Style>
<s:Button label="我是spark组件" skinClass="com.rianote.flex.skin.KButton" />
其实我们仅仅从spark与halo共用一套自定义皮肤的方式得到一些信息:
Flex SDK 4(Gumbo)虽然在版本兼容上面并不是特别好,但是从这公用自定义皮肤的方式可以看出,Adobe Flex Team在兼容性方面还是花费了很大的力气。