輔助功能*
Mike Chambers

Mike Chambers

Macromedia

出版日期:
17 October 2005
用户级别:
全部
產品:
Flash

Flash Professional 與 Flex 2

我們今天發佈了 Macromedia Flex 2 產品系列與技術的 public alpha 版。本文將探討我們所發佈的產品、Flex 2 與 Flash 製作的關係, 以及設計人員與開發人員如何結合這兩者, 以新一代 Macromedia Flash Player 為目標, 來創造豐富、表達能力強大的內容。

身為開發人員, Flash 始終伴我一路走來。從 Flash 3 開始 (這時還不是真正編寫指令碼), 到 Flash 4 的斜線語法 (嘆聲氣!) 、Flash 5 的智慧型影片片段 (Smart Clip), 最後再一直到 Flash 6 和 7 提供可重複使用的元件和更強大的指令碼語言。但是, Flash 製作工具基本上就是創意工具, 所以開發環境老是讓開發人員嫌太簡單 (而設計人員又嫌太複雜)。不過, Flash 有著強大的表達能力, 又能輕鬆將應用程式部署到任何地方, 因此, 雖然得在從創意起家的工具中開發應用程式, 但也還算過得去。

這正是我對 Flex 2 如此興奮的原因。因為接下來如果要開發 Flash Platform 的程式, 既能有針對 Flash Platform 開發人員所設計的環境和架構, 同時又能運用 Flash 製作的強大創意和表達能力, 實為完美之至。

什麼是 Flex 2?

首先, 來談談我們發佈的產品。什麼是 Flex 2 產品系列?

  • Flash Player 8.5: 新一代的 Flash Player, 新增了以效能為考量的虛擬機器 (VM)。
  • ActionScript 3.0: 能與 ECMA 100% 相容, 以效能與開發生產力為最高設計宗旨。
  • Flex Framework 2: 新一代的 Flex Framework, 是以 XML (MXML) 和 ActionScript 為基礎的應用程式開發架構。
  • Flex Builder 2: 以開放原始碼的 Eclipse 平台為基礎, 全新撰寫而成的產品。這套產品可讓開發人員運用 Flex Framework 和 ActionScript 3.0 來建立、編譯和部署應用程式 (而不一定需要 Flex 伺服器)。
  • Flex Enterprise Services: 新一代的 Flex 伺服器, 可提供企業級資料服務以及其他執行時期服務。
  • Flex Charting Components 2: 以 Flex Framework 為基礎所建立的強大圖表元件集。

看到現在, 讀者可能已經發現, "Flex" 跟以往有所不同, 現在有了更廣泛的意義。Flex 在過去指的是企業級伺服器, 可讓開發人員建立內容豐富、表達能力強大的應用程式 (Flex Server 1.5), 但現在則是指一組產品和技術 (Flex Builder、Flex Framework、Flex Enterprise Services、ActionScript 3.0), 除了能讓開發人員建立內容豐富、表達能力強大的應用程式, 這些應用程式更能藉由 Flash Player 的普及性, 幾乎在任何地方執行。

再說明白些, 也就是:

不再需要 FLEX SERVER, 就可以直接使用 FLEX FRAMEWORK 建立應用程式了。

當然, 您還是可以使用 Flex Framework 建立應用程式來運用 Flex 伺服器 (現稱為 Flex Enterprise Services) 的許多功能。

因此, 基本上, 您可以使用 Flex Builder 2 來建置使用 ActionScript 3.0 和 Flex Framework 建立的應用程式。Flex Builder 可編譯這些應用程式 (成為 SWF 檔), 您接著就可以將這些 SWF 檔如同其他 SWF 一般部署 (即上傳到伺服器)。

剛剛提到了 ActionScript 3.0 嗎?

大多數的 Flash 開發人員第一個注意到的可能就是 ActionScript 3.0 (這正是我第一個注意到的)。這是 Flash Player 8.5 內建的新版 ActionScript, 運用了 Player 中的新虛擬機器 (VM)。

Flash 原本是動畫工具和外掛程式, 但經過多年的發展, 也提供愈來愈多的程式設計和開發功能 (包括新增指令碼編寫支援、以開發人員為主的 API , 以及更為結構化的指令碼編寫語法)。但是, 這套播放程式基本上就是用來製作動畫和其他表達性內容, 而不是當做開發執行時期使用。

多年來, 我們不斷最佳化這套播放程式的效能, 結果發現, 要進一步提升播放程式的效能, 就需要全新建構虛擬機器, 讓播放程式除了能播放畫格和轉換向量, 也能有效執行程式碼。以此為構想, 我們便在 Flash Player 8.5 alpha 中建構了新的虛擬機器, 再開發在新 VM 上執行的 ActionScript 3.0。

基本上, ActionScript 3.0 和播放程式的新 VM 可以說是完全重新編寫的。這可讓我們去除很多舊包袱、最佳化效能和記憶體使用方式, 同時建立更強大、生產力更高的語言。不過, 就語法來說, 語言本身的變化並不大。因此, 如果已經熟悉 ActionScript 2, 立即就能瞭解 ActionScript 3.0 程式碼。例如, 下面是一個簡單的類別:

package com.macromedia.foo
{
	import flash.util.trace;
	
	public class MyClass extends MyBaseClass
	{
		public function MyClass() 
		{
			sayHello();
		}
		protected function sayHello() :Void
		{
			trace("Hello!");
		}
	}
}

Flash 開發人員使用 ActionScript 3.0 有什麼好處?好處包括:

  • 編譯時期檢查更嚴格。
  • 執行時期錯誤處理與報告功能更強。
  • 除了效能, 還是效能。全面大幅提高效能 (相對於過去針對個別項目提升效能)。
  • 許多新 API, 包括規則運算式、E4X (ECMA 標準 XML 剖析) 以及真正的二進位通訊端。
  • 大幅改進的除錯環境。

當然, 現在就可以前往 Macromedia Labs* 下載完整的軟體, 然後開始試著操作看看, 在此我就不再多加贅述。

如果還是想使用 Flash 製作呢?

好, 我知道有些人會想:我才買了 Macromedia Flash Professional 8, 用起來也很順手。這套工具很穩定, 我已經知道怎麼用了, 而新功能也很棒。那 Flex Builder 和 Flash 製作可以一起使用嗎?

是的!Flash 製作可以跟 Flex Builder 搭配使用, 現在就可以試試所有新功能。由於 Flex Builder 只支援 ActionScript 專案, 因此可以使用 Flash 製作來建立內容, 再將這些內容放入 Flex Builder 的 ActionScript 專案並編譯應用程式以供 Flash Player 8.5 使用。這跟現在使用 Eclipse、SE|PY 或 PrimalScript 等外部編輯器的開發工作流程類似。

例如, 假設現在要撰寫一套遊戲, 想運用 ActionScript 3.0 和 Flash Player 8.5 來強化效能和生產力。

這時就可以先在 Flash 8 Professional 中建立遊戲的所有項目, 包括圖片、影片、動畫等。接著在 ActionScript 和 Flex Builder 2 中處理程式設計的部分, 等到要編譯時, 再把 Flash 資料放入 SWF (ActionScript 3.0 支援嵌入資料, 可將這些資料與 ActionScript 類別建立關聯)。

最後所產生的 SWF 檔不但包含了遊戲的程式碼和資料, 也能運用 ActionScript 3.0、新的 Player API 以及虛擬機器。

更棒的是, Flex Builder 2 還加入了命令列編譯器 (感謝老天爺!), 可從命令列或其他編輯器來編譯專案。

當然, Flash 製作將加入 ActionScript 3.0 的完整支援, 也正在規劃和開發 Flash 製作的下一個完整版本 (代號為 "Blaze")。由於目前還在早期開發階段, Blaze 的發行日期仍未定 (Flash 製作的開發週期通常需要 18 到 24 個月)。不過, 我們會在 2006 年春季推出 Blaze alpha 版, 屆時即會加入 ActionScript 3.0 支援。這會是發行前的 alpha 版本 (非 Flash 8 的更新), 將提供給已購買 Flash Professional 8 和/或 Macromedia Studio 8 者。

為什麼 Player 跟製作工具不同步?

最後要談的是, 有不少人在即時傳訊上告訴我, 他們擔心新 Player 在春季發行時, Flash 製作工具無法支援 Player 和語言。我必須承認, 在聽到消息時, 也是在第一時間想到這個問題。以往, Flash 製作工具和 Player 都是緊密相連的, 兩者的開發和發行週期都相同。

但是, 那是因為當初 Macromedia 只推出了 Flash Player 和 Flash 製作工具這兩項以 Flash 為基礎的技術。 但是, 現在 Player 已發展成為完整的平台, 有各種不同產品和技術系列都是靠此平台發展出來的 (例如 Breeze、Flex、Flash 製作等)。因此, 不可能將所有技術維持在同步的狀態。因此, Player 在未來多半不會與依賴其發展的其他產品同步。沒錯, Flex 開發人員目前仍無法完整應用 Flash Player 8 的功能, 而且還要等到春季才行 (屆時將發表 Flex 2 技術系列)。

Flash 製作工具也是一樣, 因為 Flash Player 8.5 要等到春季才會發行。Flash 製作要等到下一個完整版發行時, 才會支援 Player 的所有功能 (不過, 如同前面所述, 即將發行的 public alpha 版已有完整支援)。

這都是隨著這套平台不斷發展和成功而來的必然現象。但最後的結果會是, Player 的創新速度大幅加快, 而靠著這套平台發展的產品則可視使用者的需求, 逐步導入功能。

好處之一是, 等到我們推出 Blaze 時, Flash Player 8.5 將早成為歷史。的確, 可以想像的是, 當 Blaze 推出時, 其所配合的 Player 可能已有 50-70% 的採用率 (根據過去 Player 的採用率)。這將為 Flash 打下穩固基礎, 並確保 Blaze 推出時, 新功能已被普遍採用。

什麼時候可以試試看?

既然我們已經談完 Flash 製作與 Flex 2 之間的關係以及兩者如何搭配使用, 現在就可以試著操作看看。請前往 labs.macromedia.com* 下載 Flex Builder 和 Flash Player 8.5。

請注意, 所有軟體都是 alpha 版。這表示軟體可能會有未臻完善之處, 甚至無法使用某些功能。我們從未在這麼早的階段推出軟體, 但我們相信, 如能在早期獲得您的回應意見, 並讓您看到我們的開發成果, 絕對會收到瑕不掩瑜之效。

資源

我們已發佈了許多有關 Flex 2 的資訊。您可以從下列連結入門:

關於作者

Mike Chambers 多年來已設計許多整合 Macromedia Flash 與伺服器端技術 (ColdFusion、Java、ASP 和 PHP) 的應用程式。開發人員關係產品經理-我們新增了 Flash 平台開發人員關係部門的產品經理一職。他曾針對 Macromedia Flash 和 Rich Internet Applications 廣泛發表過許多文章也做過多場相關演講, 同時也是 《Flash Enabled: Flash Design and Development for Devices》 和 《Generator and Flash Demystified》 二書的共同作者。

Mike 在 1998 年於 John Hopkins School of Advanced International Studies (SAIS) 取得 International Economics and European Studies(國際經濟與歐洲經濟研究)碩士學位。