解析Flex效果組件中三大超炫效果
你對(duì)Flex效果組件的用法是否了解,這里和大家分享一下,由于Flex效果是一種根據(jù)時(shí)間漸變的過程,因此所有效果都具有duration屬性,用來設(shè)置播放時(shí)間(以毫秒為單位)。
Flex效果組件
Flex中提供了豐富的Flex效果組件。由于Flex效果是一種根據(jù)時(shí)間漸變的過程,因此所有效果都具有duration屬性,用來設(shè)置播放時(shí)間(以毫秒為單位)。也可以通過設(shè)置repeatCount屬性和repeatDelay屬性,來分別控制效果播放的次數(shù)和重復(fù)播放效果的時(shí)間間隔(以毫秒為單位)。如果希望在觸發(fā)器被觸發(fā)后,延遲一段時(shí)間調(diào)用Flex效果,可以使用startDelay屬性。
1)Resize大小調(diào)整效果
Flex效果組件中Resize效果用來改變組件的大小。與Move效果相似,Resize效果可以指定初始大?。╳idthFrom、heightFrom)、目標(biāo)大?。╳idthTo、heightTo)和變化量(widthBy、heightBy),其使用規(guī)則也與Move效果的初始位置、目標(biāo)位置和移動(dòng)量的使用規(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容器的其他子項(xiàng),當(dāng)我們對(duì)Panel容器中的子項(xiàng)應(yīng)用Resize效果時(shí),默認(rèn)情況下Panel會(huì)反復(fù)計(jì)算子項(xiàng)的大小和位置以調(diào)整布局,如果將這個(gè)屬性設(shè)為true,可以讓Panel容器在播放動(dòng)畫時(shí)不做這種計(jì)算,直到播放完成,這樣可以節(jié)約系統(tǒng)資源。
2)Rotate旋轉(zhuǎn)效果
Flex效果組件中Rotate是一種旋轉(zhuǎn)效果,使組件圍繞指定的點(diǎn)旋轉(zhuǎn)。Rotate可以指定旋轉(zhuǎn)中心的坐標(biāo)(originX和originY屬性)及旋轉(zhuǎn)的起始角度(angleFrom屬性)和最終角度(angleTo屬性)。起始旋轉(zhuǎn)角度的有效值范圍是0~360,而最終角度則可以是正值也可以是負(fù)值,默認(rèn)值為360。如果angleTo的值比angleFrom的值小,則目標(biāo)沿逆時(shí)針方向旋轉(zhuǎn),否則以順時(shí)針方向旋轉(zhuǎn)。代碼如下:
- <mx:Rotateidmx:Rotateid="rotate"angleFrom="-45"angleTo="0"target="{img}"
- duration="2000"/>
- <mx:Imageidmx:Imageid="img"source="assets/plane.png"
- addedEffect="rotate"/>
另外有時(shí)需要設(shè)置hideFocusRing屬性,以確定在開始播放效果時(shí),效果是否應(yīng)隱藏對(duì)焦環(huán)。該屬性默認(rèn)值為true。對(duì)于組件而言,對(duì)焦環(huán)已經(jīng)被自動(dòng)隱藏。如果Rotate效果應(yīng)用于那些不是以UIComponent為基類目標(biāo)對(duì)象,就必須隱藏對(duì)焦環(huán)。
需要注意的是,hideFocusRing屬性在以Effect為基類的效果類中,默認(rèn)值為false,而在以MaskEffect為基類效果類中,默認(rèn)值為true。
3)SoundEffect聲音效果
Flex效果組件中SoundEffect效果用來播放MP3音頻文件。我們可以通過source屬性指定要播放的MP3文件,可以直接設(shè)置該文件的URL,或是由Embed關(guān)鍵字嵌入MP3文件的Class對(duì)象。
SoundEffect效果的屬性包括以下幾個(gè)。
lautoLoad屬性用來設(shè)置是否自動(dòng)加載MP3文件,默認(rèn)值為true。
lbufferTime屬性用來設(shè)置聲音對(duì)象的緩沖時(shí)間。默認(rèn)值為1000,單位為毫秒。
lisLoading如果已加載MP3,則該屬性為true。
lloops屬性用來設(shè)置循環(huán)次數(shù),默認(rèn)值為0。
lpanEasingFunction屬性用來設(shè)置聲音均衡效果的緩動(dòng)函數(shù)。
lpanFrom屬性和panTo屬性用來設(shè)置聲音對(duì)象的起始和最終平移,取值范圍在-1.0~1.0之間,其中-1.0表示僅使用左聲道,1.0表示僅使用右聲道,而0.0表示在2個(gè)聲道間平均地均衡聲音。
lsound屬性表示已加載MP3文件的聲音對(duì)象。
lsource屬性表示要播放的MP3文件的URL或類。
lstartTime屬性用來設(shè)置開始播放時(shí)間(以毫秒為單位),默認(rèn)值為0。
luseDuration屬性表示是否根據(jù)duration屬性指定的時(shí)間停止播放,如果為false,則會(huì)在MP3完成播放或循環(huán)后停止效果,默認(rèn)值為true。
lvolumeEasingFunction屬性用來設(shè)置音量效果的緩動(dòng)函數(shù)。
lvolumeFrom屬性和volumeTo屬性用來設(shè)置聲音對(duì)象的初始和最終音量,取值范圍在0.0~1.0之間,默認(rèn)值為1。
在下面的代碼所示的例子中,當(dāng)應(yīng)用程序創(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)建及支持的樣式設(shè)置方式
- 學(xué)習(xí)筆記 Flex效果組件用法指南
- 揭開Flex正則表達(dá)式的神秘面紗
- Flex數(shù)據(jù)綁定及其使用頻繁的幾種情況