Flash 與 Silverlight 終極大比拼

自 Silverlight 1.0 發布以來,Web 開發與設計者們關于該選擇 Flash 和 Silverlight 的爭論便開始了,在成熟的 Flash 面前,Silverlight 面臨著如何贏得市場的難題。然而 Silverlight 中包含了一些開發設計者們一直希望 Flash 能擁有的功能,諸如SEO,本文對 Flash 和 Silverlight 的技術細節進行了詳盡的對比。

動畫功能

Flash 使用基于幀的動畫模式,在逐幀動畫模式中,我們為每個幀創建對象并生成動畫序列。比如你想讓一個對象在3秒內穿過屏幕,計算一下3秒一共有多少幀,然后計算每幀需要的矩陣。不過 Flash 在實際播放中并不會真實地按設定的幀率播放,除非你在動畫中插入一條空白的音軌。

Silverlight 基于 WPF 動畫模式,WPF 是基于時間線,而不是幀的,你定義好起始于結束狀態,WPF 幫你計算中間該怎么做,不必象 Flash 那樣同矩陣打交道,也不必計算在不同幀對象的位置。

文件尺寸

Flash 使用壓縮格式,文字和圖片內嵌在整個文件中,因此 Flash 的文件尺寸非常小巧。

Silverlight 使用 XAML 作為描述語言,未經過壓縮,因此 Silverlight 的文件尺寸通常要大一些。

腳本

Flash 使用 ActionScript, ActionScript 面向對象,對用戶界面設計有全面的控制,還可以同其它后端語言,如 PHP, ASP, Ruby On Rails 進行集成交流,擁有一個強大的開發庫。

Silverlight 的腳本可以選擇多種開發語言,Visual C#.Net and Visual Basic.Net,也包括客戶端語言 JavaScript 。 C# 和 VB.net 可以用來編寫托管代碼,并可以全面使用 .net 框架庫。

視頻和音頻

Flash 支持多種音頻格式,最新的音頻解碼器質量非常高,而帶寬占用也非常出色。它的視頻解碼器,Sorenson 的專用 H.263 是 H.263 的變種,壓縮也接近,但去掉了一些功能。

Silverlight 使用的是行業標準 VC-1 視頻解碼,并支持 WMV 和 WMA,Windows Movie Maker 可以很容易產生這兩種格式,同時微軟還提供免費的 WMV, WMA 編碼器。

聲音處理

ActionScript 提供了一套聲音類庫,可以用來在動畫中生成或控制聲音,你可以在動畫播放期間從資源庫加入聲音,同時 Flash 還有一些方法在整個動畫中控制聲音。

Silverlight 沒有底層聲音控制 API,甚至無法播放一個 WAV 文件,因為 .NET 在音頻播放上很薄弱。

可訪問性

對那些有視覺或聽覺缺陷的人,Flash 提供了豐富的可訪問性功能,視頻字幕可以幫助聽覺障礙者,而那些視覺障礙者需要通過鍵盤控制聲音的播放,人們可以使用鍵盤快捷鍵控制視頻播放。

Silverlight 3 首次提供對全部系統配色的支持,那些視力不佳的人可以調整到高對比度配色方案,在可訪問性方面 Silverligth 比 Flash 差很多。

平臺兼容性

Flash 支持 Windows Vista/XP/2000, Windows Server 2003/2008, Mac OS 10.1/10.5 (PowerPC), Mac OS 10.1/10.5 (Intel), Linux 5, openSUSE 11, Ubuntu 7.10 or later and Solaris 10.

Silverlight 只支持 Windows Vista/XP/2000, Windows Server 2003/2008, Windows Mobile 6, Mac OS 10.1/10.5 (PowerPC) and Mac OS 10.1/10.5 (Intel)。由于不支持 Linux 和 Solaris,因此這些平臺的用戶無法體驗 Silverlight 。(不過 .NET 在 Linux 平臺的第三方開源項目,MONO 框架中的 MoonLight 支持 Linux - 譯者)

文字展示與SEO

Flash 中的文字是基于圖形的,Flash 播放器無法理解 TTF,因此我們無法從 Flash 動畫中分離出文字。通常,Flash 對 SEO 是不友好的,但 Adobe 已經做出一些努力讓 Flash 中的文字可以索引,而搜索引擎也開始嘗試索引 Flash 了。目前,Google 是唯一支持 Flash 索引的搜索引擎,他們同 Adobe 合作,設計相應的可以理解 Flash 內容的 Google 爬蟲。 Yahoo 正在進展中,鑒于微軟的 Silverlight 是 Flash 的競爭者,他們不討可能在 MSN 中索引 Flash。

Silverlight 是基于 XAML 的,Silverlight 中的文字內容是獨立存放的,可以被任何搜索引擎索引,因此對搜索引擎更友好。

支持的圖片格式

Flash 支持幾乎所有圖片格式。Silverlight 只支持 PNG 與 JPEG,其它格式提供有限的支持。

網絡編程

Flash 使用 XMLSocket 和服務器進行溝通。

Silverlight 通過 System.Net.Sockets 命名空間,對網絡編程提供全面支持,Silverlight 可以通過 4502 到 4534 端口異步傳輸數據,也支持跨域通訊。

攝像頭的支持

Flash 支持網絡攝像頭和麥克風,使用 ActionScript 可以很容易操控攝像頭或麥克風。Silverlight 不支持攝像頭和麥克風。

部署

Flash 的部署只包含一個獨立的 SWF 文件,這個文件已經包含了所有圖片,文字,動畫。Silverlight 的部署要復雜一些,所有獨立的部件都要單獨部署,典型的 Silverlight 請求一般包含以下內容:

  • XML 文件,
  • DLL 文件(如果有),
  • Silverlight.js,
  • 其它JavaScript 文件,
  • 資源文件 (圖片,視頻,音頻)

Windows 可執行文件

Flash 動畫可以編譯成獨立的 Windows 可執行程序,在桌面播放。

Silverligth 不支持。

流媒體服務

Flash 不支持流媒體服務(雖然 FLV 控制了幾乎所有視頻網站,但那是另一回事-譯者)。

微軟基于 Windows Live 的 Silverlight 流媒體服務可以讓設計和開發者分發富媒體,結合微軟的 Expression Studio,開發與設計者們可以創建交互式 Web 程序。

結論

富 Internet 應用的技術選擇向來存在很多爭議,在 Silverlight 和 Flash 中選擇,完全要看你的需求,如果你的用戶包括 Linux 和 Solaris 平臺的,Flash 是不二之選,如果希望你的網站可以被索引,Silverlight 更好一些。

另外需要指出的是,安裝了 Silverligth 插件的用戶尚在少數,而絕大多數用戶的瀏覽器中都安裝了 Flash 插件,另外,SWF, FLA, FLV 幾乎成了開發標準格式,而 Silverligth 還是100%私有格式(然而 Silverlight 已經是明文了,還談什么開放不開放 - 譯者)。

快速對比

Features Flash Silverlight
Animation . better
File size better .
Scripting . better
Video/Audio . better
Sound processing better .
Accessibility better .
Platform compatibility better .
Text representation/SEO . better
Supported image formats better .
Socket programming better .
Webcam support better .
Deployment better .
Windows application better .
Media streaming . better

本文國際來源:http://www.smashingmagazine.com/2009/05/09/flash-vs-silverlight-what-suits-your-needs-best/
中文翻譯來源:COMSHARP CMS 官方網站





評論
...
發表評論


用戶


評論(不超過1000字)


 3 - 5 = ? 請將左邊的算術題的結果填寫到左邊的輸入框  


  發送給朋友| 打印友好
7 x 12 小時服務熱線
0532 - 83669660
微信: comsharp
QQ: 13885509
QQ: 592748664
Skype: comsharp