四大Flex效果組件用法詳解
本文和大家重點討論一下Flex效果組件的用法,F(xiàn)lex中提供了豐富的效果組件,如果希望在觸發(fā)器被觸發(fā)后,延遲一段時間調(diào)用Flex效果,可以使用startDelay屬性。
Flex效果組件
Flex中提供了豐富的效果組件。由于Flex效果是一種根據(jù)時間漸變的過程,因此所有效果都具有duration屬性,用來設置播放時間(以毫秒為單位)。也可以通過設置repeatCount屬性和repeatDelay屬性,來分別控制效果播放的次數(shù)和重復播放效果的時間間隔(以毫秒為單位)。如果希望在觸發(fā)器被觸發(fā)后,延遲一段時間調(diào)用Flex效果,可以使用startDelay屬性。
1)Resize大小調(diào)整效果
Flex效果中Resize效果用來改變組件的大小。與Move效果相似,Resize效果可以指定初始大小(widthFrom、heightFrom)、目標大?。╳idthTo、heightTo)和變化量(widthBy、heightBy),其使用規(guī)則也與Move效果的初始位置、目標位置和移動量的使用規(guī)則相似。下面的代碼演示了Resize效果的使用方法:
- <mx:Resizeidmx:Resizeid="expand"target="{img}"widthTo="100"heightTo="160"/>
- <mx:Resizeidmx:Resizeid="contract"target="{img}"widthTo="25"
- heightTo="40"/>
- <mx:ControlBar>
- <mx:Buttonlabelmx:Buttonlabel="Expand"click="expand.end();
- expand.play();"/>
- <mx:Buttonlabelmx:Buttonlabel="Contract"click="contract.end();contract.play();"/>
- </mx:ControlBar>
- <mx:Imageidmx:Imageid="img"width="25"height="40"source="assets
- /icon01.png"/>
另外hideChildrenTargets屬性用來隱藏Panel容器的其他子項,當我們對Panel容器中的子項應用Resize效果時,默認情況下Panel會反復計算子項的大小和位置以調(diào)整布局,如果將這個屬性設為true,可以讓Panel容器在播放動畫時不做這種計算,直到播放完成,這樣可以節(jié)約系統(tǒng)資源。
2)Rotate旋轉(zhuǎn)效果
Flex效果中Rotate是一種旋轉(zhuǎn)效果,使組件圍繞指定的點旋轉(zhuǎn)。Rotate可以指定旋轉(zhuǎn)中心的坐標(originX和originY屬性)及旋轉(zhuǎn)的起始角度(angleFrom屬性)和最終角度(angleTo屬性)。起始旋轉(zhuǎn)角度的有效值范圍是0~360,而最終角度則可以是正值也可以是負值,默認值為360。如果angleTo的值比angleFrom的值小,則目標沿逆時針方向旋轉(zhuǎn),否則以順時針方向旋轉(zhuǎn)。代碼如下:
- <mx:Rotateidmx:Rotateid="rotate"angleFrom="-45"angleTo="0"target="{img}"
- duration="2000"/>
- <mx:Imageidmx:Imageid="img"source="assets/plane.png"
- addedEffect="rotate"/>
另外有時需要設置hideFocusRing屬性,以確定在開始播放效果時,效果是否應隱藏對焦環(huán)。該屬性默認值為true。對于組件而言,對焦環(huán)已經(jīng)被自動隱藏。如果Rotate效果應用于那些不是以UIComponent為基類目標對象,就必須隱藏對焦環(huán)。
需要注意的是,hideFocusRing屬性在以Effect為基類的效果類中,默認值為false,而在以MaskEffect為基類效果類中,默認值為true。
3)SoundEffect聲音效果
Flex效果中SoundEffect效果用來播放MP3音頻文件。我們可以通過source屬性指定要播放的MP3文件,可以直接設置該文件的URL,或是由Embed關鍵字嵌入MP3文件的Class對象。
SoundEffect效果的屬性包括以下幾個。
lautoLoad屬性用來設置是否自動加載MP3文件,默認值為true。
lbufferTime屬性用來設置聲音對象的緩沖時間。默認值為1000,單位為毫秒。
lisLoading如果已加載MP3,則該屬性為true。
lloops屬性用來設置循環(huán)次數(shù),默認值為0。
lpanEasingFunction屬性用來設置聲音均衡效果的緩動函數(shù)。
lpanFrom屬性和panTo屬性用來設置聲音對象的起始和最終平移,取值范圍在-1.0~1.0之間,其中-1.0表示僅使用左聲道,1.0表示僅使用右聲道,而0.0表示在2個聲道間平均地均衡聲音。
lsound屬性表示已加載MP3文件的聲音對象。
lsource屬性表示要播放的MP3文件的URL或類。
lstartTime屬性用來設置開始播放時間(以毫秒為單位),默認值為0。
luseDuration屬性表示是否根據(jù)duration屬性指定的時間停止播放,如果為false,則會在MP3完成播放或循環(huán)后停止效果,默認值為true。
lvolumeEasingFunction屬性用來設置音量效果的緩動函數(shù)。
lvolumeFrom屬性和volumeTo屬性用來設置聲音對象的初始和最終音量,取值范圍在0.0~1.0之間,默認值為1。
在下面的代碼所示的例子中,當應用程序創(chuàng)建完成后開始播放聲音文件,聲音從左聲道過渡到右聲道。
代碼清單SoundSample.mxml
- <?xmlversionxmlversion="1.0"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"
- creationCompleteEffect="{mySound}">
- <mx:SoundEffectidmx:SoundEffectid="mySound"
- duration="10000"
- useDuration="false"
- panFrom="-1"panTo="1"
- source="@Embed(source='assets/bumperc.mp3')"/>
- </mx:Application>
【編輯推薦】
- 剖析常見Flex效果組件用法
- Flex基礎 創(chuàng)建第一個Flex項目
- 解析Flex事件執(zhí)行流程
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 學習筆記 FlexBuilder2.0中如何使用基于Lists的控件