国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Silverlight 入門
發(fā)布日期: 2006-12-26 | 更新日期: 2007-05-08
Laurence Moroney
Microsoft Corporation
適用于:
Microsoft Silverlight(以前的代號為“WPF/E”)
Microsoft Expression Blend
摘要:本白皮書對 Silverlight 進行了高度概述,介紹了 Silverlight 對下一代 Web 應用程序開發(fā)堆棧的適用性。
本頁內容
什么是 Silverlight?
Web 開發(fā)的演變:轉向 Web.Next
構建一個簡單的 Silverlight 應用程序
創(chuàng)建供視頻播放器使用的 UI
了解 Silverlight 調用
結束語
什么是 Silverlight?
Silverlight 是一種新的 Web 呈現(xiàn)技術,能在各種平臺上運行。借助該技術,您將擁有內容豐富、視覺效果絢麗的交互式體驗,而且,無論是在瀏覽器內、在多個設備上還是在桌面操作系統(tǒng)(如 Apple Macintosh)中,您都可以獲得這種體驗。Microsoft .NET Framework 3.0(Windows 編程基礎結構)中的呈現(xiàn)技術 XAML(可擴展應用程序標記語言)遵循 WPF (Windows Presentation Foundation),它是 Silverlight 呈現(xiàn)功能的基礎。
本白皮書將逐步引導您了解 Silverlight 的基本情況,以及如何使用 Microsoft 的眾多工具(包括 Microsoft Expression Blend、Microsoft Visual Studio 2005 和 XAML)來構建內容豐富的圖形站點。首先,讓我們了解一下 Silverlight 發(fā)展歷程的相關背景信息,以及它在開發(fā)領域所處的位置。
返回頁首
Web 開發(fā)的演變:轉向 Web.Next
CERN 的 Tim Berners-Lee 發(fā)明現(xiàn)代 Web 時,初衷是將其作為允許在基于網絡的系統(tǒng)上存儲和鏈接靜態(tài)文檔的系統(tǒng)。之后的數(shù)年間,隨著創(chuàng)新的發(fā)展和成熟,“活動”文檔自然而然地成為了現(xiàn)代 Web 發(fā)展的新階段,這些文檔在收到訪問請求時即會生成,文檔中包含特定于時間或用戶的信息。CGI 之類的技術成為了這一階段的實現(xiàn)基礎。隨著時間的推移,在 Web 上生成文檔的功能變得極為重要,技術上的發(fā)展也歷經 CGI、Java、ASP,到達 ASP.NET 階段。
在使開發(fā)人員擁有采用服務器開發(fā)模式并使用 Visual Studio 系列產品中的同類最佳工具快速開發(fā)高質量 Web 應用程序的能力這一方面,ASP.NET 樹立了一個里程碑。
事實證明,用戶體驗是 Web 應用程序中的一大障礙,在這方面,技術上的限制使 Web 應用程序無法提供與使用本地數(shù)據(jù)的客戶端應用程序同樣豐富的用戶體驗。
XMLHttpRequest 對象(2000 年由 Microsoft 作為 Internet Explorer 5 的一部分發(fā)布)成為了異步 JavaScript 和 XML (AJAX) 技術的基礎,該技術使 Web 應用程序能夠更加動態(tài)地響應用戶輸入,因為采用該技術時只會刷新網頁的一小部分,并不需要重新加載所有內容。基于 AJAX 構建的創(chuàng)新型解決方案(如 Windows Live Local 映射)使 Web 應用程序更進一步,已經能夠提供與客戶端類似的用戶體驗。
Silverlight 是應用程序開發(fā)人員和設計人員可以向其客戶呈現(xiàn)潛在用戶體驗豐富性的下一個發(fā)展階段。為了實現(xiàn)此目的,它允許設計人員展現(xiàn)其創(chuàng)造力并以能夠直接對 Web 產生影響的格式保存其工作。過去,設計人員會使用提供了豐富輸出功能的工具來設計網站和用戶體驗,但在這些設計的實現(xiàn)能力方面,開發(fā)人員會受到 Web 平臺的限制。在 Silverlight 模型中,設計人員可以構建所需的用戶體驗,并將其表示為 XAML。隨后,開發(fā)人員可以使用 Silverlight 運行時直接將該 XAML 合并到網頁中。因此,兩者的合作可以比以往任何時候都更加緊密,從而提供豐富的客戶端用戶體驗。
由于 XAML 屬于 XML,因此它是基于文本的,能夠為這些豐富的內容提供與防火墻兼容的、易于檢查的說明。盡管其他技術(如 Java 小程序、ActiveX 和 Flash)可用來部署比 DHTML/CSS/JavaScript 更豐富的內容,但它們都會向瀏覽器發(fā)送二進制內容。這就導致難以進行安全性審核,更不用說還有更新上的困難,因為進行任何更改后都必須重新安裝整個應用程序,而這并不是友好的用戶體驗,并且可能導致頁面停滯。如果使用 Silverlight,則需要更改豐富的內容時,服務器端會生成新的 XAML 文件。用戶下次瀏覽到該頁面時,會下載該 XAML 并更新體驗,而不需要進行任何重新安裝。
Silverlight 的核心是瀏覽器增強模塊,其作用是呈現(xiàn) XAML 并在瀏覽器界面上繪制生成的圖形。它的下載體積較?。ú坏?2 MB),可以在用戶點擊包含 Silverlight 內容的站點時進行安裝。該模塊向 JavaScript 開發(fā)人員公開 XAML 頁面的底層框架,以便實現(xiàn)頁面級的內容交互,這樣,開發(fā)人員就可以進行自己的工作,例如編寫事件處理程序或使用 JavaScript 代碼來處理 XAML 頁面內容。
不過,理論方面的探討已經夠多的了!我們還是通過實踐來看一看我們的第一個 Silverlight 項目。
返回頁首
構建一個簡單的 Silverlight 應用程序
我們先來看一看 Microsoft Expression Blend,使用該工具創(chuàng)建一個 XAML 格式的非常簡單的應用程序,以供 Silverlight 使用。要在 Blend 中創(chuàng)建 Silverlight 應用程序,請選擇 File(文件)->New project(新建項目),此時會打開“New Project”(新建項目)對話框。請參見圖 1。
圖 1. 使用 Expression Blend 創(chuàng)建新的 Silverlight 項目
選擇 OK(確定),即會創(chuàng)建一個新項目。該項目將包含一個默認 HTML 頁面、該頁面的一些 JavaScript 源代碼、一篇 XAML 文檔和該 XAML 文檔的 JavaScript 源代碼及 Silverlight.js。
Silverlight.js 包含用于下載和實例化 Silverlight 控件的代碼。它作為 Silverlight SDK 的一部分提供給用戶。
Default.html 是標準的 HTML 網頁。該網頁包含三個 JavaScript 腳本引用,分別指向 Silverlight.js、Default.html.js(其中包含特定于應用程序的用于安裝 Silverlight 的代碼)和 Scene.xaml.js(其中包含在 XAML 中定義的應用程序事件的事件處理程序)。
它被設計為一個獨立的頁面 (default.html),與實例化邏輯 (default.html.js)、設計 (Scene.xaml) 和事件代碼 (Scene.xaml.js) 分開。不過,理論方面的探討已經夠多了,現(xiàn)在我們開始開發(fā)一個簡單的應用程序。
返回頁首
創(chuàng)建供視頻播放器使用的 UI
在項目中添加視頻文件。為此,請右鍵單擊屏幕右上方 Project Files(項目文件)窗口中的項目文件,然后選擇 Add Existing Item...(添加現(xiàn)有項目)。
選擇某個 WMV 文件并將其添加到項目時,項目瀏覽器中將顯示該文件,同時在視圖中添加了一個媒體元素。
圖 2. 在 XAML 視圖中添加媒體元素
現(xiàn)在即可運行您的項目,瀏覽器將啟動并播放您的視頻!
通過編輯 XAML 可以停止自動播放視頻。您會看到 XAML 設計器右側有兩個選項卡:Design(設計)和 XAML。選擇“XAML”選項卡,會打開 XAML 編輯器,如圖 3 中所示。使用該編輯器為媒體元素編輯 XAML 文本,添加屬性 AutoPlay=False。
圖 3. 在 XAML 編輯器中編輯 XAML
現(xiàn)在,如果您運行該應用程序,會看到 Silverlight 內容雖然呈現(xiàn)了視頻的第一幀,但并播放。
在視頻播放器中添加控件
為該應用程序添加兩個文本塊,文本內容分別為 Play 和 Stop,名稱分別為 txtPlay 和 txtStop。完成后,XAML 應如下所示:
<Canvasxmlns="http://schemas.microsoft.com/client/2007"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Width="640" Height="480"Background="White"><MediaElement AutoPlay="False" x:Name="Movie_wmv" Width="320" Height="240" Canvas.Left="128" Canvas.Top="56" Source="Movie.wmv" Stretch="Fill"/><TextBlock x:Name="txtPlay" Width="72" Height="24" Canvas.Left="136" Canvas.Top="336" Text="Play" TextWrapping="Wrap"/><TextBlock x:Name="txtStop" Width="80" Height="24" Canvas.Left="136" Canvas.Top="368" Text="Stop" TextWrapping="Wrap"/></Canvas>
接下來,為文本塊在 XAML 中添加事件處理程序聲明。為此,可以使用 MouseLeftButtonDown 屬性聲明單擊鼠標的處理程序。在 txtPlay 文本塊中,添加對 DoPlay 的事件處理程序;在 txtStop 文本塊中,添加對 DoStop 的事件處理程序。完成后,XAML 應如下所示:
<TextBlock x:Name="txtPlay" Width="72" Height="24" Canvas.Left="136"Canvas.Top="336" Text="Play" TextWrapping="Wrap"MouseLeftButtonDown="javascript:DoPlay"/><TextBlock x:Name="txtStop" Width="80" Height="24" Canvas.Left="136"Canvas.Top="368" Text="Stop" TextWrapping="Wrap"MouseLeftButtonDown="javascript:DoStop"/>
現(xiàn)在,如果用戶單擊其中一個文本塊,將觸發(fā)一個事件,您可通過 JavaScript 功能捕獲并處理該事件。
在 JavaScript 中處理事件
模板創(chuàng)建的 Scene.xaml.js 可用于在 JavaScript 中捕獲并處理用戶事件。由于您在 XAML 內指定了 DoPlay 和 DoStop 事件處理程序,因此應在此處付諸實施。相應的代碼如下所示:
function DoPlay(sender, eventArgs){var theHost = document.getElementById("SilverlightControl");var theMedia = theHost.content.findName("Movie_wmv");theMedia.Play();}function DoStop(sender, eventArgs){var theHost = document.getElementById("SilverlightControl");var theMedia = theHost.content.findName("Movie_wmv");theMedia.Stop();}
在本例中,將 Silverlight 控件稱為 SilverlightControl,將引用該控件的 JavaScript 變量稱為 theHost。稍后查找媒體元素(在本例中稱為 Movie_wmv)時,將用到上述名稱。在項目中添加電影時,為您創(chuàng)建了此媒體元素,該元素的名稱是根據(jù)電影名稱命名的。因此,如果電影的名稱是 Movie.wmv,則此媒體元素就稱為 Movie_wmv。如果使用其他電影,則控件也會相應地采用其他名稱。
該媒體元素有 Play 和 Stop 兩個方法,分別用于啟動或停止媒體播放。
由于存在對該媒體元素的引用,因而可以調用上述方法,電影將隨之停止或啟動,如圖 4 中所示。
圖 4. 運行應用程序
至此,您已構建了自己的第一個 Silverlight 應用程序!有關 Silverlight 的更多資源,請查看新的Silverlight 開發(fā)人員中心http://www.silverlight.net/。
返回頁首
了解 Silverlight 調用
HTML 頁面會調用 Default.html.js 源代碼頁中的 createSilverlight()。
Sys.Silverlight.createObjectEx({source: "Scene.xaml",parentElement: document.getElementById("SilverlightControlHost"),id: "SilverlightControl",properties: {width: "100%",height: "100%",version: "0.9"},events: {onLoad: Sys.Silverlight.createDelegate(scene, scene.handleLoad)}});
該調用將用到許多屬性,其中包括那些用于定義要呈現(xiàn)的 XAML、Silverlight 控件外觀以及 onLoad 和 onError 事件處理程序的屬性。
source:屬性用于定義希望 Silverlight 控件呈現(xiàn)的 XAML。該屬性可以是外部文件(如本例中所示),也可以是包含 XAML 的頁面上的命名 <script> 標記。
在頁面上添加 Silverlight 控件時,應將該控件添加到命名 <DIV> 內。應將 parentElement:屬性作為該 <DIV> 的名稱。
控件的 ID 由 id:屬性指定。
控件的物理屬性(如高度、寬度和版本)是由加載到 properties:屬性中的數(shù)組設定的。要查看全部屬性,請參閱Silverlight SDK 文檔。
返回頁首
結束語
本白皮書中高度概述了 Microsoft Silverlight,并介紹了 Silverlight 對下一代 Web 應用程序開發(fā)堆棧的適用情況。您已經看到,XAML 就像一個凝聚體,將設計人員的規(guī)范、開發(fā)人員的工具和面向用戶的交付三者結合在了一起。您大體了解了 Expression Blend,并學習了如何用它來為網頁定義 UI,以及如何使用 JavaScript 對它們進行編程。
您通過本文所了解的內容只觸及到 Silverlight 功能的皮毛。這項技術中蘊含著諸多功能,您現(xiàn)在就可以使用這項技術開始構建下一個 Web。這會是一個有趣的旅程,快來體驗吧!
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
一步一步學Silverlight 2系列(8):使用樣式封裝控件觀感
在Silverlight中使用定時器(Timer)
Silverlight圣誕下雪動畫及其擴展應用的實現(xiàn)
表現(xiàn)層持續(xù)解耦帶來的模式轉變 MVC MVP MVVM (微軟WPF帶來的團隊變化和軟件技...
XAML是什么
使用 Style 元素更好地封裝觀感 (木野狐譯) | Silverlight中文社區(qū)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服