Flex裏的特效

 

Flex中提供了豐富的效果組件。由於效果是一種依據時間漸變的過程,所以所有效果都具備duration屬性,用來設置播放時間(以毫秒爲單位)。也可以經過設置repeatCount屬性和repeatDelay屬性,來分別控制效果播放的次數和重複播放效果的時間間隔(以毫秒爲單位)。假設但願在觸發器被觸發後,延遲一段時間調用效果,可以使用startDelay屬性。html

 

1Flex特效之AnimateProperty動畫效果ide

AnimateProperty是用來爲組件的屬性或樣式設置動畫的效果。咱們可以經過其property屬性設定目標對象上需要設置動畫效果的屬性,而後設置fromValue屬性和toValue屬性,爲效果提供屬性的起始值和結束值。好比如下的代碼使用mouseDownEffect觸發器,當單擊圖片時,觸發AnimateProperty效果,在1秒鐘內,Image對象的scaleX屬性由1變爲2,被橫向拉伸。代碼例如如下:函數

1.             <mx:AnimateProperty idmx:AnimatePropertyid="animateProperty"property="scaleX"fromValue="1  oop

2.              佈局

3.             "toValue="2" 字體

4.              動畫

5.             duration="1000"/> spa

6.              xml

7.             <mx:Imageidmx:Imageid="img"source="assets/plane.png"mouseDownEffect="{animateP  htm

8.              

9.             roperty}"/> 

10.           

假設但願經過樣式設置效果,可以將isStyle屬性設置爲ture,而後經過setStyle()方法設置目標對象的樣式,從而達到設置效果的目的。

 

2Flex特效之Blur模糊效果

Blur是一種模糊效果。該效果使用了flash.filters.BlurFilter濾鏡,假設對某個組件應用了Blur效果,就不能再對該組件應用BlurFilter濾鏡,也沒法再次應用Blur效果。如下的代碼經過Image對象的mouseDownEffect觸發器觸發Blur效果,在1秒鐘內,Image對象將逐漸變得模糊。代碼例如如下:

1.             <mx:Bluridmx:Blurid="blurImage"duration="1000"blurXFrom="0.0"blurXTo="10.0"  

2.              

3.             blurYFrom="0.0"blurYTo="10.0"/> 

4.              

5.             <mx:Imageidmx:Imageid="img"source="assets/plane.png"mouseDownEffect="{blurImage}"/> 

3Flex特效之Dissolve溶解效果

Dissolve是一種溶解效果。當效果開始播放時,將建立一個不透明的矩形,這個矩形懸浮在目標組件的上方,它的顏色由Dissolve.color屬性設置,此時透明度爲「1.0-Dissolve.alphaFrom」。隨着效果的播放,該矩形的alpha屬性將從(1.0-alphaFrom)逐漸變爲「1.0–alphaTo」,直到效果播放完畢,矩形被銷燬。

假設目標對象是一個容器,那麼Dissolve效果將應用於容器內部的內容區域。

如下的代碼使用一個CheckBox對象設置Imagevisible屬性,經過hideEffectshowEffect觸發器分別觸發各自的Dissolve效果:

6.             <mx:Dissolveidmx:Dissolveid="dissolveOut"duration="1000"alphaFrom="1.0"alphaTo="0  

7.              

8.             .0"/> 

9.              

10.          <mx:Dissolveidmx:Dissolveid="dissolveIn"duration="1000"alphaFrom="0.0"alphaTo="1.  

11.           

12.          0"/> 

13.           

14.          <mx:CheckBoxidmx:CheckBoxid="cbx"label="visible"selected="true"/> 

15.           

16.          <mx:Imagesourcemx:Imagesource="assets/plane.png"visible="{cbx.selected}"  

17.           

18.          hideEffect="{dissolveOut}"showEffect="{dissolveIn}"/> 

4Flex特效之Fade淡入淡出效果

Fade是一種淡入淡出效果,它經過設置組件的alpha屬性來實現動畫效果。當使用showEffecthideEffect觸發器設置Fade效果時,假設省略了alphaFromalphaTo屬性的值,那麼在showEffect觸發器上目標對象的透明度將從0變化到目標的當前alpha值,而在hideEffect觸發器上則會從當前的alpha值變化到0。假設要對字體使用Fade效果,必須使用嵌入字體。

如下的代碼使用一個CheckBox對象設置Imagevisible屬性,經過hideEffectshowEffect觸發器分別觸發各自的Fade效果:

1.             <mx:Fadeidmx:Fadeid="fadeOut"duration="1000"alphaFrom="1.0"alphaTo="0.0"/> 

2.              

3.             <mx:Fadeidmx:Fadeid="fadeIn"duration="1000"alphaFrom="0.0"alphaTo="1.0"/> 

4.              

5.             <mx:CheckBoxidmx:CheckBoxid="cbx"label="visible"selected="true"/> 

6.              

7.             <mx:Imagesourcemx:Imagesource="assets/plane.png"visible="{cbx.selected}"  

8.              

9.             hideEffect="{fadeOut}"showEffect="{fadeIn}"/> 

5Flex特效之Glow發光效果

Glow是一種發光效果,該效果使用了flash.filters.GlowFilter濾鏡類。假設對某個組件應用了Glow效果,就不能對該組件應用GlowFilter濾鏡,也沒法再次應用Glow效果。如下的代碼經過Image對象的mouseDownEffect觸發器觸發Glow效果:

10.          <mx:Glowidmx:Glowid="glowImage"duration="1000"alphaFrom="1.0"alphaTo="0.3"  

11.           

12.          blurXFrom="0.0"blurXTo="50.0"blurYFrom="0.0"blurYTo="50.0"color="0x  

13.           

14.          00FF00"/> 

15.           

16.          <mx:Imagesourcemx:Imagesource="assets/plane.png"mouseDownEffect="{glowImage}"/> 

6Flex特效之Iris虹效果

Iris效果經過擴展或收縮集中在目標上的矩形遮罩爲效果目標設置動畫。該效果可以從目標的中心放大遮罩來顯示目標,也可以向中心收縮遮罩來隱藏目標。如下的代碼使用一個CheckBox對象設置Imagevisible屬性,經過hideEffectshowEffect觸發器分別觸發各自的Iris效果:

17.          <mx:Irisidmx:Irisid="irisOut"duration="1000"showTarget="true"/> 

18.           

19.          <mx:Irisidmx:Irisid="irisIn"duration="1000"showTarget="false"/> 

20.           

21.          <mx:Imageidmx:Imageid="Flex"source="assets/plane.png"visible="{cbx.selected}" 

22.           

23.          showEffect="{irisIn}"hideEffect="{irisOut}"/> 

24.           

25.          <mx:CheckBoxidmx:CheckBoxid="cbx"label="visible"selected="true"/> 

7Flex特效之Move移動效果

Move效果用來實現移動動畫。在給定時間內,組件的位置會隨時間變化而變化。使用該效果一般需要用到如下幾個屬性。

lxFromyFrom屬性用來指定初始位置。

lxToyTo屬性用來指定目標位置。

lxByyBy用來指定移動量,即組件在x軸向和y軸向上的移動速度。

一般僅僅需要指定初始位置、目標位置或移動量這些值中的隨意2個,Flex就會計算第3個值。假設指定所有這3個值,Flex就會忽略xByyBy值。假設僅指定xToyTo值或xByyBy值,那麼Flex會將xFromyFrom設置爲對象的當前位置。

如下的程序演示了怎樣使用Move效果。

代碼清單MoveSample.mxml

26.          <?xmlversionxmlversion="1.0"?> 

27.           

28.          <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"paddingLeft=  

29.           

30.          "0"  

31.           

32.          layout="absolute"mouseDown="moveImage();"> 

33.           

34.          <mx:Script> 

35.           

36.          <![CDATA[  

37.           

38.          //當按下鼠標時調用該事件  

39.           

40.          privatefunctionmoveImage():void{  

41.           

42.          //中止播放Move效果  

43.           

44.          moveEffect.end();  

45.           

46.          //設置目標位置  

47.           

48.          moveEffect.xTo=mouseX;  

49.           

50.          moveEffect.yTo=mouseY;  

51.           

52.          //播放Move效果  

53.           

54.          moveEffect.play();  

55.           

56.          }  

57.           

58.          ]]> 

59.           

60.          </mx:Script> 

61.           

62.          <mx:Moveidmx:Moveid="moveEffect"target="{img}"/> 

63.           

64.          <mx:Imageidmx:Imageid="img"source="assets/plane.png"/> 

65.           

66.          </mx:Application> 

67.           

代碼中將Applicationlayout屬性設置爲absolute,當用戶在應用程序中不論什麼位置上單擊鼠標時,調用moveImage方法,該方法中首先中止Move效果,而後依據鼠標單擊的位置設置目標位置,最後播放效果。

一般Move效果應用於使用絕對定位的容器(如Canvas)或使用「layout=absolute」的容器(如ApplicationPanel)中。假設需要將其應用到本身主動佈局的容器(如VBoxGrid容器)中,儘管會移動目標對象,但下次容器更新其佈局時,會將目標對象移回其原始位置。在這樣的狀況下,可以將容器的autoLayout屬性設置爲false來禁止往回移動,但這會禁用容器中所有控件的佈局。

8Flex特效之Pause暫停效果

Pause效果可以實現在指定時間段內不執行不論什麼操做的功能。假設將Pause效果加入爲Sequence效果的子項,可以建立2個其它效果之間的暫停。

9Flex特效之Resize大小調整效果

Resize效果用來改變組件的大小。與Move效果相似,Resize效果可以指定初始大小(widthFromheightFrom)、目標大小(widthToheightTo)和變化量(widthByheightBy),其使用規則也與Move效果的初始位置、目標位置和移動量的使用規則相似。如下的代碼演示了Resize效果的用法:

1.             <mx:Resizeidmx:Resizeid="expand"target="{img}"widthTo="100"heightTo="160"/> 
2.              
3.             <mx:Resizeidmx:Resizeid="contract"target="{img}"widthTo="25"heightTo="40"/> 
4.              
5.             <mx:ControlBar> 
6.              
7.             <mx:Buttonlabelmx:Buttonlabel="Expand"click="expand.end();expand.play();"/> 
8.              
9.             <mx:Buttonlabelmx:Buttonlabel="Contract"click="contract.end();contract.play();"/> 
10.           
11.          </mx:ControlBar> 
12.           
13.          <mx:Imageidmx:Imageid="img"width="25"height="40"source="assets/icon01.png"/> 
14.           

另外hideChildrenTargets屬性用來隱藏Panel容器的其它子項,當咱們對Panel容器中的子項應用Resize效果時,默認狀況下Panel會重複計算子項的大小和位置以調整佈局,假設將這個屬性設爲true,可以讓Panel容器在播放動畫時不作這樣的計算,直到播放完畢,這樣可以節約系統資源。

10Flex特效之Rotate旋轉效果

Rotate是一種旋轉效果,使組件環繞指定的點旋轉。Rotate可以指定旋轉中心的座標(originXoriginY屬性)及旋轉的起始角度(angleFrom屬性)和終於角度(angleTo屬性)。起始旋轉角度的有效值範圍是0360,而終於角度則可以是正值也可以是負值,默認值爲360。假設angleTo的值比angleFrom的值小,則目標沿逆時針方向旋轉,不然以順時針方向旋轉。代碼例如如下:

15.          <mx:Rotateidmx:Rotateid="rotate"angleFrom="-45"angleTo="0"target="{img}"  
16.           
17.          duration="2000"/> 
18.           
19.          <mx:Imageidmx:Imageid="img"source="assets/plane.png"addedEffect="rotate"/> 
20.           

另外有時需要設置hideFocusRing屬性,以肯定在開始播放效果時,效果是否應隱藏對焦環。該屬性默認值爲true。對於組件而言,對焦環已經被本身主動隱藏。假設Rotate效果應用於那些不是以UIComponent爲基類目標對象,就必須隱藏對焦環。

需要注意的是,hideFocusRing屬性在以Effect爲基類的效果類中,默認值爲false,而在以MaskEffect爲基類效果類中,默認值爲true

11Flex特效之SoundEffect聲音效果

SoundEffect效果用來播放MP3音頻文件。咱們可以經過source屬性指定要播放的MP3文件,可以直接設置該文件的URL,或是由Embedkeyword嵌入MP3文件的Class對象。

SoundEffect效果的屬性包含如下幾個。

lautoLoad屬性用來設置是否本身主動載入MP3文件,默認值爲true

lbufferTime屬性用來設置聲音對象的緩衝時間。默認值爲1000,單位爲毫秒。

lisLoading假設已載入MP3,則該屬性爲true

lloops屬性用來設置循環次數,默認值爲0

lpanEasingFunction屬性用來設置聲音均衡效果的緩動函數。

lpanFrom屬性和panTo屬性用來設置聲音對象的起始和終於平移,取值範圍在-1.01.0之間,當中-1.0表示僅使用左聲道,1.0表示僅使用右聲道,而0.0表示在2個聲道間平均地均衡聲音。

lsound屬性表示已載入MP3文件的聲音對象。

lsource屬性表示要播放的MP3文件的URL或類。

lstartTime屬性用來設置開始播放時間(以毫秒爲單位),默認值爲0

luseDuration屬性表示是否依據duration屬性指定的時間中止播放,假設爲false,則會在MP3完畢播放或循環後中止效果,默認值爲true

lvolumeEasingFunction屬性用來設置音量效果的緩動函數。

lvolumeFrom屬性和volumeTo屬性用來設置聲音對象的初始和終於音量,取值範圍在0.01.0之間,默認值爲1

在如下的代碼所看到的的樣例中,當應用程序建立完畢後開始播放聲音文件,聲音從左聲道過渡到右聲道。

代碼清單SoundSample.mxml

1.             <?xmlversionxmlversion="1.0"?> 
2.              
3.             <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" 
4.              
5.             creationCompleteEffect="{mySound}"> 
6.              
7.             <mx:SoundEffectidmx:SoundEffectid="mySound" 
8.              
9.             duration="10000" 
10.           
11.          useDuration="false" 
12.           
13.          panFrom="-1"panTo="1"  
14.           
15.          source="@Embed(source='assets/bumperc.mp3')"/> 
16.           
17.          </mx:Application> 

12Flex特效之WipeUpWipeRightWipeDownWipeLeft擦除效果

這些類定義了4個方向的擦除效果,一般與showEffecthideEffect觸發器配合使用,使用起來很簡便,如如下的樣例。

代碼清單WipeSample.mxml

1.              <?xmlversionxmlversion="1.0"?> 

2.              

3.             <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"> 

4.              

5.             <!--定義擦除效果--> 

6.              

7.             <mx:WipeUpidmx:WipeUpid="wipeUpOut"duration="1000"/> 

8.              

9.             <mx:WipeUpidmx:WipeUpid="wipeUpIn"duration="1000"/> 

10.           

11.          <mx:WipeLeftidmx:WipeLeftid="wipeLeftOut"duration="1000"/> 

12.           

13.          <mx:WipeLeftidmx:WipeLeftid="wipeLeftIn"duration="1000"/> 

14.           

15.          <mx:WipeDownidmx:WipeDownid="wipeDownOut"duration="1000"/> 

16.           

17.          <mx:WipeDownidmx:WipeDownid="wipeDownIn"duration="1000"/> 

18.           

19.          <mx:WipeRightidmx:WipeRightid="wipeRightOut"duration="1000"/> 

20.           

21.          <mx:WipeRightidmx:WipeRightid="wipeRightIn"duration="1000"/> 

22.           

23.          <mx:Paneltitlemx:Paneltitle="WipeEffects"> 

24.           

25.          <mx:HBoxwidthmx:HBoxwidth="100%"> 

26.           

27.          <!--向上擦除--> 

28.           

29.          <mx:Imagesourcemx:Imagesource="@Embed(source='assets/icon1.png')"visible="{cbx.se  

30.           

31.          lected}"  

32.           

33.          hideEffect="{wipeUpOut}"showEffect="{wipeUpIn}"/> 

34.           

35.          <!--向左擦除--> 

36.           

37.          <mx:Imagesourcemx:Imagesource="@Embed(source='assets/icon2.png')"visible="{cbx.se  

38.           

39.          lected}"  

40.           

41.          hideEffect="{wipeLeftOut}"showEffect="{wipeLeftIn}"/> 

42.           

43.          <!--向下擦除--> 

44.           

45.          <mx:Imagesourcemx:Imagesource="@Embed(source='assets/icon3.png')"visible="{cbx.se  

46.           

47.          lected}"  

48.           

49.          hideEffect="{wipeDownOut}"showEffect="{wipeDownIn}"/> 

50.           

51.          <!--向右擦除--> 

52.           

53.          <mx:Imagesourcemx:Imagesource="@Embed(source='assets/icon4.png')"visible="{cbx.se  

54.           

55.          lected}"  

56.           

57.          hideEffect="{wipeRightOut}"showEffect="{wipeRightIn}"/> 

58.           

59.          </mx:HBox> 

60.           

61.          <mx:ControlBar> 

62.           

63.          <mx:CheckBoxidmx:CheckBoxid="cbx"label="visible"selected="true"/> 

64.           

65.          </mx:ControlBar> 

66.           

67.          </mx:Panel> 

68.           

69.          </mx:Application> 

70.           

執行該程序,效果如圖9-2所看到的。

9-2擦除效果

13Flex特效之Zoom縮放效果

Zoom效果可以以指定點爲中心按比例縮放對象。與Resize效果不一樣的是,Resize改變目標對象的長寬屬性,而Zoom改變的目標對象的縮放比例。在如下的樣例中,當鼠標移動到圖片上時開始播放Zoom效果,鼠標移出時還原。

代碼清單ZoomSample.mxml 

71.          <?xmlversionxmlversion="1.0"encoding="utf-8"?> 

72.           

73.          <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"> 

74.           

75.          <mx:Script> 

 

轉自:http://www.cnblogs.com/csharponworking/archive/2011/04/07/2008826.html

 

由於代碼的空格和換行都處理掉了,代碼還被隱藏了不少,湊合看吧。。

清楚的去原文地址看吧
相關文章
相關標籤/搜索