演示 Flex 3.0 中的转换状态及转换状态中的过度效果,自定义鼠标指针
1、演示 State 的应用
State.mxml

<?xml?version="1.0"?encoding="utf-8"?>

<mx:Panel?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?width="400"?height="300"

????title="State?(状态的应用)">


????<mx:states>

????????<mx:State?name="state2">???????????

???????????????<!--

???????????????????<mx:AddChild?/>?-?在指定的关联控件的指定位置新增指定的控件

???????????????????????relativeTo?-?关联的控件

???????????????????????position?-?在关联控件的指定位置增加控件

???????????????????????????关联控件为元素类型则此处可能的值为:before?或?after??

???????????????????????????关联控件为集合类型则此处可能的值为:firstChild?或?lastChild

???????????????????<mx:SetProperty?/>?-?设置指定控件的某属性的值

???????????????????<mx:RemoveChild?/>?-?移除指定的控件

???????????????-->

????????????<mx:AddChild?relativeTo="{form}"?position="lastChild">

????????????????<mx:FormItem?label="Label2:">

????????????????????<mx:TextInput/>

????????????????</mx:FormItem>

????????????</mx:AddChild>

????????????<mx:SetProperty?target="{panel}"?name="title"?value="状态2"/>

????????????<mx:RemoveChild?target="{toggle}"/>

??????????????????????

????????????<mx:AddChild?relativeTo="{bar}"?position="firstChild">

????????????????<!--

????????????????????设置状态为空,即转换到原始状态

????????????????-->

????????????????<mx:LinkButton?label="转换到状态1"?click="this.currentState=''"/>

????????????</mx:AddChild>

????????</mx:State>

????</mx:states>


????<!--

????????以下为?状态1?的?ui

????-->

????<mx:Panel?id="panel"?title="状态1">

????????

????????<mx:Form?id="form">

????????????<mx:FormItem?label="Label1:">

????????????????<mx:TextInput/>

????????????</mx:FormItem>

????????</mx:Form>

????????

????????<mx:ControlBar?id="bar">???????????????????

????????????<!--

????????????????ui?状态转换到名为?state2?的?<mx:State?/>

????????????-->

????????????<mx:LinkButton?id="toggle"?label="转换到状态2"?click="this.currentState='state2'"?/>

????????</mx:ControlBar>

????</mx:Panel>

????

</mx:Panel>

2、演示 State Transition 的应用
StateTransition.mxml

<?xml?version="1.0"?encoding="utf-8"?>

<mx:Panel?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?width="400"?height="300"

????title="State?Transition?(状态过渡的应用)">

????

????<mx:Script>

????????<
????????????

????????????import?mx.effects.easing.Bounce;

????????????

????????]]>

????</mx:Script>

????

????<!--

????????<mx:Transition?/>?-?用于设置状态转换间的过渡效果

????-->

????<mx:transitions>

????????<mx:Transition>

????????????<mx:Parallel?targets="{[panel,?toogleTo1,?toogleTo2,?formItem]}">

????????????????<mx:Resize?duration="500"?easingFunction="Bounce.easeOut"/>

????????????????<mx:Sequence?target="{formItem}">

????????????????????<mx:Blur?duration="200"?blurYFrom="1.0"?blurYTo="20.0"/>

????????????????????<mx:Blur?duration="200"?blurYFrom="20.0"?blurYTo="1"/>

?????????????????</mx:Sequence>

????????????</mx:Parallel>

????????</mx:Transition>

????</mx:transitions>

????

????<!--

????????以下关于状态转换的部分参见?State.mxml

????-->

????<mx:states>

????????<mx:State?name="state2">???????????

????????????<mx:AddChild?relativeTo="{form}"?position="lastChild">

????????????????<mx:FormItem?id="formItem"?label="Label2:">

????????????????????<mx:TextInput/>

????????????????</mx:FormItem>

????????????</mx:AddChild>

????????????

????????????<mx:SetProperty?target="{panel}"?name="title"?value="状态2"/>

???

????????????<mx:RemoveChild?target="{toogleTo2}"/>

??????????????????????

????????????<mx:AddChild?relativeTo="{bar}"?position="firstChild">

????????????????<mx:LinkButton?id="toogleTo1"?label="转换到状态1"?click="this.currentState=''"/>

????????????</mx:AddChild>

????????</mx:State>

????</mx:states>


????<mx:Panel?id="panel"?title="状态1">

????????

????????<mx:Form?id="form">

????????????<mx:FormItem?label="Label1:">

????????????????<mx:TextInput/>

????????????</mx:FormItem>

????????</mx:Form>

????????

????????<mx:ControlBar?id="bar">???????????????????

????????????<mx:LinkButton?id="toogleTo2"?label="转换到状态2"?click="this.currentState='state2'"?/>

????????</mx:ControlBar>

????</mx:Panel>

????

</mx:Panel>

3、演示如何自定义鼠标指针
Cursor.mxml

<?xml?version="1.0"?encoding="utf-8"?>

<mx:Panel?xmlns:mx="http://www.adobe.com/2006/mxml"?layout="absolute"?width="400"?height="300"

????title="Cursor?自定义鼠标指针">

????

??????<mx:Script>

????????<

????????????import?mx.managers.CursorManager;


????????????//?以?类?的形式引用内嵌资源。(另一种以字符串的形式引用内嵌资源的方式:@Embed('images/logo.png'))

????????????[Embed(source="images/logo.png")]

????????????private?var?customCursor:Class;??

????????????

????????????private?function?cursorChange(e:Event):void

????????????{

????????????????switch?(radioGroup.selectedValue)

????????????????{

????????????????????//?正常时候的鼠标指针

????????????????????case?"Normal"?:

????????????????????????CursorManager.removeAllCursors();

????????????????????????break;

????????????????????//?繁忙时,鼠标指针的样式

????????????????????case?"Busy"?:

????????????????????????CursorManager.removeAllCursors();

????????????????????????CursorManager.setBusyCursor();

????????????????????????break;

????????????????????//?自定义鼠标指针的样式

????????????????????case?"Custom"?:

????????????????????????CursorManager.removeAllCursors();????????????????????

????????????????????????CursorManager.setCursor(customCursor);

????????????????????default?:

????????????????????????break;

????????????????}

????????????}

????????????????????????

????????]]>

????</mx:Script>

????

????<mx:RadioButtonGroup?id="radioGroup"?change="cursorChange(event);"/>

????<mx:RadioButton?x="10"?y="10"?label="普通指针"?value="Normal"?groupName="radioGroup"?selected="true"/>

????<mx:RadioButton?x="10"?y="36"?label="繁忙指针"?value="Busy"?groupName="radioGroup"/>

????<mx:RadioButton?x="10"?y="62"?label="自定义指针"?value="Custom"?groupName="radioGroup"/>


</mx:Panel>
?