Flex sdk3 与 Flex sdk4区别与理解
Flex sdk3的外观框架是Halo,而Flex sdk4的框架则保存了向下兼容的传统,在已有的Halo(灵光)架构上加了一个Spark(星火)架构,两者有点区别,但是两者的主杆几乎没有发生什么变化.
我们先看看Halo架构,Halo与Spark比起来可能更容易理解,他的主杆只有一个UIComponent.
区别:控件\布局\状态,复合在一起
Spark架构,我们不要被绿叶枝丫蒙住了双眼.它的主杆其实就是UIComponent继承过来的 SkinnableComponent 还有Skin和 LayoutBase,SkinnableComponent此类有这么几个段落值得注意.
[Style(name="skinClass", type="Class")]
上面这句说明,此类支持skinClass支持样式,可能也支持skinClass属性(因为这个属性的源码没有开放,我也没有做过测试,所以我也不是很确定.估计也八九不离十.)
/**
* @private
* Storage for skin instance
*/
private var _skin:UIComponent;
private function setSkin(value:UIComponent):void
{
if (value === _skin)
return;
_skin = value;
dispatchEvent(new Event("skinChanged"));
}
这段就是样式了,新建样式文件MXML其实都是继承Skin这个类,而Skin的继承关系是(Skin-Group-GroupBase-UIComponent)又绕回来了.其中有个关键地方GroupBase类有一个
public function set layout(value:LayoutBase):void 属性说明了在样式文件里还可以指定布局的实例.也可以这么理解:控件\布局\状态,完全脱偶了.
(暂时只看到这里也只能理解了这么多,但是没有经过测试。
第一次写文章,如果我说得不对还希望各位能够体谅,多包函谢谢)