现在的位置: 首页 > 综合 > 正文

Silverlight 简介

2014年02月19日 ⁄ 综合 ⁄ 共 2864字 ⁄ 字号 评论关闭
 Silverlight 是为 Web 页面内容设计的,它与主机进行连接(也就是说,它不能离线工作),可以极大地引起用户的兴趣,并且它可以任何浏览器中显示。Silverlight可以应用在一下 Web 应用场景中:

  • Web 媒体 - 带有事件、视频的品牌回放,带有广告的营销组合和动态视频,音频回复等等;
  • 页面中局部丰富的内容(Mini 程序) - 非正式的游戏和小东西;
  • Web 可视化元素 - 导航属性,数据可视化和广告等。

其实就是微软实现了一个类似于Flash的东东,由把这个东东跟.NET框架绑了起来

Silverlight 特性

Silverlight 1.0 (使用 JavaScript) 具有以下的特性:

  • 丰富的内容功能:使用 Silverlight ,你可以添加很多丰富的内容,包括视频、动画、文字、2-D 图像和一些 Web 页面的可视化效果。这些特性可以在任何浏览器中工作,比单纯使用 HTML 能带来更丰富的用户体验。
  • XAML 标记语言:基于 Silverlight 的应用采用一种强大的、公开的标记语言 XAML (Extensible Application Markup Language)作为创建吸引人的图像、动画和媒体的基础。XAML 与 HTML 是类似的,但它更强大,更具扩展性。
  • 工具:类似 Microsoft Expression Blend 和 Microsoft Expression Design 这样的工具能够提高创建 Silverlight 应用的设计人员和开发人员的效率和协作。
  • 与服务器集成: XAML 与 ASP.NET AJAX 无缝集成,比单独使用 ASP.NET AJAX 能够提供更丰富的表现能力。
  • 无需编译: JavaScript 是由浏览器解释的,不需编译。你可以将 javaScript 代码直接嵌入在 HTML 文件中,只需简单地刷新页面就能测试你修改的效果。
  • 很小的插件下载:所有的 Silverlight 应用需要客户端下载一个很小的插件(1-3 MB),安装简单并且速度快。

 

Silverlight 1.0 architecture

Browser Plug-in

在整个架构的最上层,是也嵌入到 Microsoft Internet Explorer、Mozilla Firefox 或者 Apple Safari之内的浏览器插件。SDK 提供了推荐使用的嵌入和部署插件。

浏览器插件主要提供下面的机制:

  • 设置和修改 XAML 内容能够被运行时执行;
  • 从运行时得到对象,供 JavaScript 使用;
  • 不断地下载内容。

元素树

Silverlight 应用程序的核心部分是对象树,例如 Path 对象, Image 对象和 MediaElement 对象,你可以对这些对象进行控制,创建出应用程序。这个树就称之为 元素树,和 HTML 元素树的概念类似。然而,它比 HTML 有更加丰富的图形元素,编程模型则和 HTML 的文档对象模型(DOM,Document Object Model)类似。树的遍历顺序控制着对象在应用程序中显示的顺序。要构建一个元素树,你可以使用随 Silverlight 一起提供的 XAML 解析器(通过设置插件的源代码实现),或者采用 CreateFromXaml 方法。

JavaScript 编程模型

Silverlight 1.0 中所有的对象都可以通过 JavaScript 对象模型进行访问。宿主页面可以调用 content.FindName 方法得到一个命名元素,进而可以设置它的属性或者调用它公开出来的方法。此外,我们还可以对元素或者控件附加键盘和鼠标事件处理器。事件处理器卡可以让用户得到 javaScript 的回调,相应用户的输入。

动画系统

通过添加移动和交互性,动画能够增强作品的图形效果。通过变换背景颜色或者进行动态变换,可以创造出戏剧性的屏幕变换效果或者有益的视觉暗示。我们可以创建基本的动画,也可以使用关键帧创建更复杂更强大的动画。此外,通过附加事件,可以实现动画的交互。更多信息,参见 动画概述

图像缓存

当图像引用一个 URL 时,图像会下载到本地,并以解码后的形式进行缓存。如果你在你的程序内多次引用这张图片,它将从缓存内提取,并迅速使用。不同的插件引用同一图像时,则是利用浏览器的缓存,但每个 Silverlight 程序都需要解码一次。

为了达到最佳效果,要下载的图像的解析度应当图像的显示尺寸接近。如果图像的解析度远大于显示尺寸,将采用双线性过滤,防止显示变形。如果图像的解析度远小于显示尺寸时,图像将变得模糊。

此外,选择图像的解析度与显示尺寸解决将下载次数减少到最小。如果不得已需要缩放特效,请在服务器上存放多个解析度的图像,在动画的过程中动态切换不同的图像源。

文字引擎

文字引擎将在TextBlock内按流的方式,经过简单格式化和为了精确的固定格式的显示而明确定位字形后显示文本字符串,它采用系统指定的字体(这值限于各种平台上都有的字符集)或者采用指定的字体 URI,它会指向一个 TrueType 字体。

字形缓存

字形缓存通常由文本引擎使用,从字体文件产生字形以便展现。为了每一个特定目标方案的可读性,这种字形是经过优化的,因此,在文字显示的第一帧或者缩放文字时,需要进行字形的初始化。一旦初始化完毕,文字的滚动或者转换就不需要再下载了。

如果你的程序需要动态按比例变化大块文字,更好的办法是选用矢量的表现方法。

媒体管道

视频管道通过持续的HTTP下载或者HTTP流(WMS服务器)的方式得到内容,调用解码器解码视频,采用展现系统和音频引擎显示出来。

视频可以反复显示,缩放到全屏,在不同形状的路径、旋转等效果上由VideoBrush在不同的位置使用。

如果你的程序从窗口模式转换到全屏显示,我们推荐使用视频刷,在全屏模式下引用前面正在播放的媒体元素,这可确保这种转换是无缝的,并且不需要重新缓冲。

如果程序的内容必须对视频中的事件做出反应,你可以在视频流里插入标记,它将在程序里触发。

关于在应用中使用媒体的更多信息,请参见 媒体概述

解码器

Silverilght 1.0 支持 PNG 和 JPG 格式的图像, Windows Media Video (WMV)格式的视频文件和 Windows Media Audio (WMA) 和 MP3 格式的音频文件。

下载器和打包

XAML、图像、字体或者其它数据,能够以压缩(zip)文件的格式打包,使用Downloader对象按需下载。我们建议你在低速的网络带宽下清空浏览器缓存测试你的程序,以确保有效的下载性能。如果你的程序的初始化加载时间很长,你应当提供一个正在加载的画面。

Ink 支持

Ink 支持指的是使用画笔、触摸屏或者鼠标作为输入源进行手写或者手画内容。Silverlight 提供一个 InkPresenter 对象,接收基于Ink的输入。要识别文字,请把数据发送到服务器。例子可以从 Silverlight Gallery中找到。关于这一特性的更多信息,参见 Silverlight 中的 Ink 支持

 

1.http://silverlight.cn/(学习社区)

2.http://dotnet.aspx.cc/SilverlightSDK/ (sdk中文版)


几个学习的网站介绍: Silverlight 1.0 架构

抱歉!评论已关闭.