flash组件--按钮组
更新日期:
组件思考
有一些组件并不是独立的,它的改变需要去影响其他组件的显示或者内部的逻辑处理,比如Flex框架中的RadioButtonGroup
,ButtonBar
, ToggleButtonBar
等等,内部视图都是互有联系的,游戏中也会用到类似的功能。用AS3代码写几个用到的。
抽象
组件内部的子视图之前的相互关系对使用者是透明的,需要什么样的功能内部管理就好,内部监听没一个显示对象的事件,显示对象通过addItem
函数添加进去并且监听鼠标事件,可以有一个默认选中项的设定,这取决于开发者。选中项的改变也需要派发相对应的事件。
实现
RadioButtonGroup
这些按钮在选中逻辑上是互斥,所以只是逻辑上处理就可以了,集成EventDispatch
基类是最轻便的,在有一个radioButton
被选中的时候将上次被选中的按钮设置为未选中状态,同时记录选中的按钮。
ToggleButtonBar
某些按钮除了在选中状态上是互斥的以外,在显示上也会有相关,比如选中的按钮会在其他未选中按钮的上面,即index
比其他的要高,所以他们应该同属一个父类,所以这个组件就继承ui组件的基类了,其他的逻辑和RadioButtonGroup
保持一致即可。
常用属性
selectIndex
:可读写,设置选中的索引,可添加进去的顺序有关.selectItem
:可读写,设置选中的按钮项,建议使用selectIndex
属性。
事件
在选中项发生改变的时候应该派发selcetChange
事件,通知外部。