Flash與Silverlight多領(lǐng)域?qū)崪y對比
COMSHARP CMS寫道:自 Silverlight 1.0 發(fā)布以來,Web 開發(fā)與設(shè)計者們關(guān)于該選擇 Flash 和 Silverlight 的爭論便開始了,在成熟的 Flash 面前,Silverlight 面臨著如何贏得市場的難題。然而 Silverlight 中包含了一些開發(fā)設(shè)計者們一直希望 Flash 能擁有的功能,諸如SEO,本文對Flash 和 Silverlight 的技術(shù)細節(jié)進行了詳盡的對比。
Flash 使用基于幀的動畫模式,在逐幀動畫模式中,我們?yōu)槊總€幀創(chuàng)建對象并生成動畫序列。比如你想讓一個對象在3秒內(nèi)穿過屏幕,計算一下3秒一共有多少幀,然后計算每幀需要的矩陣。不過 Flash 在實際播放中并不會真實地按設(shè)定的幀率播放,除非你在動畫中插入一條空白的音軌。
Silverlight 基于 WPF 動畫模式,WPF 是基于時間線,而不是幀的,你定義好起始于結(jié)束狀態(tài),WPF 幫你計算中間該怎么做,不必象 Flash 那樣同矩陣打交道,也不必計算在不同幀對象的位置。
Flash 使用壓縮格式,文字和圖片內(nèi)嵌在整個文件中,因此 Flash 的文件尺寸非常小巧。
Silverlight 使用 XAML 作為描述語言,未經(jīng)過壓縮,因此 Silverlight 的文件尺寸通常要大一些。
Flash 使用 ActionScript, ActionScript 面向?qū)ο?,對用戶界面設(shè)計有全面的控制,還可以同其它后端語言,如 PHP, ASP, Ruby On Rails 進行集成交流,擁有一個強大的開發(fā)庫。
Silverlight 的腳本可以選擇多種開發(fā)語言,Visual C#.Net and Visual Basic.Net,也包括客戶端語言 JavaScript 。 C# 和 VB.net 可以用來編寫托管代碼,并可以全面使用 .net 框架庫。
Flash 支持多種音頻格式,最新的音頻解碼器質(zhì)量非常高,而帶寬占用也非常出色。它的視頻解碼器,Sorenson 的專用 H.263 是 H.263 的變種,壓縮也接近,但去掉了一些功能。
Silverlight使用的是行業(yè)標準VC-1視頻解碼,并支持 WMV 和 WMA,Windows Movie Maker 可以很容易產(chǎn)生這兩種格式,同時微軟還提供免費的WMV,WMA 編碼器。
聲音處理ActionScript 提供了一套聲音類庫,可以用來在動畫中生成或控制聲音,你可以在動畫播放期間從資源庫加入聲音,同時 Flash 還有一些方法在整個動畫中控制聲音。
Silverlight 沒有底層聲音控制 API,甚至無法播放一個 WAV 文件,因為 .NET 在音頻播放上很薄弱。
#p#
可訪問性
對那些有視覺或聽覺缺陷的人,F(xiàn)lash 提供了豐富的可訪問性功能,視頻字幕可以幫助聽覺障礙者,而那些視覺障礙者需要通過鍵盤控制聲音的播放,人們可以使用鍵盤快捷鍵控制視頻播放。
Silverlight 3 首次提供對全部系統(tǒng)配色的支持,那些視力不佳的人可以調(diào)整到高對比度配色方案,在可訪問性方面 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 - 譯者)
文字展示與SEOFlash 中的文字是基于圖形的,F(xiàn)lash 播放器無法理解 TTF,因此我們無法從 Flash 動畫中分離出文字。通常,F(xiàn)lash 對 SEO 是不友好的,但 Adobe 已經(jīng)做出一些努力讓 Flash 中的文字可以索引,而搜索引擎也開始嘗試索引 Flash 了。目前,Google 是唯一支持 Flash 索引的搜索引擎,他們同 Adobe 合作,設(shè)計相應(yīng)的可以理解 Flash 內(nèi)容的 Google 爬蟲。 Yahoo 正在進展中,鑒于微軟的 Silverlight 是 Flash 的競爭者,他們不討可能在 MSN 中索引 Flash。
Silverlight 是基于 XAML 的,Silverlight 中的文字內(nèi)容是獨立存放的,可以被任何搜索引擎索引,因此對搜索引擎更友好。
支持的圖片格式Flash 支持幾乎所有圖片格式。Silverlight 只支持 PNG 與 JPEG,其它格式提供有限的支持。
網(wǎng)絡(luò)編程Flash 使用 XMLSocket 和服務(wù)器進行溝通。
Silverlight 通過 System.Net.Sockets 命名空間,對網(wǎng)絡(luò)編程提供全面支持,Silverlight 可以通過 4502 到 4534 端口異步傳輸數(shù)據(jù),也支持跨域通訊。
攝像頭的支持Flash 支持網(wǎng)絡(luò)攝像頭和麥克風,使用 ActionScript 可以很容易操控攝像頭或麥克風。Silverlight 不支持攝像頭和麥克風。
部署Flash 的部署只包含一個獨立的 SWF 文件,這個文件已經(jīng)包含了所有圖片,文字,動畫。Silverlight 的部署要復(fù)雜一些,所有獨立的部件都要單獨部署,典型的 Silverlight 請求一般包含以下內(nèi)容:
◆XML 文件,
◆DLL 文件(如果有),
◆Silverlight.js,
◆其它JavaScript 文件,
◆資源文件 (圖片,視頻,音頻)
Flash 動畫可以編譯成獨立的 Windows 可執(zhí)行程序,在桌面播放。
Silverligth 不支持。
流媒體服務(wù)Flash 不支持流媒體服務(wù)(雖然 FLV 控制了幾乎所有視頻網(wǎng)站,但那是另一回事-譯者)。
微軟基于 Windows Live 的 Silverlight 流媒體服務(wù)可以讓設(shè)計和開發(fā)者分發(fā)富媒體,結(jié)合微軟的 Expression Studio,開發(fā)與設(shè)計者們可以創(chuàng)建交互式 Web 程序。
富Internet 應(yīng)用的技術(shù)選擇向來存在很多爭議,在 Silverlight 和 Flash 中選擇,完全要看你的需求,如果你的用戶包括 Linux 和 Solaris 平臺的,F(xiàn)lash 是不二之選,如果希望你的網(wǎng)站可以被索引,Silverlight 更好一些。
另外需要指出的是,安裝了 Silverligth 插件的用戶尚在少數(shù),而絕大多數(shù)用戶的瀏覽器中都安裝了Flash 插件,另外,SWF, FLA, FLV 幾乎成了開發(fā)標準格式,而 Silverligth 還是100%私有格式(然而 Silverlight 已經(jīng)是明文了,還談什么開放不開放 - 譯者)。
快速對比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 |
【編輯推薦】