原來Thinking in Java的作者Bruce Eckel大師有出Flex的書:First Steps in Flex (不叫Think in Flex喔~),這不是一本大部頭書,全書只有140頁,與Adobe evangelist for Flex : James Ward 一起合著的。兩位作者希望以最簡潔的方式向初學者介紹Flex,從網頁資料裡面看起來,我覺得這本書更像是為了他們辦的活動所寫的講義。書本的網站上可以取得第一、二章試閱 PDF。
這對大多數Flasher / Flexer而言這應該不是什麼"新"聞了,但小弟我最近才發現這件事覺得很驚喜,所以就來湊個熱鬧。
而且我覺得這本書來的真是好,講再多Flex多強多標準,也比不上跟別人說"Java大師Bruce Eckel大師也有出Flex書"來得有用。

記得是在三月初的時候,本來只是要找之前在Flex.org看到的海報pdf檔,但pdf的連結不見了,取而代之的是官方的網站 ActionScript 3 and Flex API posters ,上面說用正版Flex Builder序號就可以免費取得海報,雖然我的序號是當初用"教育界免費申請 "的方案取得的,但還是厚著臉皮試試看,沒想到這樣竟然也行!

玩了一陣子從Ping.fm發文到Blogger的功能以後,發現Ping.fm支援Blogger的問題還真不少,有一大Bug + 4大缺點,使得Ping.fm支援Blogger的這個美意變得有一些雞肋。來紀錄一下然後丟給官方看看會不會有什麼反應。
1 Bug ( stops you from posting msgs to Blogger )
Situation: 如果Blogger的"設定(settings)" --> "意見(comments)" --> "上一頁連結(back links)" --> 為"顯示(show)",則Ping.fm輸出到Blogger的訊息就不會出現。隨便搜尋一下發現很少有人反應這個Bug,以為是中文版才有的問題,可是把Blogger版本改成英文版以後,測試結果也是一樣。( It stops you from posting msgs to Blogger if you follow this setting : settings --> comments --> back links --> show )
Solution: 將"上一頁連結(back links)" --> 設定為剩下的另一個選項 "隱藏"。(Switch "back links" from "show" to "hide" can do the trick.)
4 Drawbacks
(1) Blogger標題不能輸入中文
在Ping.fm用blog選項輸出訊息的話,填寫處會跑出一個標題欄位,但在這個欄位輸入的中文標題都會變成亂碼。
(2) "設定標題"功能沒作用
撰寫Ping.fm訊息時可以用一個「^」符號區別Blogger文章的標題和內文,ex:「我是標題^而我是內文」,為方便說明,暫稱這個功能為"設定標題"。
缺點發生於想要一次對所有service發文時,發給blogger的"設定標題"功能會失效,而且發給其他不需要標題的service(ex:Twitter、Plurk、FaceBook)時反而保留了那個"設定標題"。也就是說,想要的效果出不來,但不想要的效果卻出現了。這樣子的話,就要選擇發出沒有標題的Blogger文章或者一次發文給全部service。
(3) 不能區別Blogger子站
Ping.fm開啟發文給Blogger功能的時候,會讓使用者選擇要對Blogger帳號底下的哪些blogspot(子站)發文,可是發文的時候沒有功能區別要發文給哪個blogspot,就變成所有blogspot都要post一樣的東西。
(4) 不支援輸入文章tag
發出的Blogger文章不支援輸入tag。
PureMVC是一套免費且open source的framework,架構於MVC設計模式之上,PureMVC最主要的目標是幫助開發人員在開發應用程式時(尤其具有User Interface的程式),將程式的Model(資料), View(介面) , Controller(控制)三端耦合度降低,耦合度降低以後的好處有:使reuse可能性提高、易於維護、易於協同合作等。PureMVC 一開始以AS3語言實作,後來官方將這個framework陸續移植到多種語言平台上,如:Java, C#, JavaScript, PHP...甚至還有最近很熱門的Objective C和Ruby。PureMVC裡面引入了很多經典、標準的設計模式(Design Pattern),從文件的隻字片語裡看到有被採用的pattern包括:Observer, Facade, Command, Proxy, Factory, Adaptor , Singleton, Mediator, Strategy,這些pattern在四人幫(GoF)知名的設計模式書:Design Patterns: Elementsof Reusable Object-Oriented Software 裡都可以被找到,這應該是它的賣點之一吧。目前整套framework是由作者Cliff Hall先生和他的公司Futurescale在維護。
學習PureMVC必看官方的說明文件和範例,寫得非常完整。不過我覺得官方的文件對於MVC這個模式沒有特別說明是比較有陷阱的地方,如果能夠事先對單純的MVC有一個初步的概念,學習起來應該會更容易進入狀況。
記得還沒開始學習PureMVC之前,我想了解PureMVC能不能夠被移植到C++的GUI platform上(ex:Qt),現在我知道PureMVC的核心概念是一套與平台無關的MVC分離和溝通機制,這些機制可以用任何一種OO語言本身去實作,且不需要語言以外的API,再加上PureMVC的概念上,已經將與GUI平台有關的實作方法(例如: AS3的Event, Qt的Slot&Signal)獨立到View端,因此理論上任何採用OO語言的GUI平台都可以實作和採用。
除了官方的範例,網路上也可以找到比較簡短的教學、範例以及前輩的分享,包括:
- Building a Flash site using PureMVC via hubflanger.com
- Minimalist MVC example using the PureMVC Framework via ActionScript 3 Design Patterns
- Renju, The Game via ActionScript Notes
- [Flex] pureMVC Standard 練習筆記 via Erin's Blog
- PureMVC 筆記 via Ticore's Blog
- [原创翻译]PureMVC的十个小提示
- Head First Design Pattern裡有張MVC圖表解說得還蠻不錯的,在Google圖書裡可以看到
- 對於樣式的“十大誤解” 也是好文
推 7Yue 大的文章-- Flex代码格式化插件 裡介紹的屌貨:Flex Formatter ,這是可以在Flex Builder或Eclipse裡面自動排列(格式化)程式碼的外掛。
安裝方式
(1) 下載.jar 檔
(2) 丟到Flex Builder 的plugin資料夾 (or "dropins" dir if you are using Eclipse 3.4 or greater)
(3) 重新啟動Flex Builder (如果沒有出現,就在開啟捷徑的"目標"最後面加上-clean)
(4) 安裝完畢,工具列上就會出現兩個新的formatter按鈕了
「Format Flex Code」可依全部格式(ex: 字的間隔、if格式等等)重新format,「Indent Flex Code」只改變行的位置,而不更動其他的格式。

Here is the blog of Mediakid (alias). You will find a mix of code, Flash Platform, Qt and other daily random thoughs I may have.



