日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight Expression[转]

發(fā)布時(shí)間:2024/4/11 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight Expression[转] 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
*這篇文章基于 Silverlight 的預(yù)發(fā)布版。文中包含的所有信息均有變更可能。
本文討論:
  • Silverlight 和 XAML 簡(jiǎn)介
  • 構(gòu)建簡(jiǎn)單的 Silverlight 應(yīng)用程序
  • 在服務(wù)器上動(dòng)態(tài)生成 Silverlight 應(yīng)用程序
  • 創(chuàng)建 XAML 服務(wù)
本文使用了以下技術(shù):
Silverlight, XAML, JavaScript

Microsoft 戰(zhàn)略中下一代 Web 開(kāi)發(fā)工具的一個(gè)關(guān)鍵組件,就是名為 Microsoft? Silverlight? 的新技術(shù),原代號(hào)為“WPF/E”。Silverlight 將 Windows? Presentation Foundation 體驗(yàn)帶到 Web 中,提供豐富又令人陶醉的內(nèi)容,與包括 ASP.NET AJAX 在內(nèi)的其他 Web 開(kāi)發(fā)環(huán)境實(shí)現(xiàn)無(wú)縫連接。 為了與 Web 社區(qū)盡可能地融合,Silverlight 需要在多個(gè)流行的操作系統(tǒng)和最常見(jiàn)的瀏覽器中成功運(yùn)行。其結(jié)果是,最初發(fā)行的版本支持在 Mac OS X 上運(yùn)行的 Firefox 和 Safari 瀏覽器,以及在 Windows 上運(yùn)行的 Firefox 和 Internet Explorer?。隨著產(chǎn)品的發(fā)展,會(huì)支持更多的操作系統(tǒng)和瀏覽器。除這些功能外,Silverlight 也是完全獨(dú)立的,不需要依靠其他產(chǎn)品,比如它不需要 Windows Media? Player 進(jìn)行視頻播放,也不需要 Microsoft .NET Framework 3.0 進(jìn)行 XAML 分析。 本文既是對(duì) Silverlight 體系結(jié)構(gòu)的高度概述,又可讓您通過(guò)構(gòu)建幾個(gè) Silverlight 應(yīng)用程序獲得親身體驗(yàn),這一切從一個(gè)基本的“Hello World”應(yīng)用程序開(kāi)始。之后我將引導(dǎo)您構(gòu)建簡(jiǎn)單的媒體播放器。您還將知道作為客戶端技術(shù)的 Silverlight,如何融入更大的、面向服務(wù)器的環(huán)境,包括在運(yùn)行 PHP 或 Java 的服務(wù)器上應(yīng)用的能力。
Silverlight 簡(jiǎn)介
從核心上說(shuō),Silverlight 是呈現(xiàn) XAML 的瀏覽器插件,以可編寫(xiě)腳本的方式,向?yàn)g覽器提供其內(nèi)部的文檔對(duì)象模型 (DOM) 和事件模型。因此,設(shè)計(jì)人員可以將含有圖形、動(dòng)畫(huà)、時(shí)間線的 XAML 文檔整合在一起,以便開(kāi)發(fā)人員將它們關(guān)聯(lián)到頁(yè)面代碼,實(shí)現(xiàn)其功能。由于 XAML 基于 XML,定義下載至客戶端的 UI 是基于文本的,因此對(duì)搜索引擎和防火墻都很友好。此外,XAML 可以由服務(wù)器應(yīng)用程序在運(yùn)行時(shí)組裝和發(fā)出,因此不僅提供了豐富的圖形體驗(yàn),而且是高度可自定義和動(dòng)態(tài)的。 圖?1 是對(duì)簡(jiǎn)單 Silverlight 應(yīng)用程序的分析,它使用靜態(tài)的 XAML 文件定義其 UI 和處理事件的 JavaScript。瀏覽器會(huì)實(shí)例化插件,并且作為處理過(guò)程的一部分,加載 XAML 文件。文件內(nèi)部的事件(例如單擊按鈕)將由瀏覽器捕獲并通過(guò) JavaScript 處理。由于 Silverlight 內(nèi)容的 DOM 已公開(kāi),JavaScript 代碼也可以動(dòng)態(tài)地更新 Silverlight 內(nèi)容,改變已呈現(xiàn)內(nèi)容的狀態(tài)。
圖 1?示例應(yīng)用程序 圖?2 顯示了支持 Silverlight 應(yīng)用程序的體系結(jié)構(gòu)。主編程接口是 JavaScript DOM API。它允許對(duì) Silverlight XAML 內(nèi)部觸發(fā)的事件作出反應(yīng)(比如內(nèi)容加載完成或動(dòng)畫(huà)結(jié)束時(shí))。也可以調(diào)用方法操作表示層(比如啟動(dòng)動(dòng)畫(huà)或暫停視頻播放)。在它下方是 XAML 分析引擎。分析器創(chuàng)建內(nèi)存中的 XAML DOM 供表示核心使用,該核心負(fù)責(zé)處理 XAML 定義的圖形和動(dòng)畫(huà)呈現(xiàn)。此外,運(yùn)行時(shí)間包含了播放 WMV、WMA 和 MP3 多媒體內(nèi)容所需的 Codec。
圖 2?Silverlight 體系結(jié)構(gòu) 最后,運(yùn)行庫(kù)包含了管理呈現(xiàn)過(guò)程的表示核心。此顯示運(yùn)行時(shí)間內(nèi)置于支持多種風(fēng)格 Windows 和 Mac OS X 的瀏覽器插件中,使用之前討論的任意瀏覽器。最終產(chǎn)生了一個(gè)可以插入瀏覽器并通過(guò) JavaScript 編寫(xiě)腳本的獨(dú)立圖形和媒體呈現(xiàn)引擎。
XAML 概述
XAML 是一種基于 XML 語(yǔ)言,可用于定義圖形資源、用戶界面、行為、動(dòng)畫(huà)等。微軟將它作為在 Windows Presentation Foundation 中使用的標(biāo)記語(yǔ)言推出。Windows Presentation Foundation 是一種面向桌面的技術(shù),屬于 .NET Framework 3.0 的一部分,旨在幫助協(xié)調(diào)設(shè)計(jì)人員和開(kāi)發(fā)人員在創(chuàng)建應(yīng)用程序時(shí)的工作。 一直以來(lái),設(shè)計(jì)人員使用一套工具和資源創(chuàng)建應(yīng)用程序,而開(kāi)發(fā)人員則使用自己的另一套工具。工具集的不匹配可能對(duì)最終的應(yīng)用程序產(chǎn)生負(fù)面影響。微軟推出新的 Expression 工具套件,主要是 Microsoft Expression? Design 和 Microsoft Expression Blend,讓專業(yè)設(shè)計(jì)人員可以分別將圖形項(xiàng)目和用戶界面放在一起,將最終結(jié)果表述為 XAML,以便開(kāi)發(fā)人員用此構(gòu)建應(yīng)用程序。 首次發(fā)布的 Silverlight 所使用的 XAML 不同于 Windows Presentation Foundation 使用的 XAML,前者是可用于桌面的完整 XAML 的面向 Web 子集。因此,如果您熟悉 Windows Presentation Foundation XAML,您可能會(huì)注意到缺失一些東西,比如 <Window> 標(biāo)記、頁(yè)面資源、數(shù)據(jù)綁定和豐富控件模型。 在 XAML 中,元素是用 XML 標(biāo)記定義的。每個(gè) Silverlight 文檔的根級(jí)別都是 Canvas 標(biāo)記,它定義繪制 UI 元素的空間。該 Canvas 應(yīng)包含 Silverlight 需要的 XML 命名空間聲明。 <Canvas xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation” xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”></Canvas> 一個(gè) Canvas 可以有一或多個(gè)子項(xiàng),子 Canvases 又可以創(chuàng)建它們自己的子項(xiàng)。Canvas 子項(xiàng)有相對(duì)于其父項(xiàng)的位置,而不是對(duì)根 Canvas。下面的示例中,一個(gè) Canvas 包含一個(gè)矩形 (Rectangle),該矩形放在距其父項(xiàng)左上角 25 像素的位置。 <Canvas Width=”250” Height=”200”> <Rectangle Canvas.Top=”25” Canvas.Left=”25” Width=”200” Height=”150” Fill=”Black” /></Canvas>
XAML 內(nèi)部
Silverlight XAML 支持多種形狀,能夠合成復(fù)雜的對(duì)象。支持的基本圖形包括矩形、橢圓、線條、多邊形、復(fù)合線和路徑。它們大多數(shù)都是不解自明的。復(fù)合線允許定義一系列相連的線段。路徑允許定義一個(gè)通過(guò) Canvas 的非線性路徑(如同涂鴉)。 畫(huà)筆決定如何在屏幕上繪制對(duì)象。用 Fill 繪制內(nèi)容,用 Stroke 繪制輪廓。畫(huà)筆分純色畫(huà)筆、漸變畫(huà)筆和圖像畫(huà)筆幾種。純色畫(huà)筆通過(guò) fill 屬性(如前例使用的 Fill="Black")的固定色、或使用 SolidColorBrush 作為附加屬性實(shí)現(xiàn)(如下所示): <Rectangle Canvas.Top=”25” Canvas.Left=”25” Width=”200” Height=”150”> <Rectangle.Fill> <SolidColorBrush Color=”Black” /> </Rectangle.Fill> <Rectangle> 顏色可以通過(guò)名稱(支持 141 種命名的顏色)或十六進(jìn)位 RGB 定義。 漸變畫(huà)筆通過(guò)在規(guī)范化空間中定義漸變域和若干漸變停留來(lái)實(shí)現(xiàn)。舉例來(lái)說(shuō),假設(shè)在灰色陰影中,需要一個(gè)線形漸變,從右至左,從黑變白。指定漸變停留 0(規(guī)范化線的開(kāi)端)為黑色、漸變停留 1(規(guī)范化線的結(jié)束)為白色。Silverlight 就將為您繪制這個(gè)漸變。漸變也可以在二維空間中用規(guī)范化矩形定義空間來(lái)繪制(0,0 為左上,1,1 為右下)。要定義一個(gè)二維的填充矩形,左上為紅色,右下為黑色,中間是流暢的漸變,使用 XAML 如下: <Rectangle Width=”200” Height=”150” > <Rectangle.Fill> <LinearGradientBrush StartPoint=”0,0” EndPoint=”1,1”> <LinearGradientBrush.GradientStops> <GradientStop Color=”Red” Offset=”0” /> <GradientStop Color=”Black” Offset=”1” /> </LinearGradientBrush.GradientStops> </LinearGradientBrush> </Rectangle.Fill></Rectangle> 用 ImageBrushes 也可以繪制對(duì)象,圖像將被適當(dāng)?shù)丶羟谢蚶臁R虼?#xff0c;例如可以指定使用 ImageBrush 填充橢圓,使用的 XAML 如下: <Ellipse Width=”200” Height=”75” > <Ellipse.Fill> <ImageBrush ImageSource=”http://.../logo.jpg” /> </Ellipse.Fill></Ellipse> 在 XAML 中,文本可以用 TextBlock 標(biāo)記呈現(xiàn)。這樣您可以控制文本的各個(gè)方面,如內(nèi)容、字體、字號(hào)、折行等等。以下是一些示例: <TextBlock>Hello</TextBlock> <TextBlock FontSize=”18”>Hello</TextBlock> <TextBlock FontFamily=”Courier New”>Hello</TextBlock> <TextBlock TextWrapping=”Wrap” Width=”100”> Hello there, how are you? </TextBlock> 此外,Silverlight 支持用于實(shí)現(xiàn)文本輸入的鍵盤事件。在根元素上可以定義鍵盤事件(KeyDown 或 KeyUp),并使用事件參數(shù)獲知按下的是哪個(gè)鍵。
轉(zhuǎn)換、媒體和動(dòng)畫(huà)
XAML 允許在對(duì)象上定義多種轉(zhuǎn)換。RotationTransform 以定義的角度旋轉(zhuǎn)元素,ScaleTransform 可以用來(lái)拉伸或縮小對(duì)象,SkewTransform 使其在定義的方向上扭曲定義的量,TranslateTransform 根據(jù)定義的矢量移動(dòng)對(duì)象,MatrixTransform 則結(jié)合了以上所有轉(zhuǎn)換。 轉(zhuǎn)換可以分組,這樣,通過(guò)將轉(zhuǎn)換定義為組的一部分,可以將多個(gè)轉(zhuǎn)換置于對(duì)象之上。圖?3 就是一個(gè)很好的示例。在此情況下,Canvas 中有 3 個(gè)橢圓。由于轉(zhuǎn)換在 Canvas 層次中定義,因此每個(gè)橢圓都將被旋轉(zhuǎn)和縮放。 使用 MediaElement 標(biāo)記控制音頻和視頻內(nèi)容。此標(biāo)記具有源屬性,指向即將播放的媒體。使用此標(biāo)記定義的對(duì)象提供了許多控制媒體播放的方法和事件。在文章稍后部分中,您將看到用 XAML 構(gòu)建的簡(jiǎn)單媒體播放器示例,其中 JavaScript 實(shí)現(xiàn)了播放、暫停、停止等用戶交互。定義 MediaElement 非常簡(jiǎn)單: <Canvas xmlns=”...” xmlns:x=”...”> <MediaElement Source=”xbox.wmv” /> </Canvas> 在 XAML 中實(shí)現(xiàn)動(dòng)畫(huà)的方式是定義屬性應(yīng)該如何根據(jù)時(shí)間線逐漸發(fā)生變化。動(dòng)畫(huà)定義包含在 Storyboard 中。動(dòng)畫(huà)有各種不同的類型,包括變化數(shù)字屬性的 DoubleAnimation、變化顏色和畫(huà)筆的 ColorAnimation、變化二維值的 PointAnimation。這些動(dòng)畫(huà)可以是線性的,也可以是基于關(guān)鍵幀的。在線性動(dòng)畫(huà)中,動(dòng)畫(huà)沿著定義的時(shí)間線發(fā)生流暢的變化。基于關(guān)鍵幀的動(dòng)畫(huà)可在離散的值之間移動(dòng)。 圖?4 顯示了一個(gè)隨時(shí)間改變圓形寬度的簡(jiǎn)單動(dòng)畫(huà)示例。AutoReverse 屬性設(shè)為 True,指示引擎繼續(xù)動(dòng)畫(huà),在進(jìn)行過(guò)程中逆轉(zhuǎn),使得圓形從寬到窄再到寬,而不是重復(fù)從寬到窄的轉(zhuǎn)換。
簡(jiǎn)單的 Silverlight 應(yīng)用程序
在 Visual Studio 2005 中,您可以使用 Silverlight 應(yīng)用程序模板(Silverlight SDK 下載的一部分),輕松構(gòu)建 Silverlight 應(yīng)用程序。本文中我使用了 Visual Web Developer? Express 應(yīng)用程序,可以從 MSDN? 下載。 本示例是個(gè)簡(jiǎn)單的媒體播放器,播放 WMV 視頻內(nèi)容。它使用 Channel 9 視頻(channel9.msdn.com),但您可以更改為播放您喜歡的任何視頻。XAML 十分簡(jiǎn)單,在圖?5 中可以完整地看到。為簡(jiǎn)單起見(jiàn),TextBlock 元素用于“Play”(播放)、“Stop”(停止)和“Pause”(暫停)按鈕。 MediaElement 標(biāo)記用于定義視頻。它的名稱是 mPlayer,其像素設(shè)為 640×400。“Source”標(biāo)記指向一個(gè)微軟網(wǎng)站提供下載的 WMV 視頻。 接下來(lái)是三個(gè) TextBlock 元素,用于定義“Play”(播放)、“Stop”(停止)和“Pause”(暫停)按鈕。這些按鈕垂直排列在畫(huà)布左上方。注意 Canvas.Left 尚未設(shè)置,默認(rèn)為 0。這些 TextBlock 元素定義了單擊 (MouseLeftButtonDown) 時(shí)引發(fā)的 JavaScript 事件處理程序。在它們上面按下鼠標(biāo)按鈕時(shí),Silverlight 將事件傳送至瀏覽器,由 JavaScript 捕獲和處理。 現(xiàn)在讓我們組合成一個(gè)應(yīng)用程序:它使用此 XAML,并使用 Visual Web Developer Express 實(shí)現(xiàn) JavaScript 事件處理程序。要使它工作,需要一個(gè) silverlight.js 文件,該文件可以從 Silverlight SDK 下載中得到,也可以在 MSDN 示例下載網(wǎng)站的任意 Silverlight 示例中得到。 使用 Visual Web Developer Express,創(chuàng)建新的 Web 站點(diǎn)。在該站點(diǎn)中創(chuàng)建名為 \js 的文件夾,在其中添加 silverlight.js 文件。右鍵單擊 \js 文件夾并選擇“Add New Item”(添加新項(xiàng))。在新建文件對(duì)話框中選擇 JScript 文件,并將其稱為 eventhandlers.js。 然后,右鍵單擊 Solution Explorer 中的項(xiàng)目,單擊“Add New Item”(添加新項(xiàng)),創(chuàng)建一個(gè)新的 XML 文件,名為 videoplayer.xaml。用圖?5 列出的 XAML 填充。 最后,在項(xiàng)目中添加一個(gè)新的 HTML 頁(yè)面,命名為 Default.htm。編輯 HTML 頁(yè)面,使其加載 JavaScript 庫(kù),并用它們創(chuàng)建一個(gè) Silverlight 播放器實(shí)例以呈現(xiàn) XAML 內(nèi)容。圖?6 顯示了 Default.htm 的完整源代碼。 頁(yè)面頂端的腳本標(biāo)記可導(dǎo)入 JavaScript 庫(kù)、silverlight.js 和 eventhandlers.js。silverlight.js 庫(kù)管理 Silverlight 插件的下載和實(shí)例化。它有瀏覽器和 OS 抽象,所以您毋須擔(dān)心;您只需利用 Sys.Silverlight.createObjectEx 函數(shù)實(shí)現(xiàn)新的 Silverlight 控件。Silverlight 插件本身應(yīng)該位于分配了 ID 的 DIV 塊內(nèi)部。在這種情況下,包含插件的 DIV 稱為 AgControl1Host。實(shí)例化 Silverlight 內(nèi)容時(shí)會(huì)用到此 ID。 Silverlight 插件的實(shí)例化方式是創(chuàng)建新的 Silverlight 控件實(shí)例,傳入大量參數(shù)以構(gòu)造它。有關(guān)這些參數(shù)的詳細(xì)信息,請(qǐng)參見(jiàn) Silverlight SDK。 最后一步是實(shí)現(xiàn) JavaScript 函數(shù),該函數(shù)處理單擊“Play”(播放)、“Stop”(停止)和“Pause”(暫停)按鈕時(shí)觸發(fā)的事件。這些代碼應(yīng)放入 eventhandlers.js。 function PlayVideo(sender,args){ var mPlayer = sender.findName(“mPlayer”); mPlayer.Play();}function PauseVideo(sender,args){ var mPlayer = sender.findName(“mPlayer”); mPlayer.Pause();} function StopVideo(sender,args){ var mPlayer = sender.findName(“mPlayer”); mPlayer.Stop();} 在 XAML 中,Stop TextBlock 將 MouseLeftButtonDown 屬性定義為指向 JavaScript:StopVideo。通過(guò)創(chuàng)建接受 sender 和 args 參數(shù)的同名 JavaScript 函數(shù)實(shí)現(xiàn)此函數(shù)。使用 Silverlight 中的 findName 函數(shù),可以在 DOM 內(nèi)找到與已命名參數(shù)匹配的元素。因此,要停止正在播放的視頻,可以使用 findName API 來(lái)查找 MediaElement。在 XAML 中,該元素稱為 mPlayer。findName API 將返回該對(duì)象的引用,可以將其載入 JavaScript var。現(xiàn)在有了引用之后,您可以簡(jiǎn)單地調(diào)用它的 Stop 方法以停止視頻播放。播放和暫停功能與之相似。 就是這樣!簡(jiǎn)單的視頻播放器能立即與 Silverlight 組合在一起。運(yùn)行應(yīng)用程序,可以看到類似于圖?7 所示的結(jié)果。
圖 7?簡(jiǎn)單的視頻播放器 (單擊該圖像獲得較小視圖)
圖 7?簡(jiǎn)單的視頻播放器 (單擊該圖像獲得較大視圖) 當(dāng)然如果希望硬編碼視頻 URI 到 XAML 里也是可以的,但這不是最可行的方式。讓我們看一下將其從靜態(tài) HTML 頁(yè)面更改為活動(dòng) Web 窗體,以將視頻作為參數(shù)接受。 第一步,從 XAML 中刪除對(duì)媒體文件的引用。更改 XAML 中的 MediaElement,刪除 Source 屬性。完成后應(yīng)該如下所示: <MediaElement x:Name=”mPlayer” Width=”640” Height=”400”/> 然后,在應(yīng)用程序中創(chuàng)建一個(gè)名為 VideoPlayer.aspx 的新 Web 窗體 (ASPX)。此窗體應(yīng)實(shí)體化一個(gè)源于 videoplayer.xaml 的 Silverlight 控件,如圖?6 所示。此外,它應(yīng)包含以下 JavaScript 代碼: <script type=”text/javascript”> function root_Loaded(sender,args) { var mPlayer = sender.findName(“mPlayer”); mPlayer.Source = “<% Response.Write(Request.Params[“VideoURI”]); %>”; mPlayer.Play();}</script> XAML 含有一個(gè)事件聲明,加載 Canvas 時(shí)引發(fā)該事件。這是由 JavaScript 中的 root_Loaded 事件處理程序捕獲的。該函數(shù)利用 ASP.NET 將 VideoURI 從服務(wù)器上的 HTTP 請(qǐng)求中提取出來(lái),用 VideoURI 填入 JavaScript 函數(shù),從而設(shè)置視頻源。頁(yè)面執(zhí)行時(shí),視頻(VideoURI 參數(shù)指定)將由 Silverlight 呈現(xiàn)。請(qǐng)注意,這個(gè)一個(gè)非常簡(jiǎn)單的示例,沒(méi)有任何錯(cuò)誤處理或過(guò)濾,如果您希望自己的應(yīng)用程序有此類功能,則需要進(jìn)行添加。 注意,在使用如下 URI 調(diào)用此頁(yè)面時(shí): http://localhost/MSDN1/VideoPlayer.aspx?videouri=xbox.wmv ASP.NET 將產(chǎn)生一個(gè)包含 JavaScript 塊的頁(yè)面,如下所示: <script type=”text/javascript”> function root_Loaded(sender,args) { var mPlayer = sender.findName(“mPlayer”); mPlayer.Source = “xbox.wmv”; mPlayer.Play(); } </script> 之后此 JavaScript 將 xbox.wmv 文件載入 MediaElement,Silverlight 將播放視頻。以上說(shuō)明使用服務(wù)器端活動(dòng)頁(yè)面(ASPX、PHP 或 Java)可以通過(guò)增加靈活性,大大改善 Silverlight 最終用戶體驗(yàn)。
Silverlight 服務(wù)器應(yīng)用程序
如果說(shuō)把 Silverlight 只看作一種在瀏覽器中嵌入豐富內(nèi)容的客戶端技術(shù),并不十分公平。這些豐富的功能已經(jīng)可以通過(guò)使用封閉插件獲得,如 Java Applets、ActiveX? 控件或 Flash 應(yīng)用程序。相比較而言,由于用戶界面是以基于文本的 XAML 定義,而且通過(guò)使用 JavaScript 達(dá)到可編程性,因此 Silverlight 是一種開(kāi)放的技術(shù)。它允許開(kāi)發(fā)人員輕易地構(gòu)建與后端服務(wù)器交互的應(yīng)用程序。 以天氣預(yù)報(bào)應(yīng)用程序?yàn)槔H绻朐诳蛻舳藙?chuàng)建天氣預(yù)報(bào)應(yīng)用程序,可以構(gòu)建一個(gè)使用 Web 服務(wù)的 Java 小程序、ActiveX 控件或 Flash 應(yīng)用程序,將其部署入客戶端。然而,這增加了客戶端和服務(wù)器通信的需要。如果數(shù)據(jù)源是付費(fèi)訂閱服務(wù),該怎么辦?應(yīng)用程序部署人員必須驗(yàn)證所有數(shù)據(jù)服務(wù)訪問(wèn)者的許可證,這將占用構(gòu)建域特定業(yè)務(wù)邏輯的時(shí)間。 然而,如果應(yīng)用程序可以在服務(wù)器端組裝,并且所有數(shù)據(jù)傳回客戶端,問(wèn)題就迎刃而解了。使用 Expression Blend 這樣的工具,應(yīng)用程序用戶界面的模板可以組裝和表達(dá)為 XAML。開(kāi)發(fā)人員在運(yùn)行時(shí)就可以收集相關(guān)數(shù)據(jù)并將其插入模板,將最終的 XAML 返回至客戶端并呈現(xiàn)。客戶端不需要任何邏輯或連接(當(dāng)然啟動(dòng)時(shí)與服務(wù)器的初始連接除外),部署和管理客戶端也因此會(huì)相對(duì)容易。
構(gòu)建天氣預(yù)報(bào)應(yīng)用程序
這一部分將介紹如何構(gòu)建簡(jiǎn)單的 XAML 文件以實(shí)現(xiàn)天氣預(yù)報(bào)應(yīng)用程序(請(qǐng)參見(jiàn)圖?8)。完成后的天氣預(yù)報(bào)應(yīng)用程序,將為特定的郵政編碼呈現(xiàn)三日的氣溫預(yù)報(bào)。該郵政編碼作為瀏覽器內(nèi)地址的參數(shù)傳送至應(yīng)用程序。它還會(huì)呈現(xiàn)天氣的圖形表現(xiàn)形式、正確的日期、郵政編碼所在地名稱,以及天氣數(shù)據(jù)的動(dòng)畫(huà)。天氣預(yù)報(bào)應(yīng)用程序的所有 XAML 清單都可以在《MSDN 雜志》網(wǎng)站中找到。
圖 8?Silverlight 天氣預(yù)報(bào)應(yīng)用程序 (單擊該圖像獲得較小視圖)
圖 8?Silverlight 天氣預(yù)報(bào)應(yīng)用程序 (單擊該圖像獲得較大視圖) 文檔頂端是打開(kāi)的 Canvas 標(biāo)記。這是個(gè)基本容器,在上面可以繪制對(duì)象。Canvas 不只限于一個(gè),而且用 Canvas 組合相關(guān)元素是有用的。因此,舉例來(lái)說(shuō),每一天可以包括圖解、最高氣溫、最低氣溫和各種標(biāo)簽,所有這些都收集到一個(gè) XAML 模板中。圖?9 是某天的示例。在這種情況下,Canvas 包含了許多 TextBlocks 和 Image 控件。此 canvas 的給定名稱為 cnv2,置于屏幕中,不透明度為 0(意味著最初不可見(jiàn))。它的高度、寬度、左邊界和上邊界設(shè)置使其處于屏幕上特定的位置。 TextBlock 用于在 Silverlight 中呈現(xiàn)文本。這里有許多 TextBlock,有的用作硬編碼標(biāo)簽,比如存儲(chǔ)在名為 lblDegHigh2 和 lblDegLow2 的 TextBlock 中的“°F”標(biāo)簽。在 x:Name 屬性中可以找到名稱。 名為 lblDate2、lblHigh2 和 lblLow2 的 TextBlock 包含占位符信息—目前它們都硬編碼為特定的數(shù)據(jù)和溫度,但您的 ASP.NET 代碼將用指定郵政編碼的實(shí)時(shí)日期和溫度覆蓋它們。
定義淡入動(dòng)畫(huà)
Canvas 節(jié)點(diǎn)支持觸發(fā)器,觸發(fā)響應(yīng)事件的操作。在這種情況下,Canvas.Triggers 被設(shè)置為在頁(yè)面加載(如下所示)時(shí)觸發(fā): <Canvas.Triggers> <EventTrigger RoutedEvent=”FrameworkElement.Loaded”> <BeginStoryboard>... 這樣,當(dāng)頁(yè)面加載時(shí),觸發(fā)器觸發(fā),動(dòng)畫(huà) Storyboard 啟動(dòng)。動(dòng)畫(huà) Storyboard 定義動(dòng)畫(huà)行為。以下是用在 Canvas (包括特定日期天氣的文本占位符和圖形)上的動(dòng)畫(huà),名為 cnv1: <DoubleAnimationUsingKeyFrames BeginTime=”00:00:00” Storyboard.TargetName=”cnv1” Storyboard.TargetProperty=”(UIElement.Opacity)”> <SplineDoubleKeyFrame KeyTime=”00:00:00” Value=”0”/> <SplineDoubleKeyFrame KeyTime=”00:00:01” Value=”1”/> </DoubleAnimationUsingKeyFrames> 動(dòng)畫(huà)類型為 DoubleAnimationUsingKeyFrames。您將在 0 至 1 之間修正 Canvas 及其子項(xiàng)的不透明度(由 UIElement.Opacity 定義),使其在一段時(shí)間內(nèi)淡入。該時(shí)間由與動(dòng)畫(huà)相關(guān)聯(lián)的關(guān)鍵幀決定。 當(dāng) XAML 呈現(xiàn)時(shí),Storyboard 將啟動(dòng),使第一個(gè)元素在呈現(xiàn)開(kāi)始(0 秒時(shí))至 1 秒之后由不透明度 0 淡入至不透明度 1。觀察 XAML 您就會(huì)發(fā)現(xiàn),其他的 Canvas 將在 1 至 2 秒之間以及 2 至 3 秒之間分別淡入,產(chǎn)生一種逐漸出現(xiàn)的效果。 XAML 是一種有效的 XML,因此元素可以由其屬性命名,并通過(guò)該名稱找到它們。因此,舉例來(lái)說(shuō),第一天的高溫圖形占位符元素將如下所示: <TextBlock x:Name=”lblHigh1” Width=”67” Height=”59” Canvas.Left=”112” Canvas.Top=”30” FontFamily=”Tahoma” FontSize=”48” FontWeight=”Bold” Foreground=”#FFF64F12” Text=”27” TextWrapping=”Wrap”/> 此 TextBlock 被命名為 lblHigh1。服務(wù)(您將在下一步看到)使用 XMLDocument 加載模板 XAML,找到此名稱的節(jié)點(diǎn),利用如下所示的 C# 代碼改變其文本屬性: string xpath = “//d:TextBlock[@x:Name=’lblHigh1’]”; xNode = xmlDoc.SelectSingleNode(xpath, mng); string high = myResults[n - 1].MaxTemperatureF; xNode.Attributes[“Text”].Value = high;
創(chuàng)建 XAML 服務(wù)
當(dāng)您在網(wǎng)頁(yè)上使用 Silverlight 時(shí),控件采用的參數(shù)之一是 XAML 呈現(xiàn)的位置。在這種情況下,XAML 是動(dòng)態(tài)的,根據(jù)請(qǐng)求天氣的郵政編碼而變化。因此,您將創(chuàng)建一個(gè) Web 應(yīng)用程序,產(chǎn)生并返回 XAML,而呈現(xiàn)它的頁(yè)面將指向此頁(yè)面。這是構(gòu)建此 Silverlight 應(yīng)用程序的第一步。 使用 Visual Studio ? 創(chuàng)建新的 Web 項(xiàng)目。添加一個(gè)包含 silverlight.js 的 \js 目錄,方法與您處理前面的視頻播放器相同。為項(xiàng)目添加新的 Web 引用,引用如下定義的 Web 服務(wù): http://www.webservicex.net/WeatherForecast.asmx?WSDL 將服務(wù)命名為 weatherservice。為項(xiàng)目添加新的 Web 窗體并稱之為 Web Form XAMLSource.aspx。選擇“添加代碼”作為一個(gè)獨(dú)立頁(yè)面選項(xiàng)。確保代碼頁(yè)頂端有如下一套 using 指令: using System;using System.Data;using System.Configuration; using System.Collections;using System.Web;using System.Web.Security; using System.Web.UI;using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls; using System.Xml;using System.Xml.XPath; 在本節(jié)的余下部分,您將為 XAMLSource.aspx 上的 Page_Load 事件處理程序添加代碼。首先,將名為 Scene.xaml 的模板加載到一個(gè) XMLDocument 對(duì)象: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath(“Scene.xaml”)); 然后,設(shè)置讀取參數(shù)。您將使用查詢字符串參數(shù)(指定了要求的郵政編碼)來(lái)調(diào)用頁(yè)面: http://server/XamlSource.aspx?ZIP=<something> 要檢索參數(shù),可使用以下代碼: string strZip = “98052”;if (Request.Params[“ZIP”] != null) strZip = Request.Params[“ZIP”]; 這將啟動(dòng)本地保存參數(shù)化郵編的字符串,并且當(dāng)它未作為 HTTP 請(qǐng)求的一部分傳入時(shí),設(shè)置其默認(rèn)值。下一步,創(chuàng)建對(duì)處理天氣信息的 Web 服務(wù)的調(diào)用: weatherservice.WeatherForecast myWeather = new weatherservice.WeatherForecast(); weatherservice.WeatherForecasts myForecast = myWeather.GetWeatherByZipCode(strZip); weatherservice.WeatherData[] myResults = myForecast.Details; 此代碼創(chuàng)建了一個(gè) Web 服務(wù)代理(當(dāng)添加服務(wù)的 WSDL 的引用時(shí),由 Visual Studio 為您創(chuàng)建)的實(shí)例,稱為 myWeather。Web 服務(wù)在 WeatherForecasts 數(shù)據(jù)結(jié)構(gòu)內(nèi)返回?cái)?shù)據(jù),因此通過(guò)調(diào)用服務(wù)中的 GetWeatherByZipCode 方法(并對(duì)其傳遞一個(gè)字符串)創(chuàng)建此數(shù)據(jù)結(jié)構(gòu)的一個(gè)實(shí)例(稱為 myForecast)。預(yù)報(bào)對(duì)象的 Details 成員是一個(gè) WeatherData 類型的數(shù)組,因此 myResults 變量被設(shè)置為其實(shí)例。 下一步是初始化 XMLDocument 以便用 XPath 進(jìn)行搜索。由于 XML 使用 XAML 架構(gòu)作為部分元素的命名空間(用 x 做前綴,例如 x:Name),您將需要為頁(yè)面上的所有元素(包括沒(méi)有前綴的元素)定義命名空間。例如,您不能搜索與 XPath //TextBlock 匹配的節(jié)點(diǎn),但您可以指定默認(rèn)的命名空間采用一個(gè)新的前綴(此情形下使用 d 表示虛擬),然后搜索使用這個(gè)前綴的默認(rèn)節(jié)點(diǎn),即 //d:TextBlock。代碼如下: NameTable myn = new NameTable(); XmlNamespaceManager mng = new XmlNamespaceManager(new NameTable()); mng.AddNamespace(“d”, “http://schemas.microsoft.com/winfx/2006/xaml/presentation”); mng.AddNamespace(“x”, “http://schemas.microsoft.com/winfx/2006/xaml”); 現(xiàn)在您已可以使用 XPath,接下來(lái)您可以找到包含城市名稱的節(jié)點(diǎn),以及將其 Text 屬性更改為該郵政編碼所標(biāo)識(shí)的服務(wù)所在的城市名稱。 XmlNode xNode = xmlDoc.SelectSingleNode( “//d:TextBlock[@x:Name=’lblTownName’]”, mng); xNode.Attributes[“Text”].Value = myForecast.PlaceName + “,” + myForecast.StateCode; 類似地,您可以在其后的三天里循環(huán),找到包含所需位置的占位符節(jié)點(diǎn),并得到其值,把正確的值置于 XML 中,代碼如圖?10 所示。 現(xiàn)在您使用模板和正確的數(shù)據(jù)完整填充了您的 XML 文檔,最后一步是將其返回給調(diào)用方。要完成這一步,需要設(shè)置 MIME 類型,將 XMLDocument 對(duì)象的內(nèi)容直接寫(xiě)入響應(yīng)流,按如下所示: Response.ContentType = “text/xml”;Response.Write(xmlDoc.InnerXml); 下一步,刪除 Visual Studio 在 ASPX 頁(yè)面中給您的占位符 HTML。刪除 ASPX 文件中第一行之外的所有內(nèi)容。完成后應(yīng)該如以下代碼所示: <%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”XamlSource.aspx.cs” Inherits=”_Default” %> 最后一步是在解決方案中添加一個(gè)新的 XML 文件,稱為 Scene.xaml。在早先代碼中曾提及此文件。得到完整的天氣 XAML,并將其粘貼至此文件。現(xiàn)在就可以執(zhí)行頁(yè)面了,在瀏覽器中應(yīng)該能看到 XAMLSource.aspx 頁(yè)面返回的 XAML。
將 XAML 傳送至 Silverlight 前端
前面幾步構(gòu)建了模板 XAML,然后構(gòu)建了使用該 XAML 的 Web 窗體,使用 Web 服務(wù),將 Web 服務(wù)調(diào)用的結(jié)果放入 XAML 中正確的位置。下一步是提供包含 Silverlight 控件的頁(yè)面,并使其指向此 XAML 服務(wù)。 打開(kāi)前幾部分使用的站點(diǎn),添加一個(gè)新的 Web 窗體,稱為 Default.aspx。在 Default.aspx 中修改 HTML 代碼,如圖?11 所示。 重要部分在于調(diào)用 Silverlight.createObjectEx,在此靜態(tài)的 videoplayer.xaml 已經(jīng)由對(duì) XAML 源應(yīng)用程序的調(diào)用取代,在調(diào)用中傳遞 Default.aspx 頁(yè)面為郵政編碼接收的參數(shù): “WeatherSite/XamlSource.aspx?ZIP=<% if (Request.Params[“ZIP”] == null) Response.Write(“98052”); else Response.Write(Request.Params[“ZIP”]);%>” 此操作將請(qǐng)求參數(shù)放入頁(yè)面,并將其附加到一個(gè) URL,后者會(huì)調(diào)用最后一步創(chuàng)建的 XamlSource 頁(yè)面。隨后將對(duì) XamlSource 進(jìn)行調(diào)用,傳遞郵政編碼,獲得由 Silverlight 呈現(xiàn)的 XAML 文件。Default.aspx?ZIP=90210 的運(yùn)行結(jié)果見(jiàn)圖?8。
摘要
本文深入介紹了 Silverlight。您也看到一些應(yīng)用程序,它們不僅僅是鸚鵡學(xué)舌式地說(shuō)“Hello, World”,而是展示了諸如如何用 XAML 構(gòu)造用戶界面,如何與 JavaScript 關(guān)聯(lián)進(jìn)行交互,如何從單純的客戶端模式轉(zhuǎn)為基于服務(wù)器的模式,從而讓?xiě)?yīng)用程序更具靈活性。這種方法讓您了解到如何創(chuàng)建簡(jiǎn)單的視頻播放器,能接受視頻流的 URI 并回放,在博客等環(huán)境下使用非常理想。 此外,通過(guò)天氣監(jiān)視器(有非常簡(jiǎn)單的客戶端分布模型)的形式,您學(xué)會(huì)了如何構(gòu)建可感知數(shù)據(jù)的應(yīng)用程序。只需要讓 Silverlight 組件調(diào)用服務(wù)器,獲得正確的 XAML 并呈現(xiàn)它,從而形成豐富的瘦客戶端。 雖然 ASP.NET 和微軟堆棧為構(gòu)建這樣的 Web 應(yīng)用程序提供了高效率的平臺(tái),本文的下載部分也包含了此應(yīng)用程序的 Java 版本。此版本提供了與 ASP.NET 版本同樣的功能,即使用 Web 服務(wù)獲取數(shù)據(jù),然后將 XAML 加載到 XML Document DOM 中。它隨后找出模板數(shù)據(jù)的適當(dāng)節(jié)點(diǎn),在將完成的 XAML 寫(xiě)出成為 URI 之前,將他們的值替換為來(lái)自 Web 服務(wù)的值。隨即構(gòu)造 JSP(未列出),引用此 servlet 的 URL 以使用 Silverlight 呈現(xiàn) XAML。 Silverlight 的 Web 之路才剛剛開(kāi)始。憑借 XAML 呈現(xiàn)引擎的豐富性,以及使用標(biāo)準(zhǔn) Web 開(kāi)發(fā)技術(shù)的靈活性,Silverlight 非常值得添加到您的開(kāi)發(fā)人員工具箱里。有關(guān)詳細(xì)信息,請(qǐng)關(guān)注 MSDN Silverlight 開(kāi)發(fā)人員中心。
?
NEW: Explore the sample code online! - or - 代碼下載位置: Silverlight2007_06.exe (300KB)

轉(zhuǎn)載于:https://www.cnblogs.com/RuiLei/archive/2007/08/05/843952.html

總結(jié)

以上是生活随笔為你收集整理的Silverlight Expression[转]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

欧美日韩一区二区三区免费视频 | 99久久电影 | 欧美日韩一区二区在线观看 | av中文字幕在线播放 | 免费黄色在线网址 | 久久99国产综合精品免费 | 91夫妻自拍 | 欧美一级淫片videoshd | 久久大片网站 | 亚洲综合视频在线观看 | 国产一区在线不卡 | 午夜国产在线 | 午夜精品一区二区国产 | 2021久久| 日日日日 | 欧美天天干 | 在线午夜电影神马影院 | 毛片区| 免费日韩一区二区 | 色婷婷av在线 | 日本三级在线观看中文字 | 成人黄色片免费 | 亚洲成aⅴ人在线观看 | 亚洲精品高清在线 | 在线观看资源 | 久久9视频 | 在线观看aa | 国产99久久久国产精品免费看 | 精品一区二区在线观看 | 日本在线视频一区二区三区 | 国产日韩在线播放 | 免费日韩一级片 | 国产91亚洲 | 久久国产a| 色偷偷中文字幕 | 欧美性猛片, | 亚洲最新视频在线播放 | 久久精品免费电影 | 免费精品视频在线 | 伊甸园永久入口www 99热 精品在线 | 黄色av一区二区 | 在线观看日本韩国电影 | 成人av在线播放网站 | 欧美va天堂va视频va在线 | 日韩有色 | 亚洲精品久久久久久中文传媒 | 在线免费国产视频 | 久久艹艹 | 五月婷婷综合激情网 | 久色 网| 成人一级黄色片 | 狠狠操夜夜操 | 少妇bbw揉bbb欧美 | aaa免费毛片 | 国产成人精品一二三区 | 日日摸日日 | 一区二区电影网 | 色综合久久66 | 久久久久欠精品国产毛片国产毛生 | 在线观看中文字幕一区 | 久久精品久久久久久久 | 国产韩国日本高清视频 | 国产成本人视频在线观看 | 2020天天干夜夜爽 | 欧美一级片 | 国产福利91精品一区二区三区 | 欧美日本不卡视频 | 97免费在线观看视频 | 亚洲欧美va | 午夜av电影院 | 91久久国产综合精品女同国语 | 亚洲免费成人 | 国产成人福利在线 | 久久精品女人毛片国产 | 免费开视频 | 欧美日韩在线电影 | 国产免费又粗又猛又爽 | 日日干网址 | 免费看成人片 | 国产精品永久免费视频 | 日本精品视频一区 | 日韩影片在线观看 | 亚洲国产精品免费 | 国产成人高清av | 亚洲精品理论 | 夜夜爽88888免费视频4848 | 午夜久久电影网 | 欧美精品一区二区免费 | 国内精品久久影院 | 国产精品24小时在线观看 | 亚洲精品66 | 伊人婷婷综合 | 欧美另类交人妖 | 久久久综合香蕉尹人综合网 | 亚洲高清在线 | 一级α片 | 亚洲区另类春色综合小说校园片 | 国产手机视频 | 国产精品女主播一区二区三区 | 久久只有精品 | 欧美aaaxxxx做受视频 | 亚洲综合小说电影qvod | 免费看污黄网站 | 午夜精品久久久久99热app | 日韩美女av在线 | 精品久久亚洲 | 96av在线视频| 最新影院 | 五月天视频网 | 色综合久久中文字幕综合网 | 国产亚洲午夜高清国产拍精品 | 97精品国产97久久久久久春色 | 午夜免费福利片 | 国产在线视频在线观看 | 男女激情片在线观看 | 中文字幕av一区二区三区四区 | 天天插天天爱 | 丁香花中文字幕 | 国产中文字幕91 | 国产精品一区专区欧美日韩 | 午夜精品久久一牛影视 | www.天天草 | 综合天堂av久久久久久久 | 看片一区二区三区 | 国产精品永久 | 亚洲免费精彩视频 | 996久久国产精品线观看 | 亚洲天堂在线观看完整版 | 欧美一区二区免费在线观看 | 欧美日韩精品电影 | 日韩经典一区二区三区 | 天天射色综合 | 久久久久一区二区三区 | 久久tv| 亚洲美女在线一区 | 亚洲一级片av | 97成人资源站 | 丁香视频全集免费观看 | 亚洲成色777777在线观看影院 | 免费观看9x视频网站在线观看 | 超碰在线公开 | 免费看的黄色 | 五月天欧美精品 | 激情综合一区 | 99精品国产一区二区三区麻豆 | 婷婷福利影院 | 手机在线小视频 | 日日日干| 国产精品免费在线播放 | 亚洲色图av | 成年人免费看 | 日韩区视频 | 在线免费观看一区二区三区 | 久久精品视频免费播放 | 久草在线免费看视频 | 成人免费视频网站 | 中文字幕av最新更新 | 欧美午夜性 | 91av在线免费看 | 日韩在线视频网址 | 天天想夜夜操 | 美女黄频 | av黄色影院 | 天天操天天爽天天干 | 亚洲欧美日韩在线看 | 亚州精品天堂中文字幕 | 久久综合网色—综合色88 | 女人18毛片a级毛片一区二区 | 激情综合网天天干 | 中文字幕久久亚洲 | 日韩精品一卡 | 亚洲欧洲精品久久 | 91一区二区三区久久久久国产乱 | 免费av影视 | 久久免费国产精品1 | 免费在线播放黄色 | 欧洲精品在线视频 | 日韩av中文字幕在线免费观看 | 日本久久久久久 | 爱爱av网站 | 欧美一级电影在线观看 | 91香蕉视频 mp4 | a级一a一级在线观看 | 久久久69 | 激情综合网五月 | 成人在线视频一区 | 久久精品电影 | 51精品国自产在线 | 伊人婷婷综合 | av在线播放不卡 | 亚洲成人资源 | 亚洲国产成人在线观看 | 中文成人字幕 | 国产午夜一级毛片 | 91中文字幕视频 | 色av男人的天堂免费在线 | 久久只精品99品免费久23小说 | 精品免费一区二区三区 | 国产福利91精品张津瑜 | 黄色免费视频在线观看 | 国产精品免费视频观看 | 久久精品人人做人人综合老师 | 久久久黄视频 | 中国一级片在线播放 | 国产精品九九久久久久久久 | 国产精品视频永久免费播放 | 五月在线视频 | 婷婷六月天丁香 | 午夜在线免费观看 | 99精品视频精品精品视频 | 午夜精品久久久久久99热明星 | 日韩91av | 最新av网址在线观看 | 五月婷婷亚洲 | 色综合久久精品 | 91精品视频在线观看免费 | 免费视频二区 | 国产精品欧美久久久久久 | 国产精品美女久久久久久久 | 国产视频在线观看一区 | 男女激情麻豆 | 91九色性视频 | 久久久综合九色合综国产精品 | 亚洲久草网 | 韩日精品视频 | 日韩av在线不卡 | 天天射天天爱天天干 | 国产精品一区二区av影院萌芽 | 伊人五月天av | 久久久99精品免费观看app | 国内精品福利视频 | 精品亚洲成a人在线观看 | 中文字幕日韩有码 | 五月婷婷激情六月 | 久久手机精品视频 | 久久免费精品一区二区三区 | 在线成人欧美 | 啪啪免费观看网站 | 日本中文字幕电影在线免费观看 | 成 人 黄 色 免费播放 | 久久69精品久久久久久久电影好 | 美女视频网站久久 | 久在线观看视频 | 久久精品视频18 | 国产午夜亚洲精品 | 狠狠狠狠狠狠狠干 | 精品久久久久久亚洲综合网站 | 天天干天天干天天色 | 午夜视频一区二区三区 | 日韩a在线观看 | 亚洲精品视频第一页 | 99视频偷窥在线精品国自产拍 | 精品亚洲视频在线观看 | 日韩无在线 | 天天在线免费视频 | 在线 欧美 日韩 | 中文字幕色综合网 | 久久这里只精品 | 黄色电影网站在线观看 | 特级毛片aaa | 99热在线免费观看 | 国产午夜三级一区二区三桃花影视 | 国产精品毛片一区二区三区 | aaaaaa毛片 | www91在线观看 | 国产视频在线免费 | 中文字幕在线一区二区三区 | 福利一区二区三区四区 | 国产伦理一区二区三区 | 97超碰资源总站 | 免费无遮挡动漫网站 | 99精品视频在线免费观看 | 免费观看福利视频 | 337p日本欧洲亚洲大胆裸体艺术 | 亚洲国产日韩在线 | 国产做a爱一级久久 | а天堂中文最新一区二区三区 | 欧美性猛片 | 亚洲一一在线 | 久草在线视频网 | 在线观看黄色大片 | 丁香六月天婷婷 | 天天色天天爱天天射综合 | 亚洲国产日韩一区 | 久草97| 亚洲无线视频 | 97精品在线视频 | 日韩av高清在线观看 | 黄色在线观看免费网站 | 日本少妇高清做爰视频 | 久久久福利视频 | 欧美色图另类 | 欧美精品xx | 超碰人人在 | 国产精品久久久久免费 | 久久亚洲婷婷 | 久久一区二区三区国产精品 | 国内久久久久 | 免费人成在线观看 | 亚洲黄色av网址 | 免费男女羞羞的视频网站中文字幕 | 国产免费作爱视频 | 国产精品人人做人人爽人人添 | 99久e精品热线免费 99国产精品久久久久久久久久 | 久久伦理电影网 | 中文字幕亚洲欧美日韩 | av中文字幕第一页 | 久久av在线 | 国产私拍在线 | 特级免费毛片 | 国产一级高清视频 | 久久综合在线 | 成人av在线亚洲 | 91在线视频免费播放 | 中文 一区二区 | 美女一二三区 | 狠狠躁日日躁夜夜躁av | 麻豆视频免费看 | 91麻豆精品国产91久久久无限制版 | 成人免费大片黄在线播放 | 欧美特一级| 国产亚洲婷婷免费 | 国内精品久久久精品电影院 | 免费看的毛片 | 久久久男人的天堂 | 三级黄色大片在线观看 | 欧美性色xo影院 | 特片网久久 | 在线看国产精品 | 欧美一级艳片视频免费观看 | 日韩在线观看第一页 | 国产在线传媒 | 久久国产成人午夜av影院宅 | 亚洲一二视频 | 中文字幕 国产专区 | 午夜精品视频免费在线观看 | 国产美女视频网站 | 亚洲免费激情 | 欧美精品亚洲二区 | 欧美成年黄网站色视频 | 国产高清视频色在线www | 中文字幕麻豆 | 久久精品视频在线免费观看 | 国产精品久久久久久久久岛 | 99久精品视频 | 精品久久综合 | 国产视频美女 | 99热在线观看免费 | 国产精品色视频 | 97天天综合网| 天天碰天天操视频 | 91夫妻自拍 | 精品福利在线视频 | 国产成人一区二区三区电影 | 色视频 在线 | 国产91成人在在线播放 | 婷婷六月天天 | 国产精品欧美日韩在线观看 | 国产一级片一区二区三区 | 91在线日本 | 久久午夜电影 | 久久精品国产免费 | 久久免费视频在线观看6 | 在线免费观看视频a | 日韩啪视频 | 国产亚洲一区二区三区 | 色婷婷狠狠五月综合天色拍 | 亚洲国产精品传媒在线观看 | av一本久道久久波多野结衣 | 免费av网站观看 | 精品久久久久久久久久久院品网 | 六月色丁香 | 欧美大码xxxx | 欧美日韩综合在线观看 | 中文字幕在线观看的网站 | a天堂一码二码专区 | 久久永久视频 | 五月婷色 | 国产做爰视频 | 日韩精品一区二区三区水蜜桃 | 人人草在线视频 | 精品久久久久久久久久久久久久久久久久 | 97碰碰视频 | 香蕉在线视频播放网站 | 国产精品99久久久久久久久久久久 | 亚洲情感电影大片 | 亚洲一二三在线 | 奇米影视8888 | 日韩视频免费看 | 国产亚洲情侣一区二区无 | 99人成在线观看视频 | 黄色片网站大全 | 国产亚洲在线视频 | 国产色婷婷精品综合在线手机播放 | 亚洲国产免费看 | 欧美日在线观看 | 国产精品女 | 精品国产乱码一区二区三区在线 | 亚洲毛片久久 | 在线91精品 | 麻豆国产露脸在线观看 | 久久久在线免费观看 | 超碰在线免费福利 | 久久国产免费视频 | 色偷偷中文字幕 | 久久国产精品久久w女人spa | 国产精品欧美 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩视频区 | 人人精久| 欧美地下肉体性派对 | 久久av中文字幕片 | 亚洲欧美精品一区二区 | 在线观看中文字幕亚洲 | 91亚洲精品国产 | 天天综合久久 | 免费av网址在线观看 | 亚洲视频999 | 国产精品成人免费 | 国产网红在线观看 | 成人午夜电影网站 | 国产亚洲激情视频在线 | 日韩经典一区二区三区 | 中文字幕 国产 一区 | 国产精品自产拍在线观看网站 | 亚洲精品xx | 国产精品久久久久久婷婷天堂 | 日韩在线观看你懂得 | 91麻豆精品国产 | 99色在线视频 | av福利网址导航大全 | 中文理论片 | 波多野结衣在线中文字幕 | av免费观看网站 | 日日爽视频 | 久久永久免费 | 美女视频黄频大全免费 | 久操中文字幕在线观看 | 久久成人黄色 | 欧产日产国产69 | 精品一区二区在线免费观看 | 成人aⅴ视频 | 欧美日韩国产二区 | 国产美女久久 | 麻豆视频免费看 | 91看片淫黄大片一级在线观看 | av在线a| 成人羞羞视频在线观看免费 | 精品视频专区 | 婷婷深爱五月 | 在线免费观看黄色小说 | 黄色www| av在线免费不卡 | 中文字幕在线国产精品 | 色婷婷视频 | 国产亚洲视频在线免费观看 | 一级黄色片在线免费看 | 色婷婷国产精品一区在线观看 | 91污视频在线观看 | 久久久91精品国产一区二区精品 | 国内精品久久久久影院日本资源 | 欧美另类sm图片 | 久久视频精品 | 日韩天天干 | 国产一级在线观看 | 亚洲伦理精品 | www.色在线| 国产日韩欧美在线播放 | 少妇bbw搡bbbb搡bbb | 高清在线观看av | 麻豆视频在线免费 | 久久婷婷激情 | www.五月天激情 | 亚洲精品午夜视频 | 天天天干天天射天天天操 | 欧美人人 | 久久国产精品免费一区二区三区 | 精品美女在线视频 | 五月天激情综合网 | 97国产在线视频 | 热久久免费国产视频 | 国产1区2 | 欧美片一区二区三区 | 成年人视频在线免费 | 久久国产美女视频 | 久久调教视频 | 欧美日韩91| 日韩中文字幕国产精品 | 久久99国产精品视频 | 波多野结衣最新 | 成人国产精品久久久久久亚洲 | 日本中文字幕在线观看 | 日韩精品一区在线观看 | 色av色av色av| 国产一区二区三区免费观看视频 | 精品美女久久 | 久久精彩 | 久久美女免费视频 | 天天躁天天操 | 国产分类视频 | 久久久精品一区二区三区 | av免费在线看网站 | 三级视频片 | 国产免费高清 | 国产成人一区二区三区在线观看 | 91中文字幕网| 久久人人做 | 狠狠狠狠狠狠天天爱 | 又大又硬又黄又爽视频在线观看 | 久久黄网站 | 婷婷视频| 亚洲欧美日韩一区二区三区在线观看 | 天天天天爱天天躁 | 天天草天天干天天射 | 欧美狠狠色 | 久久精品人人做人人综合老师 | 国产96在线观看 | 一级片免费观看 | 亚洲精品9 | 97在线观看免费视频 | 337p日本欧洲亚洲大胆裸体艺术 | 91高清免费在线观看 | 色综合久久久久综合 | 国产超碰在线观看 | 国产精品一区二区三区在线 | 精一区二区 | 色天天中文 | 一区二区久久久久 | 香蕉一区 | 在线观看一区视频 | 97超碰总站 | 久久久久久综合网天天 | 久久精品视频3 | 日韩精品极品视频 | 天天射天天色天天干 | 日韩精品不卡在线 | 在线播放国产精品 | 国产在线观看91 | 精品一区二区在线观看 | 999在线视频| 日韩专区av | 香蕉在线播放 | 美腿丝袜一区二区三区 | 亚洲婷婷综合色高清在线 | 国产精品成人国产乱一区 | 日本黄区免费视频观看 | 国产精品1000 | 黄色大片av| 中文字幕在线视频国产 | 美女视频免费一区二区 | 欧美一区二区三区免费观看 | 国产精品成人久久 | 免费的黄色的网站 | 亚洲日本欧美在线 | 中文字幕黄色网址 | 国产一区高清在线 | 欧美视频在线二区 | 久久免费在线观看 | 日韩欧美69 | 亚洲麻豆精品 | 人人爽人人片 | 色综合久久五月 | 久久中文欧美 | 五月天高清欧美mv | 亚洲欧洲日韩在线观看 | 午夜成人影视 | 天天爽网站 | 成人蜜桃视频 | 欧美成人h版电影 | 欧洲激情综合 | 在线天堂8√ | av免费成人 | 一区二区三区在线观看免费视频 | 在线观看一级视频 | 91看片一区二区三区 | 久久精品5| 玖玖爱免费视频 | 九九九热精品免费视频观看网站 | 亚洲少妇xxxx | 国产精品观看 | 国产视频69 | 2021国产精品 | 日韩欧美在线观看一区二区 | 天天色天天 | www.午夜色.com | 人人澡人人爱 | 色丁香综合 | 日韩,中文字幕 | 久久a热6| 亚洲综合涩| 亚洲国产最新 | 丁香av在线| 一区二区在线电影 | 亚洲爱爱视频 | 狠狠色综合欧美激情 | 黄色av免费在线 | 久久久久久久久久久福利 | 国产精品原创 | av黄色影院| 久久国产a| 日日夜夜中文字幕 | 9ⅰ精品久久久久久久久中文字幕 | 久久久久女教师免费一区 | 日韩精品一区二区三区第95 | 玖草在线观看 | 久久婷五月| 美女网站色免费 | 992tv在线观看网站 | 亚洲免费一级 | 黄色网www | 欧美色图亚洲图片 | 欧美国产一区二区 | 在线观看日韩 | 中文有码在线视频 | 最新日韩中文字幕 | 91精品视频网站 | 欧美日韩国产亚洲乱码字幕 | 日韩高清av在线 | 国产日韩一区在线 | 成年人国产在线观看 | 少妇视频一区 | 欧美十八 | 91九色性视频 | www.成人精品 | 免费人成网ww44kk44 | 日韩欧美视频一区 | 免费一级特黄毛大片 | 美女视频黄色免费 | 青草视频在线看 | 9999国产| 久久久精品视频网站 | 成人污视频在线观看 | 国产99久久久精品视频 | 成人小视频在线观看免费 | 色欧美88888久久久久久影院 | 色黄www小说 | 成人在线视频你懂的 | 激情网五月婷婷 | 成人毛片在线观看 | 日日干美女 | www免费看片com| 99免费国产| 在线免费av网站 | 亚洲一区精品人人爽人人躁 | 91精品国产乱码久久桃 | 91在线播 | 国内精自线一二区永久 | av成人免费 | 亚洲免费精彩视频 | 久久国产系列 | 日本黄色免费电影网站 | a v在线视频 | 97涩涩视频 | 欧美aⅴ在线观看 | 久草久热 | 91成人精品在线 | 久久国产精品久久精品国产演员表 | 久久精彩 | 国产亚洲精品美女久久 | 黄色一区二区在线观看 | 韩国在线视频一区 | 成人一级影视 | 免费亚洲成人 | 99综合视频 | 欧美激情精品久久久久久免费 | 亚洲欧美日韩国产一区二区三区 | 激情综合电影网 | 久久99热精品这里久久精品 | 美腿丝袜av | 激情综合婷婷 | 99久久精品国产欧美主题曲 | 精品国产乱码久久久久久1区2匹 | 国产精品成人一区二区 | 中文字幕在线播放一区二区 | 人人干天天射 | 夜夜躁日日躁狠狠躁 | 久久观看免费视频 | 在线视频观看你懂的 | 精品久久久久久国产偷窥 | 午夜精品婷婷 | 国产精品欧美久久久久无广告 | 国产精品美女视频 | 93久久精品日日躁夜夜躁欧美 | 日本69hd | 特级西西444www大胆高清无视频 | 97久久精品午夜一区二区 | av一区二区三区在线观看 | 天天色天天色天天色 | 国产录像在线观看 | 国产日韩欧美综合在线 | 2024av | 黄色小说网站在线 | 国产精品国产三级在线专区 | 肉色欧美久久久久久久免费看 | 日韩精品一区二区三区视频播放 | 国产真实精品久久二三区 | 国产成本人视频在线观看 | 久久免费99 | 精品国产视频在线观看 | 麻豆 91 在线 | 欧美日韩69| 中文字幕在线视频精品 | 久久久久蜜桃 | 久久99国产精品自在自在app | www国产亚洲精品久久麻豆 | 天天色天天骑天天射 | 一级片色播影院 | 国产性xxxx | 一区二区三区动漫 | 中文字幕视频在线播放 | aaa日本高清在线播放免费观看 | www.色的| 69国产精品视频免费观看 | 色婷婷五 | 久久综合精品国产一区二区三区 | 亚洲综合小说 | 干天天| 色福利网 | 亚洲综合狠狠干 | 国产精品一区二区久久久久 | 天天干天天碰 | 久久99亚洲热视 | 欧美另类激情 | 九九九在线 | 丝袜+亚洲+另类+欧美+变态 | 中文字幕在线免费观看视频 | 四虎国产精品免费观看视频优播 | 国产麻豆剧果冻传媒视频播放量 | 九九热国产视频 | 久久久亚洲精品 | 中文在线www| www免费看片com| 国产黄色av影视 | 综合精品在线 | 久久精品久久久久 | 国产精品久久久久久久久久久久午夜 | 久久久久在线观看 | av在线亚洲天堂 | 亚洲专区在线播放 | 精品在线观看免费 | 玖玖精品视频 | 久久99在线视频 | 日日夜夜91 | 欧美国产亚洲精品久久久8v | 中文字幕一区二区三区四区在线视频 | 日韩免费观看视频 | 亚洲日本一区二区在线 | 午夜精品一区二区三区在线观看 | 激情视频亚洲 | 国产精品美女久久 | 美女黄频视频大全 | 一级性生活片 | 99久久夜色精品国产亚洲96 | 在线免费观看国产黄色 | 精品视频免费在线 | 亚洲精品一区中文字幕乱码 | 久草在线免费色站 | 色综合 久久精品 | www日韩视频| 国产99在线| 99久久99视频只有精品 | 97久久精品午夜一区二区 | 岛国精品一区二区 | 成人在线免费观看视视频 | 日韩欧美视频免费在线观看 | 色婷婷亚洲婷婷 | 天天操天天摸天天爽 | 国产三级久久久 | 国产精品久久久久久久久费观看 | av网在线观看 | 日韩高清精品一区二区 | 色综合久久综合中文综合网 | 国产精品片| 91网站在线视频 | 欧美日韩高清在线 | 99精品乱码国产在线观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 波多野结衣视频网址 | 女人18毛片a级毛片一区二区 | 国产精品欧美久久久久三级 | 成人在线观看免费视频 | 婷婷六月综合亚洲 | 日本在线观看一区二区三区 | 精品av在线播放 | 蜜臀av一区二区 | 国产中文字幕av | 97在线成人| 最新国产福利 | 西西444www| 福利在线看片 | 久久在草| 精品a级片| 一区二区久久久久 | 婷婷资源站 | 天天搞夜夜骑 | 亚洲精品国产品国语在线 | 久草在线免费资源 | 亚洲激情综合网 | 欧美午夜视频在线 | 色婷婷99 | 亚洲欧美激情精品一区二区 | 午夜精品视频免费在线观看 | 久久伦理电影 | 日本在线观看中文字幕无线观看 | 亚洲视频免费 | 在线观看网站你懂的 | 国产在线看一区 | 国产 日韩 欧美 在线 | 九色在线 | 久久成人精品视频 | 午夜天使 | 在线观看视频你懂的 | 国产99区 | 国产在线不卡 | 亚洲成人精品在线 | 国产精品久久久久久久久久久久午夜 | 超级碰碰碰免费视频 | 日韩精品视频在线观看网址 | 在线一二三四区 | 日韩一级精品 | 正在播放国产精品 | 国产精品99久久久久久武松影视 | 精品国产乱码 | 免费日韩电影 | 日本精品一区二区三区在线播放视频 | 国产传媒中文字幕 | 精品嫩模福利一区二区蜜臀 | 欧美 日韩 视频 | 日韩精品免费在线观看视频 | 国产经典av | 黄污在线观看 | 欧洲视频一区 | 国产69久久久欧美一级 | 国产免费黄视频在线观看 | 激情网站网址 | 狠狠躁夜夜a产精品视频 | 97视频播放 | 日韩欧美电影网 | 色婷婷久久久 | 日韩中文字幕一区 | 日本久久中文 | 国产在线欧美在线 | 中文字幕亚洲欧美日韩2019 | 亚洲国产精品久久久久婷婷884 | 成人免费在线播放 | 精品国产一区二区三区四 | 亚洲欧美国内爽妇网 | 在线免费av电影 | 国产美女免费视频 | 午夜av电影| 亚洲精品xx | 91资源在线视频 | 91麻豆精品国产91久久久久 | 亚洲第一区在线播放 | 国产精品久久久久久婷婷天堂 | 99精品欧美一区二区三区 | av在线官网| 国产精品一区二区免费视频 | 九九热只有精品 | 久久成人在线 | 国产一线二线三线在线观看 | 中文字幕免费一区二区 | 久久精品直播 | 国产免费av一区二区三区 | 少妇av网 | 色激情在线 | 狠狠色丁香婷婷综合久久片 | avlulu久久精品 | 国产99免费| 国产精品一区二区电影 | 91av久久| 国产午夜在线观看 | 91视频久久久久久 | 国产精品观看在线亚洲人成网 | 国产黑丝一区二区 | 一区二区影院 | 中文字幕成人网 | 久草视频在线新免费 | 午夜在线国产 | 久热超碰 | 久久成人精品视频 | 最新久久免费视频 | 亚洲一区日韩精品 | 五月婷婷综合色拍 | 国产精品久久久久一区二区三区 | 美女黄频在线观看 | 国产精品一区二区三区久久 | 在线观看视频日韩 | 中文字幕在 | 精品美女国产在线 | 国产精品久久久久久久久软件 | 国产精品中文久久久久久久 | av青草| 久久国产精品99久久久久 | 92av视频| 欧美大jb | 色网站国产精品 | 中文免费在线观看 | 黄色1级毛片 | 亚洲美女视频在线 | 色视频网站免费观看 | 久久超碰99 | 国产在线毛片 | 久久高清免费视频 | 成人综合婷婷国产精品久久免费 | 在线视频日韩一区 | 中午字幕在线 | 成人av直播 | 久久99热精品这里久久精品 | 就操操久久| 黄av免费在线观看 | 成人免费观看大片 | 国产免费a | 免费进去里的视频 | 亚洲视频第一页 | 国产精品手机播放 | 奇米网8888 | 成人午夜片av在线看 | 成人a免费看 | 91精品在线视频观看 | 97手机电影网 | 成年人黄色免费视频 | 日本 在线 视频 中文 有码 | 极品久久久久 | 91九色蝌蚪视频网站 | 日本精油按摩3 | av免费高清观看 | 日韩.com| 91精品专区 | 国内精品久久久久影院一蜜桃 | 人人讲下载 | 久久人人看 | 中文字幕超清在线免费 | 天天操天天操天天操天天 | 中文字幕久久精品亚洲乱码 | 操操操av| 精品国产日本 | 国产一区二区三区在线 | 日韩免费三级 | 亚洲精品午夜视频 | 91人人人| 色婷婷综合五月 | 日韩理论在线视频 | 中文字幕日韩伦理 | 亚洲天堂网视频在线观看 | 在线看片一区 | 91在线播放视频 | 日韩激情片在线观看 | 婷婷丁香激情网 | 亚洲天堂精品视频在线观看 | 99视频国产精品 | 999视频在线播放 | 国产成人久久久77777 | 国产综合在线视频 | 日本精品久久久久 | 91在线看 | 欧美va在线观看 | 国产视频91在线 | 成人av电影在线观看 | 精品久久久免费视频 | 菠萝菠萝蜜在线播放 | 久久午夜免费观看 | 国产精品在线看 | 国产超碰在线观看 | 超碰最新网址 | 97精品免费视频 | 91精品一区二区三区蜜臀 | 国产超碰在线 | 麻豆传媒视频观看 | 免费高清国产 | 色婷丁香| 青青久视频 | 高清不卡毛片 | 国产精品一区二区三区久久久 | 亚洲精品国偷拍自产在线观看 | 久久久久国产视频 | 久久久久欠精品国产毛片国产毛生 | 欧美成人一二区 | 久久专区 | 视频一区在线免费观看 | 国产婷婷视频在线 | 欧美日韩另类在线 | 草久久久久 | 女人18精品一区二区三区 | 国产视频手机在线 | 日韩高清免费在线观看 | 国产成人三级在线观看 | 国产v在线播放 | 在线99热| 97国产在线播放 | 成人免费在线视频 | 在线视频一区二区 | 国产一区在线视频观看 | 久久99精品久久久久久清纯直播 | 久草 | 又黄又爽又湿又无遮挡的在线视频 | 欧美色插| 国产免费激情久久 |