iT邦幫忙

0

flex可以用c#寫嗎?

betty 2010-01-26 17:04:1412714 瀏覽
  • 分享至 

  • xImage

請問各位先進,小妹想了解flex是用什麼語法寫的,是用java嗎?
因為目前在比較silverlight是用c#或是vb來寫,但是flex就不知道了?
可以告訴我嗎??

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
14
fillano
iT邦超人 1 級 ‧ 2010-01-26 18:19:16
最佳解答

ellhan大,您這樣回答好像有點文不對題,而且重點沒回答。
簡單回答就像antijava大這樣,或是「ActionScript 3」。
發問者想要知道的只是用什麼語言開發,使用C#能不能做到。

詳細回答的話:

  1. 在網頁中跑的是swf格式的檔案,不論使用flash或是flex,最後是產出這個檔案
  2. 瀏覽器依賴flash player來播放這個格式的檔案,在不同作業系統及平台上可能會有不同版本的flash player plugin,但是他們基本上可以用來播放同樣的swf格式檔案。這些flash player裡面是有內建一個vm(avm)用來執行編譯好的byte code,這些byte code應該是跨平台的。理論上只會有版本的不同而不會有平台的不同。(甚至也有open source的player,但是相容性不好,還沒趕上新規格)
  3. 要跑c#也不是不可能,但是絕對不會支援.net framework裡面的東西,而是依賴flash/flex的library,而且最後需要把C#程式編譯成avm可以執行的byte code然後內嵌到swf檔案中。就看有沒有人這樣搞。
  4. swf格式是公開標準,可以到adobe網站下載規格書。
看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2010-01-26 18:21:29 檢舉

阿是ellahan大,十分抱歉。

講得這麼棒
害我都沒梗了..

fillano iT邦超人 1 級 ‧ 2010-01-26 20:23:18 檢舉

阿,仔細看了一下,其實ellanhan大也有提到,只是寫了許多不太相關的東西。而且我說的也不夠切題,還是得跟ellanhan大說聲抱歉。

不切題的地方是:

小妹想了解flex是用什麼語法寫的

所以補充一下:flex其實是用xml(mxml)定義出UI然後加上actionscript來開發,看起來有點像html+javascript,最後可以把xml編譯成swf。他的sdk不要錢,但是缺乏設計工具。編譯器(mxmlc)在windows之外的作業系統其實是執行一個java程式(mxmlc.jar)......SDK的文件跟範例很豐富,不妨下載來玩玩看。

fillano 大大
你是個好心人

對於
第一天註冊
就問「Silverlight與Flex之比較之使用程式語言」這種問題
還自稱「小妹」的人
我實在沒意願多回答些什麼...^_^

fillano iT邦超人 1 級 ‧ 2010-01-26 21:56:49 檢舉

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跟試作,雖然了解還不夠深入,但是有不少好玩的東西,所以順便提了一下。

fillano iT邦超人 1 級 ‧ 2010-01-26 22:00:33 檢舉

To: antijava大

我其實是因為ellahan大的回答而回的啦,醉翁之意不在酒。

fillano iT邦超人 1 級 ‧ 2010-01-27 12:49:29 檢舉

Flex 本身就是用c++開發出來的.

嗯嗯,這樣講也有點怪怪的XD,因為不太確定你說的Flex是指什麼...

就我用過的感覺,Flex SDK跟Flex Builder有一大部分是用Java開發的耶...Flash Player跟Flash Player plugin等應該是用C/C++開發的沒錯啦。

10
ellahan
iT邦新手 5 級 ‧ 2010-01-26 17:09:11

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,藉此達到跨平台的目的。

8
海綿寶寶
iT邦大神 1 級 ‧ 2010-01-26 17:13:42

簡單回答:不行

8
shunyuan
iT邦研究生 1 級 ‧ 2010-01-26 18:45:08

Flex 跟 C# 不是同一個系統。

但是 SilverLight 可以用 C# 喔,還很強大喔。

看這個範例,在這個網頁就可以寫 APP.

http://www.microsoft.com/silverlight/silverlight/demos/OOB/default.html

10
sungnoone
iT邦新手 2 級 ‧ 2010-01-27 15:06:38

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知識文件豐富及完整程度,實在不如微軟。中文文件更不用說,如果只靠官方文件或網站,會有點辛苦。

8
bha
iT邦新手 5 級 ‧ 2010-01-27 15:41:51

主要就是, 若是要和 [微軟] 產品相結合的話, 在 [ FLEX ] 和 [ Silverlight ] 選擇上又沒有預設立場的話, 就可以直接選擇 [ Silverlight ] 了. (相信這樣的情況, 應該適用很多人了~)

6
chongbing
iT邦新手 2 級 ‧ 2010-01-28 08:30:26

開發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.

我要發表回答

立即登入回答