ellhan大,您這樣回答好像有點文不對題,而且重點沒回答。
簡單回答就像antijava大這樣,或是「ActionScript 3」。
發問者想要知道的只是用什麼語言開發,使用C#能不能做到。
詳細回答的話:
阿是ellahan大,十分抱歉。
講得這麼棒
害我都沒梗了..
阿,仔細看了一下,其實ellanhan大也有提到,只是寫了許多不太相關的東西。而且我說的也不夠切題,還是得跟ellanhan大說聲抱歉。
不切題的地方是:
小妹想了解flex是用什麼語法寫的
所以補充一下:flex其實是用xml(mxml)定義出UI然後加上actionscript來開發,看起來有點像html+javascript,最後可以把xml編譯成swf。他的sdk不要錢,但是缺乏設計工具。編譯器(mxmlc)在windows之外的作業系統其實是執行一個java程式(mxmlc.jar)......SDK的文件跟範例很豐富,不妨下載來玩玩看。
fillano 大大
你是個好心人
對於
第一天註冊
就問「Silverlight與Flex之比較之使用程式語言」這種問題
還自稱「小妹」的人
我實在沒意願多回答些什麼...^_^
Flex 這跟c++ 或 C# 這樣的工具來比較,真的是
小巫見大巫,根本不是同一等級的東西.
補充一下我的意見:這樣使用flex這個名詞會讓討論模糊化。
flex是一種工具跟開發方式,就像flash也是一種工具一樣。ActionScript才是在其中使用的程式語言。
簡單地說,可以把ActionScript跟C#、Java等等相提並論,但是把Flex跟C#、Java相提並論是不太恰當的。
ActionScript是從Javascript分支出來的一個程式語言,他跟Javascript的關係很複雜,而且可能會繼續複雜下去。去看一些ActionScript的文件,可能會看到他是基於ECMA-262 Edition 4,但是這個標準一直沒通過,最近剛成為標準的是ECMA-262 Edition 5,而ActionScript在JavaScript中加入的許多新東西在將來有沒有機會成為標準?恐怕沒人知道。
不過adobe已經把ActionScript的引擎(or VM)捐贈給mozilla基金會(已經是很久以前的事了),有興趣可以上去玩玩:
https://developer.mozilla.org/en/Tamarin
Firefox目前使用的javascript引擎,有部份就是從tamarin發展出來的。(可以自己下載來玩玩,不過他的可執行檔avmshell只能執行編譯過的bytecode...必須用flex sdk的lib目錄裡面的asc.jar把.as檔編譯成.abc檔才能執行)如果有興趣的話,adobe labs裡面有一個計畫叫做Alchemy:http://labs.adobe.com/technologies/alchemy/,他可以把C/C++編譯成.abc檔讓tamarin執行。
之前為了專案做過一些survey跟試作,雖然了解還不夠深入,但是有不少好玩的東西,所以順便提了一下。
To: antijava大
我其實是因為ellahan大的回答而回的啦,醉翁之意不在酒。
Flex 本身就是用c++開發出來的.
嗯嗯,這樣講也有點怪怪的XD,因為不太確定你說的Flex是指什麼...
就我用過的感覺,Flex SDK跟Flex Builder有一大部分是用Java開發的耶...Flash Player跟Flash Player plugin等應該是用C/C++開發的沒錯啦。
Flex是Adobe公司所發展用來開發「RIA(Rich Internet Application)」的工具,「RIA」(詳維基網站或第2期電子報介紹)簡單的說就是在Internet上面執行的高親和性操作介面的應用程式。
應用程式的發展大致可以簡單區分為4個階段:
DOS應用程式:文字操作介面。
Window應用程式:
優點:(a). 圖形化操作介面,使用者容易操作。
(b). 程式容易開發,開發工具有:VB、Delphi、PowerBuilder…。
缺點:(a). 版本控制不易,新版本通常必須更新到使用者的電腦上。
(b). 跨平台困難,同一份程式無法在不同類型的作業系統上面執行。
(c). 一般應用在區域網路上。
Web應用程式:
優點:(a). 版本控制容易,使用者的電腦上只需要安裝瀏覽器。
(b). 應用在Internet上。
缺點:(a). 雖然是圖形操作介面,但是受限於瀏覽器的功能,操作介面的親和性普遍不
高。
(b). 缺乏好用的開發工具。
RIA:結合Window和Web應用程式的優點。
這樣的發展趨勢在類似Flex這樣的開發工具出現之後,應該會變的更快速,可以預見在不久的將來,Internet上的應用程式都會有更好用的操作介面。
基本上Flex提供了滿足這些需求的條件,主要原因是它具備下面這些特性:
豐富的視覺化元件:RIA的特性之一就是操作介面的親和性,這也是Web應用程式最大的問題,這些元件是構成操作介面的基本元素。Flex應用程式和Web應用程式不同的地方是:Web應用程式將原始碼傳送到Client的瀏覽器執行,所以操作介面受限於瀏覽器的功能,Flex應用程式則是將編譯過的程式碼送到Client端的Flash執行,操作介面可以有更大的彈性。
OO的特性:利用物件的封裝和繼承,可以一步一步建構發展系統所需要的元件,便於快速開發穩定的大型系統。
在軟體開發模式中,有一個80/20法則,就是用20%的時間去開發系統80%的程式,再用80%的時間,去完成剩下的20%,這是因為我們很容易找出大多數系統共同的部分,將這些共同部分包裝成元件,並且套用到80%的程式,而不能套用的部分通常是包含特殊的規則或是操作流程,這部分會需要比較多的時間來討論、修改和撰寫。要實現這個80/20法則,依賴的就是這個OO的特性。
除錯和編譯。
跨平台:Flex使用Flash做為Client端的Virtual Machine來跟Flex應用程式溝通,每個平台有自己版本的Flash,藉此達到跨平台的目的。
Flex 跟 C# 不是同一個系統。
但是 SilverLight 可以用 C# 喔,還很強大喔。
看這個範例,在這個網頁就可以寫 APP.
http://www.microsoft.com/silverlight/silverlight/demos/OOB/default.html
Flex的對手是Silverlight
Flex 是以MXML+ActionScript3 組成程式碼
Silvelight,XAML+VB或C# 組成,因為是微軟派,所以可以用.NET語言寫,是很自然的事。
另外,Adobe為使程式開發涵蓋範圍擴大,大幅改進ActionScript3,其物件完整度已不可同日而語。
Flex與Silverlight的意義在更容易的創造出豐富的介面,不論是在Web或Clien AP上
因此各自隸屬不同派別系統(Adobe、Microsoft),Flex如果要與其他語言寫成的程式溝通,Adobe文件提到Web Service及Flash RemoteObject為主,不限定是哪種語言,個人目前都是透過Web Service 或 TCP Socket較多。
至於說哪個強哪個好,聽聽就好,目前各有支持,爭議頗高,尚無定論。
目前一路用下來,感覺最大的差異在於,Adobe知識文件豐富及完整程度,實在不如微軟。中文文件更不用說,如果只靠官方文件或網站,會有點辛苦。
主要就是, 若是要和 [微軟] 產品相結合的話, 在 [ FLEX ] 和 [ Silverlight ] 選擇上又沒有預設立場的話, 就可以直接選擇 [ Silverlight ] 了. (相信這樣的情況, 應該適用很多人了~)
開發Flex是用ActionScript 3 + MXML(XML標籤)
補充:MXML每個標籤背後都是由ActionScript 3的class組成,所以學好Flash/Flex來說,ActionScript 3是一件很重要的事。
另外Flex SDK是OpenSource,也就是SDK不用錢,但Flex Builder開發工具要$$,意味你可以自己改寫SDK,也可以直接用notepad直接開發Flash/Flex程式,再直接編譯,就要看你的用意。
Flex再簡單來說就是開發Flash應用程式的好工具,拿C++、C#或其他語言來跟Flex比,有點是牛頭不對馬嘴,都不是重點,重點是你要開發什麼應用,用在哪裡,適得其所才是關鍵。
對於學習者而言,學好ActionScript 3,要開發Flash / Flex應用程式就不會是難事,再擴大範圍講,你有OO物件導向基礎,學什麼都會快,C#、Java也一樣。
10幾年前我的心靈導師兼好兄弟與我分享,在開發這條路上,若你要成為所謂開發的Guru級人物,工具->語言->系統->平台,四大階段與進程,就看你的規劃與用心,跟你現在走到哪了?
不管你能力多好,多有才幹,但多數人都會忽略一個更重要的事,就是個人品德與謙卑態度,才是會令人尊敬與激賞。
願與大家共勉!
註:因看到大家討論Flex / RIA此議題有感而發,但本篇討論本人不會再回覆,有任何問題可以到RiS平台找到我 http://forum.j2eemx.com
Thanks a lot.