今天(美國時間12/9/2005)是Studio 8可以下載的大日子,這天也是我由Flash IDE的Compiler(MMC)轉去MTASC的日子。過去忍受夠了MMC那極慢的編譯速度,我是那種喜歡一邊寫每一小步,一邊立即編譯,看看剛寫好的成果是如何的人。MMC這樣編譯速度,嚴重影響我的工作效率,而且它編譯時,系統資源被大量佔去,像「凝固」一樣,非常討厭。
雖然FAME這Open Source Flash開發組合已經推出一段日子,但我自己不喜歡用Eclipse,這臃腫啟動速度又慢的Editor,正如大部分Coder不喜歡IDE Action Panel一樣,我們需要一個功能強大而輕巧,啟動速度快的Editor。我最喜歡用是Scite|Flash,它的啟動速度非常非常快,跟Notepad沒有分別,可惜作者已經停止開發。其次是SEPY,我一直看著和等待著SEPY功能不斷圓善。Open Source Flash開發可行,說穿了唯一功勞只有一個,就是MTASC。所以我一直希望喜歡的Editor可以加入MTASC編譯功能。
SEPY在1.0.6.80起(目前是1.0.7.1)已經加入MTASC編譯功能,非常感動!今天我嘗試將一個工作中專案轉為MTASC編譯,由於這專案一直是在Flash IDE裡開發,沒有什麼針對FAME/MTASC的開發流程,我要看看將Flash IDE/MMC的開發流程轉為前者,究竟要經歷什麼陣痛。過程雖然出現不少問題,但是我只是花了3小時,就完成過渡。(這3小時陣痛,卻免去我以後漫長等待痛苦!)
嚴謹語法
由於MTASC能夠提供非常嚴謹和有用語法檢查,我根據它提示,在所有Classes裡只是改了不多於10個MTASC不支援寫法。
編譯設定
其次,是Package路徑問題,在MTASC編譯時,經常出現找不到Package問題,不過根據MTASC錯誤訊息,加入-pack的參數就解決了。
MTASC不支援語法
最後遇到問題比較棘手,用MTASC編譯後SWF,竟然運作上不是我預期,有些功能無法實現,反覆追蹤程式碼執行和翻看MTASC官方說明,知道了一些寫法MTASC是不支援(編譯時又不會報錯-_-): - no support for initialization of member variables directly inside the class body (unless it's constant or static expression).
我喜歡在Class Static Member中直接做EventDispatcher.initialize(),現在要改為在Constructor裡 - arguments is supported, but not with dynamic access (such as eval("arguments") for example).
像這樣寫法eval("this."+paraObj.parameter)不支援,我改為eval(owner+"."+owner.paraObj.parameter)(先用owner=this;建立了Reference)。 |