文档介绍:flex4组件states在很多富互联网应用,网页外观的改变基于用户的行为。一个状态就定义了组件的一种表现样式。要想使用状态,你应该首先定义一个默认的状态,然后在此基础上重写或者更改,这样就形成了一系列的其他样式。你可以添加、移除某些子元素,更改CSS或者属性的值,更改触发的事件。下面是一个简单的例子:<?xmlversion=""encoding="utf-8"?><s:Applicationxmlns:fx=";xmlns:s="library://ns./flex/spark"xmlns:mx="library://ns./flex/halo"width="400"height="300"><!--定义了二个状态,系统默认状态为第一个--><s:states><s:Statename="State1"/><s:Statename="State2"/></s:states><mx:VBoxverticalCenter="0"horizontalCenter="0"><s:Button<!--状态为state1时,设置label属性和单击事件-->="Small"="currentState='State2'"<!--状态为state2时,设置width属性、height属性、label2属性和单击事件-->="200"="200"="BIG"="currentState='State1'"/><!--状态为state2时,该label才显示--><mx:LabelincludeIn="State2"width="100%"text="State2Only"textAlign="center"/></mx:VBox></s:Application>flex4里状态的定义与flex3不同,你只需在<states></states>标签内定义状态就可以了。添加子元素和设置属性之类,不在这里进行了。如下所示:<s:states><s:Statename="State1"/><s:Statename="State2"/><s:Statename="State3"/>..</s:states>ponent类定义了一个currentState属性,通过改变这个属性的值来更换状态,这个属性的默认值是定义在需在<states></states>标签内的第一个状态。例如:<s:Buttonid="b1"label="ChangetoState1"click="currentState='State2';"/><s:Buttonid="b2"label="Changetothedefault"click="currentState='State1';"/>ponent类的setCurrentState方法。在flex4里通过点语法来设定一个组件属于某个状态的属性值。例如:<s:Buttonlabel="DefaultState"="NewState"/>上述的代码的意思是,这个按钮的lable值在State2状态下是NewState,在其他状态下是DefaultState。上述代码也可以这样写: