[翻譯]必殺!Flex元件開發密技
本文來自Doug McCune 部落格,他是頂尖的Flex/Actionscript 程式設計師,發表過很多令人驚艷的元件(或稱組件)。本文翻譯是:他在這次Adobe 360|Flex研討會中的演講內容。
原文: Doug McCune: My 360Flex slides and code
(本文翻譯已經過原作者同意)
部落格原文:
這個投影片和我現場演說得幾乎一樣,除了刪減掉一些不必要的細節。演說麻煩的地方就是:必須在投影片和Eclipse之間切換還得寫程式碼。
以下是我提到的例子。
Resizable Wrapper component
(譯註: 可縮放的容器元件)
Demo | 原始碼
這是一個容器(container)元件,它具備了縮放與拖拉功能,使包裹物件即時縮放。很直觀;沒有絢麗的魔術程式碼,把它當作一般容器元件來使用,就像這樣:
<mx:Image source="image.jpg" maintainAspectRatio="false" />
</ResizableWrapper>
Adding resize handles to every UIComponent
(譯註:使所有 UIComponent 都可以縮放)
Demo | 原始碼
開始精彩了唷,在我的投影片裡,”Underriding”(譯註:指”monkey patching”意味,可以不更改核心程式碼就讓程式運作更好,筆者翻作:強制進化)核心的framework類別,我從Michael Labriola的部落格學到這個技巧,在我的可縮放元件例子即是運用此技巧。換句話說,之後所有繼承UIComponent類別的子類別,都具備自我縮放的能力了! 不用再套上縮放容器,它們自己就做得到了,很棒吧!
Templating example
Demo | 原始碼
因為用光了時間,在演講的時候,我跳過了這個部分,我或許在幾天後會寫完整的文章來說明,先貼上例子。基本概念是:創造一個基底的多媒體播放器類別;包含了progress bar :用來標示播放磁頭位置,還有 播放/停止 按鈕。然後把基底類別當作樣板,並且繼承它,讓新的類別可以播放wav檔,必並且顯示檔案名稱,之後,再繼承該子類別,讓它不但可以放mp3檔,又可以顯示id3的內容。
最後,這個樣板播放器不但可以放影片,還可以放音樂。
特別感謝
非常感謝那些參加我的演說的人們,特別要謝謝的是Deepa Subramanian(幫我回答了一堆問題), Andy McIntosh(激發了關於 commitProperties的討論),Tony Hillerson(這場演說的”monkey patching”), Adam Flater(教我[ Mixin ]的用法), 還有 David Coletta(分享元件開發的經驗), 這些朋友教導所有人怎麼開發自己的元件。
Doug還有一篇文章闡述自己學到的東西:
What I have learned from my 360Flex session
筆者後記:
Doug Schmidt 說 Doug McCune 聲音聽起來像湯姆漢克斯(Tom Hanks),聽他的演講,好像聽到玩具總動員裡的伍迪(Woody in Toy Story)。於是 Doug McCune就回應,”那我下次穿牛仔裝來present好了!” , Doug Schmidt道:「這樣你可以大聲的說:『生活,活像自訂元件吶! 』」,呵呵。

September 22nd, 2007 at 3:19 pm
[...] been translated into Chinese by Robert Shuie. Thanks Robert! He translated my slides, as well as my blog post about the samples I presented. This is a bit of old news, since this happened about a month ago, but I’m trying [...]
September 22nd, 2007 at 9:49 pm
恭喜,上了 Doug 的blog, 我坐在馬賽的旅館裏上網看 rss 讀到這段還是一直忍不住想笑啊
December 25th, 2007 at 6:17 am
thanks from Germany, to the interesting article