1、定义状态
flex4里状态的定义与flex3不同,你只需在<states></states>标签内定义状态就可以了。添加子元素和设置属性之类,不在这里进行。
如下所示:
<s:states>
<s:State name="State1"/>
<s:State name="State2"/>
<s:State name="State3"/>
</s:states>
2、改变状态
UIComponent类定义了一个currentState属性,通过改变这个属性的值来更换状态,这个属性的默认值是定义在需在<states></states>标签内的第一个状态。
例如:
<s:Button id="b1" label="Change to State 1" click="currentState='State2';"/>
<s:Button id="b2" label="Change to the default" click="currentState='State1';"/>
当然也可以通过UIComponent类的setCurrentState方法。
3、为一个状态设定属性,样式和事件
这是与flex3很不同的地方。在flex4里通过点语法来设定一个组件属于某个状态的属性值。
例如:
<s:Button label="Default State" label.State2="New State"/>
上述的代码的意思是,这个按钮的lable值在State2状态下是New State,在其他状态下是Default State。
上述代码也可以这样写:
<s:Button >
<s:label>Default State</s:label>
<s:label.State2>new State</s:label.State2>
</s:Button>
4、添加或移除组件
在flex4里,添加或移除某个组件,直接在这组件的属性里搞定。组件多了两个属性,includeIn和excludeFrom。includeIn,表示这个组件要被添加到属性值所指的状态,excludeFrom,表示这个组件要从属性值所指的状态中删除,includeIn和excludeFrom不能在同一个组件标签里出现,他们的值可以是多个状态,之间用逗号隔开。
例如:
<s:states>
<s:State name="default"/>
<s:State name="addCheckBox"/>
<s:State name="addTextInput"/>
<s:State name="addCheckBoxandButton"/>
</s:states>
<s:CheckBox id="myCB" label="Checkbox" includeIn="addCheckBox, addCheckBoxandButton"/>
<s:TextArea text="Exclude from addTextInput" excludeFrom="addTextInput"/>
原文地址:http://www.51xflash.com/article/flex/201103/13-13580.html