摘要: Flex4中的spark组件将显示和逻辑完全分开,通过指定SkinnableComponent的skinClass样式指定其Skin。Skin和组件之间通过state ,data 和skinpart 进行交互。SkinnableComponent和Skin都继承自UIComponent。接下来的问题是:Skin和Component都是组件(UIComponent),依据什么原则将组件行为划分到组件逻辑和显示?参考An Introduction to the Gumbo Component Architecture 深入理解Flex4中的组件架构。 阅读全文
posted @ 2009-10-06 04:16 心内求法 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 在SkinnableComponent中,可以声明SkinPart元标签对Skin进行约束,同时在组件中提供对Skin元素的引用:[SkinPart(required="false")] public var labelElement:SimpleText;如果声明了SkinPart并且required="true",则Skin中必须包含该类型灯元素并且具有相同的id:SkinnableComponent中还提供了partAdded和partRemoved方法://--------------------------------------------- 阅读全文
posted @ 2009-10-06 03:22 心内求法 阅读(1565) 评论(0) 推荐(0) 编辑
摘要: 前面说了如何自定义SkinnableComponent 以及 定义State 。在Skin中还可以引用Component中的数据。首先在Node中增加属性tokenCount:private var _tokenCount:int; [Bindable("tokenChange")] public function get tokenCount():int { return _tokenCount; } public function set tokenCount(value:int):void { _tokenCount = value; }在Skin中,需要先指定... 阅读全文
posted @ 2009-10-06 02:54 心内求法 阅读(1270) 评论(0) 推荐(0) 编辑
摘要: 在上一篇 中,定义了一个最简单的SkinnableComponent并为其定义了两个Skin。对于TransitionSkin,需要在enable时有不同的展现方式,这可以通过Skin State实现。对自定义的SkinnableComponent的修改 首先在组件中定义isEnabled属性:private var _isEnabled:Boolean = false; public function get isEnabled():Boolean { return _isEnabled; } public function set isEnabled(value:Boo... 阅读全文
posted @ 2009-10-06 01:45 心内求法 阅读(1843) 评论(0) 推荐(0) 编辑