Luar's Flash Playground:為Flash MX 2004帶路
為Flash MX 2004帶路 (26-08-2003)

8月25日,Macromedia終於宣佈了Studio MX 2004全線新產品,閃客們最關心的除了Flash功能上的加強外,就是ActionScript編程上改變,究竟又要學習那些新東西?

普通版的價值
老實說,如果你是Designer,我早說過,別浪費金錢昇級了,Flash MX 2004普通版,根本沒有吸引力,現在只不過是變相加價,將Flash吸引的新功能全放到專業版上。普通版較實際的是Commands和Behaviors。

Commands
Commands可以將第三方插件直接整合到Flash中,第三方插件就算不整合到Flash中,以前獨立執行第三方插件,需要Export SWF,再由Flash Import入來,現在於可以直接反映到Timeline中,一些著名第三方插件,如製作字體效果和立體圖像的軟體,都會有整合到Flash中的新版本推出(現在是Beta測試中)。普通版內置Commands暫時有Timeline Effects,有用過Photoshop的人都知道Layer Style是什麼,Timeline Effects就是類似那東西,為圖像變Blur、Drop Shadow、Expand、Explode。另外有一些獨立開發人員可以開發Commands給Flash,我覺得等於Plugin for Flash,做一些類似KPT Vector Effects的效果。

Behaviors
Behaviors先出現在Director 6,到Dreamweaver時被發揚光大,就是一些寫好ActionScript程序給不懂編程Designer用,我經常覺得Designer工作不包括編程,有這些Behaviors又如何?另外,加入了History Panel,方便大家工作時Undo,History Panel用一種叫JavaScript Flash (JSFL)編寫,簡單講一句,你就可以紀錄了工作步驟,下次再用,等於Office Macro,說穿了,就是Photoshop的Actions。

專業版的改變
專業版最重要改變,我認為有5個:一、Data Binding,與服務器、Web Services數據交換更緊密整合;二、組件編程新架構;三、ActionScript 2.0;四、Form Based應用程序開發;五、協同工作源碼管理

Data Binding
基本上Flash連接服務器已經很方便,專業版有DataGrid組件,也有類似FireFly組件,在IDE環境直接連接Remote Services等,不知道之前買了Flash Remoting、DRK 2(為了DataGrid組件)、DCK(為了FireFly組件)的人有什麼感覺……

組件編程新架構
組件編程新架構叫Macromedia Component Architecture,用ActionScript 2.0編寫,目的是可以製作出統一外觀(Appearance)和回響/反應(Behaviors)組件。

利用Classes去定義組件的Style和Skin的基礎,即是你可以控制組件外觀。

組件另外提供了Broadcaster/Listener Event Model,就是我喜歡的Callback功能,例如完成一件事,發生一件事會自動/主動通知你。

其他組件新加功能還有深度(Depth)和焦點(Focus)管理,輔助功能(Accessibility)的配合。

Macromedia內置組件(包括不少DRK4-5組件,以前付錢買的人又要.:~>_<~:.)是編譯成*.swc文件,不可以像以前直接修改組件代碼。

題外話,以前Macromedia內置組件都是灰色的,新的組件是白色,設計類似Aqua或WinXP,有一個主題名稱(Theme)叫Halo。

ActionScript 2.0
如果說ActionScript 1.0是JavaScript,那2.0就是Java,嚴謹Data Type,完全Class Based,非常類似Java!閃客不禁擔心自己不懂Java,是否很難學習?我要強調一點,ActionScript 2.0出現,並不表示舊的ActionScript 1.0被淘汰,因為ActionScript 2.0只是給開發人員一個更嚴謹的編程語言,方便開發,方便編譯時Debug等。用ActionScript 2.0寫的Flash,可以給Flash Player 6支持,因為1.0和2.0都是編譯為同一類Byte-code。2.0除了編程語法、概念分別外,它必須寫在*.as外部文件中,只被專業版支持。我想傳統程序員都會喜歡用ActionScript 2.0。

Form Based
又是從傳統應用程序開發搬到Flash功能,以往用Timeline定義程序不同狀態的時代已經過去,現在是一張張的Form,另一個傳統程序員會喜歡功能。以往做應用程序開發時,千方百計要避免使用者按背後窗口,菜單、選單等,因而影響目前窗口或對話盒,現在都不怕了,可以通過Form去管理和控制。

協同工作源碼管理
多人共同開發Flash應用時必須要源碼管理,先為Flash應用建立一個Flash Project(*.flp),所有文件都要Check-in Check-out,避免兩人同時修改同一個文件,源碼管理功能可以和M$ SourceSafe結合,我以前就是用M$ SourceSafe,一直想不到現在Flash都可以用它。

Flash MX 2004缺點
我不喜歡將Help整合到Flash中,雖然Help是HTML,但目錄是XML,需要在Flash中才可以使用,太多面板,畫面已經不夠用,Help啟動又慢。以前可以簡單地打開Browser,查看Help,現在不可以了 :(

Flash MX 2004啟動時間太長,通常要等1-2分鐘才開啟,可能是背後的激活在作怪,可惡!

本文章由發表。
意見
"; print "沒有意見。
 "; } ?>
  • 我想問一下, AS不是基于prototype的語言麼? 這是我在OOPwithAS中看到的. 怎麼到2.0就變成了基于class的呢? 到底class-based比prototype-based好在什麼地方呢?

    jerrowolf於26-08-2003發表

  • 我比較關心ActionScript 2.0, 究竟它是衍生自ECMAScript Version 4還是Java呢?從Macromedia看到的一幅圖片, 就很像ECMAScript, 但不能確定, 而且ActionScript 1.0本來衍生自ECMAScript Version 3, 應不會見異思遷轉投往Java吧, 想問個明白.:)

    由Jiu於26-08-2003發表

  • ECMAScript Version 4

    luar於26-08-2003發表

  • 為了支持Flash Player 6,AS2.0的Class最後都是編譯為Prototype。

    luar於27-08-2003發表

  • 不支持Xpath schamer ,有些遺憾

    由digitalboy於28-08-2003發表

  • 請問什麼是"FireFly"組件

    由Jack Hsieh於28-08-2003發表

  • FireFly是一個方便開發者製作Flash與數據庫交換數據的組件,不過現在已經內置到MX 2004 Pro中, 正式壽終正寢。

    luar於28-08-2003發表

  • 該不會連Flash Remoting MX都被納入到Flash MX Professional 2004了吧!
    如果是...那可真慘...因為我才剛研究出一點點的心得而已...

    由Jack Hsieh於31-08-2003發表

  • 基于Prototype的語言是純粹的OOP,不過編程習慣會不好一些。因為原本可以寫繼承的flash開發者,都去改Prototype了,呵呵。

    7yue於01-09-2003發表

  • Flash MX 2004啟動時間太長,通常要等1-2分鐘才開啟?比開機還慢!!

    由123於08-09-2003發表

同組文章