文章目录
  1. 1. 组件思考
    1. 1.1. 抽象
    2. 1.2. 实现
      1. 1.2.1. RadioButtonGroup
      2. 1.2.2. ToggleButtonBar
  2. 2. 常用属性
  3. 3. 事件

组件思考

有一些组件并不是独立的,它的改变需要去影响其他组件的显示或者内部的逻辑处理,比如Flex框架中的RadioButtonGroup,ButtonBar, ToggleButtonBar等等,内部视图都是互有联系的,游戏中也会用到类似的功能。用AS3代码写几个用到的。

抽象

组件内部的子视图之前的相互关系对使用者是透明的,需要什么样的功能内部管理就好,内部监听没一个显示对象的事件,显示对象通过addItem函数添加进去并且监听鼠标事件,可以有一个默认选中项的设定,这取决于开发者。选中项的改变也需要派发相对应的事件。

实现

RadioButtonGroup

这些按钮在选中逻辑上是互斥,所以只是逻辑上处理就可以了,集成EventDispatch基类是最轻便的,在有一个radioButton被选中的时候将上次被选中的按钮设置为未选中状态,同时记录选中的按钮。

ToggleButtonBar

某些按钮除了在选中状态上是互斥的以外,在显示上也会有相关,比如选中的按钮会在其他未选中按钮的上面,即index比其他的要高,所以他们应该同属一个父类,所以这个组件就继承ui组件的基类了,其他的逻辑和RadioButtonGroup保持一致即可。

常用属性

  • selectIndex:可读写,设置选中的索引,可添加进去的顺序有关.
  • selectItem:可读写,设置选中的按钮项,建议使用selectIndex属性。

事件

在选中项发生改变的时候应该派发selcetChange事件,通知外部。

文章目录
  1. 1. 组件思考
    1. 1.1. 抽象
    2. 1.2. 实现
      1. 1.2.1. RadioButtonGroup
      2. 1.2.2. ToggleButtonBar
  2. 2. 常用属性
  3. 3. 事件