DoubleClickDispatcher – 替組件加入double click事件

Flash組件一直缺少偵測double click事件的功能,所以我很快地寫了這個DoubleClickDispatcher,主要比較跟Mouse click有關的事件,例如:click, change兩者之間時間差距來決定是否有double click。(支援Button, List, DataGrid等組件)

[範例][下載DoubleClickDispatcher.as]

為組件加入double click事件的功能:

DoubleClickDispatcher.addObject(組件名稱, “事件”);

例如:

DoubleClickDispatcher.addObject(btn, “click”);
DoubleClickDispatcher.addObject(list, “change”);

這樣組件便多了一個發出double click事件的功能,接收方法跟其他組件事件相同:

listener = new Object();
listener.doubleClick = function(evt) {
    trace “Doubleclick: “+evt.target;
};
btn.addEventListener(“doubleClick“, listener);
list.addEventListener(“doubleClick“, listener);

移除接收double click事件:

組件名稱.removeEventListener(“doubleClick”, 物件);

移除發出double click事件的功能:

DoubleClickDispatcher.removeObject(組件名稱, “事件”);

例如:

btn.removeEventListener(“doubleClick”, listener);
DoubleClickDispatcher.removeObject(btn, “click”);

3D旋轉組件

根據3D旋轉Menu改成的組件版。

只要準備一個Movie Clip,裡面每一格Frame代表一個圖像,所有圖像最好水平垂直置中;設定Linkage名稱,然後將組件拖到Stage,輸入Linkage名稱,也可以設定旋轉圓圈大小和速度,組件會根據Frame數目,產生相應的旋轉物。

如果要改成菜單,只要Frame放Button便可以。假設組件Instance Name是:rotatemenu,放在_root,那麼每個旋轉物路徑(假設有5個旋轉物)就是:_root.rotatemenu.btnmc0至_root.rotatemenu.btnmc4,如果要在Button引用_root的Variable,相對路徑就是:

on (release) {
    trace(_parent._parent.varInRoot);
}

本組件適用於Flash MX和Flash MX 2004,Flash 6/7,ActionScript1/2。

[示範][下載]

2005-1-22補充
配合自己需要,我把深度變化註譯了,形成水平視點的旋轉,如果有需要深度變化,只要將組件裡Layer function中的有註譯的三行Code解除就可以。

伸縮Menu中文版

《AS2與RIA》書5.3.4.3的範例(第5-246頁),如果嵌入中文字體,請先建立一個Dynamic TextField,才可以指定中文字,至於Library中的字體,就要刪去。[下載範例]

擴展Accordion組件:置中、滾動條

這是我第2本書其中一個範例,將功能簡陋的Accordion組件加入內容Movie Clip置中、設置內容Movie Clip與邊框距離,自動出現滾動條的功能。第2本書包含很多使用組件的知識,包括我的獨家技巧,好像這個,就算是國外英文書都是找不到的。

[下載]

FlashCom Bandwidth Meter

FlashCom提供的Communication App Inspector功能太簡單,對監察每個Instance佔去多少Bandwidth非常不便,所以我特別寫了這個Bandwidth Meter,主要方便自己平日工作的。現在是Beta測試版,遲些我會將它Package成Extension,方便安裝到Flash IDE中。

這個小工具是以Flash MX 2004,使用Component v2和ActionScript 2.0,基於MVC設計模式寫成。

順帶一提,我第2本書,就是關於在Flash MX 2004中,如何使用Component v2和ActionScript 2.0,基於MVC設計模式,閞發應用的書,範例大概就好像以上小工具,對於希望學習RIA開發的讀者,這絕對是尚佳的學習書本啊! ^_^

內部原因,暫不公開 (11-3-2004)。–>

prepareFLA

我的所有FLA都非常有系統,Timeline的Layers都有命名,Library的Symbols都分類放好。每次開始一個新FLA都要做一次,不如寫了一個Command方便自己,自動在Timeline上建立一個script和label的Layers,自動在Library中建立好各種分類的Folder。

[下載]

Publish Template:將Flash影片置中

平日用Flash的Publish產生的HTML,Flash影片是靠左上角,每次我都要改HTML,用一個Table將Flash影片包圍,然後將它置中,這樣無論什麼Resolution下的Browser看出來,Flash影片都是在正中央。為了免除每次Publish都要修改一下,我修改了Publish中Flash Only範本,特別另外做了一個Flash Only (Align Center)版,並製成了Extension,方便安裝。

PublishTemplate_FlashOnlyAlignCenter.gif

[下載](適用於Flash MX和Flash MX 2004)

拖動條Slider

拖動方式控制一個Variable數值,可以以參數傳給自定Function,進行其他程序,例如改變Movie Clip的大小。

這個組件設有Live Preview及Anti-Distortion技巧,使用者可以在Flash創作工具中調節拖動條的長度。

[示範][下載]

計時器

來自《閃客實戰》的範例。它可以進行向前或倒數計時。倒數計時中,當時限一到,它可以Call其他Function。

最適合在遊戲開發時使用。只需要將Component拖到Stage上,設定一些參數便可。它提供大量Method,詳情請參考Action Panel中說明。

[示範][下載]