簡單Flex效果組件用法指導
在學習Flex的過程中,你可能會遇到Flex效果這樣的問題,這里和大家分享一下幾個常用的Flex效果組件,Flex中提供了豐富的效果組件,所有效果都具有duration屬性,可以通過設置repeatCount屬性和repeatDelay屬性,來分別控制效果播放的次數和重復播放效果的時間間隔(以毫秒為單位)。
簡單Flex效果組件
Flex中提供了豐富的效果組件。由于Flex效果是一種根據時間漸變的過程,因此所有效果都具有duration屬性,用來設置播放時間(以毫秒為單位)。也可以通過設置repeatCount屬性和repeatDelay屬性,來分別控制效果播放的次數和重復播放效果的時間間隔(以毫秒為單位)。如果希望在觸發器被觸發后,延遲一段時間調用效果,可以使用startDelay屬性。
1)AnimateProperty動畫效果
Flex效果中AnimateProperty是用來為組件的屬性或樣式設置動畫的效果。我們可以通過其property屬性設定目標對象上需要設置動畫效果的屬性,然后設置fromValue屬性和toValue屬性,為效果提供屬性的起始值和結束值。例如下面的代碼使用mouseDownEffect觸發器,當單擊圖片時,觸發AnimateProperty效果,在1秒鐘內,Image對象的scaleX屬性由1變為2,被橫向拉伸。代碼如下:
- <mx:AnimatePropertyidmx:AnimatePropertyid="animateProperty"property="scaleX"fromValue="1
- "toValue="2"
- duration="1000"/>
- <mx:Imageidmx:Imageid="img"source="assets/plane.png"
- mouseDownEffect="{animateProperty}"/>
如果希望通過樣式設置效果,可以將isStyle屬性設置為ture,然后通過setStyle()方法設置目標對象的樣式,從而達到設置效果的目的。
2)Blur模糊效果
Flex效果中Blur是一種模糊效果。該效果使用了flash.filters.BlurFilter濾鏡,如果對某個組件應用了Blur效果,就不能再對該組件應用BlurFilter濾鏡,也無法再次應用Blur效果。下面的代碼通過Image對象的mouseDownEffect觸發器觸發Blur效果,在1秒鐘內,Image對象將逐漸變得模糊。代碼如下:
- <mx:Bluridmx:Blurid="blurImage"duration="1000"blurXFrom="0.0"
- blurXTo="10.0"
- blurYFrom="0.0"blurYTo="10.0"/>
- <mx:Imageidmx:Imageid="img"source="assets/plane.png"
- mouseDownEffect="{blurImage}"/>
3)Dissolve溶解效果
Flex效果中Dissolve是一種溶解效果。當效果開始播放時,將創建一個不透明的矩形,這個矩形懸浮在目標組件的上方,它的顏色由Dissolve.color屬性設置,此時透明度為“1.0-Dissolve.alphaFrom”。隨著效果的播放,該矩形的alpha屬性將從(1.0-alphaFrom)逐漸變為“1.0–alphaTo”,直到效果播放完成,矩形被銷毀。
如果目標對象是一個容器,那么Dissolve效果將應用于容器內部的內容區域。
下面的代碼使用一個CheckBox對象設置Image的visible屬性,通過hideEffect和showEffect觸發器分別觸發各自的Dissolve效果:
- <mx:Dissolveidmx:Dissolveid="dissolveOut"duration="1000"alphaFrom="1.0"
- alphaTo="0.0"/>
- <mx:Dissolveidmx:Dissolveid="dissolveIn"duration="1000"alphaFrom="0.0"
- alphaTo="1.0"/>
- <mx:CheckBoxidmx:CheckBoxid="cbx"label="visible"selected="true"/>
- <mx:Imagesourcemx:Imagesource="assets/plane.png"visible="{cbx.selected}"
- hideEffect="{dissolveOut}"showEffect="{dissolveIn}"/>
4)Fade淡入淡出效果
Flex效果中Fade是一種淡入淡出效果,它通過設置組件的alpha屬性來實現動畫效果。當使用showEffect或hideEffect觸發器設置Fade效果時,如果省略了alphaFrom和alphaTo屬性的值,那么在showEffect觸發器上目標對象的透明度將從0變化到目標的當前alpha值,而在hideEffect觸發器上則會從當前的alpha值變化到0。如果要對字體使用Fade效果,必須使用嵌入字體。
下面的代碼使用一個CheckBox對象設置Image的visible屬性,通過hideEffect和showEffect觸發器分別觸發各自的Fade效果:
- <mx:Fadeidmx:Fadeid="fadeOut"duration="1000"alphaFrom="1.0"
- alphaTo="0.0"/>
- <mx:Fadeidmx:Fadeid="fadeIn"duration="1000"alphaFrom="0.0"
- alphaTo="1.0"/>
- <mx:CheckBoxidmx:CheckBoxid="cbx"label="visible"selected="true"/>
- <mx:Imagesourcemx:Imagesource="assets/plane.png"visible="{cbx.selected}"
- hideEffect="{fadeOut}"showEffect="{fadeIn}"/>
【編輯推薦】
- 技術分享 用FlexBuilder創建Flex項目
- Flex基礎 創建***個Flex項目
- 解析Flex事件執行流程
- FlexBuilder3.0與Eclipse3.4的***結合
- 學習筆記 FlexBuilder2.0中如何使用基于Lists的控件