Flex特效使用大全之觸發器

本文和大家重點討論一下Flex特效,Flex的行爲機制使得開發者可以很方便地爲應用程序添加動畫效果,從而使用戶界面更加豐富多彩。本文將介紹如何在Flex應用程序中創建行爲及動畫效果。

Flex特效講解

Flex的行爲機制使得開發者可以很方便地爲應用程序添加動畫效果,從而使用戶界面更加豐富多彩。本章將介紹如何在Flex應用程序中創建行爲及動畫效果。

1.什麼是Flex行爲

Flex中的行爲(Behavior)是由觸發器(Trigger)和效果(Effect)組合而成。當用戶在界面中進行某項操作時,如單擊某個按鈕,觸發器會被激活,從而使目標組件發生某些視覺或聽覺上的變化,例如播放一段逐漸顯示的動畫或發出聲響等。觸發器可以由用戶操作觸發,也可以由程序觸發,一個觸發器可以對應多個效果。

1.1觸發器與效果

觸發器的使用非常簡單,可以作爲MXML標記中的一個屬性,也可以在<mx:Style>標記中調用,或者在ActionScript中用setStyle()和getStyle()方法調用。觸發器的名稱爲triggerEvent名稱+“Effect”後綴。按照這種名稱約定,mouseDown事件的觸發器名稱爲mouseDownEffect。Flex中提供的觸發器名稱包括以下幾種。

laddedEffect:當組件添加到容器中時觸發。

lcreationCompleteEffect:組件創建完畢時觸發。

lfocusInEffect:組件獲得焦點時觸發。

lfocusOutEffect:組件失去焦點時觸發。

lhideEffect:當組件的visible屬性更改爲false時觸發。

lmouseDownEffect:按下鼠標時觸發。

lmouseUpEffect:釋放鼠標時觸發。

lmoveEffect:組件移動時觸發。

lremovedEffect:組件被移除時觸發。

lresizeEffect:組件改變大小時觸發。

lrollOutEffect:鼠標從組件上移開時觸發。

lrollOverEffect:鼠標移動到組件上時觸發。

lshowEffect:組件的visible屬性更改爲true時觸發。

Flex的動畫效果由一個工廠類(Factory)和一個實例類(Instance)構成。工廠類用來處理事件、控制動畫,它的名稱就是效果的名稱,如Zoom。通常我們在應用程序中創建一個工廠類的實例,設置必要的參數,然後將該實例與觸發器關聯。實例類則用來實現動畫效果,當觸發器被觸發或調用play()方法時,工廠類創建一個實例類的實例來播放所需效果,執行結束後,該實例會被銷燬,如果一個效果對應多個目標對象,每一個目標對象都會有一個自己的實例。實例類的命名規則爲效果名+Instance。如之前定義的工廠類名爲Zoom,那麼實例類名就是ZoomInstance。Effect的這種機制,是設計模式中工廠模式的一種應用,效果執行的時候,運行的不是Zoom,而是ZoomInstance。

下面的圖9-1分別表現了工廠類和實例類的層級關係。Effect類是一個抽象基類,是定義所有效果的基本工廠類。EffectInstance類是定義所有效果實例子類的基類。在應用程序中不會創建Effect類本身的實例,而是創建一個子類的實例,如Mask或Tween。

圖9-1工廠類與實例類

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章