【IT168技术文档】
简介
Microsoft Silverlight 是一种跨浏览器、跨平台的插件,用来在网络上发布具有丰富交互性的内容。
Silverlight 1.0 版本的特性如下:
* 基于可扩展应用标记语言(XAML,Extensible Application Markup Languag)的声明式内容格式;
* 基于 JavaScript 的编程模型;
* 内容发布的可选模式:嵌入到 HTML 页面中、作为松散格式的文件或者以 zip 压缩包的形式;
* 媒体支持,包括 Windows Media Video (WMV)、Windows Media Audio (WMA)、MPEG Audio Layer-3 (MP3),采用 Windows Media Services 或者持续下载的方式。也可以支持客户端的播放列表 (ASX 文件);
* 文本支持;
* 图像 (PNG 和 JPG) 支持;
* 平滑的矢量图(Anti-aliased vector)引擎;
* 动画;
* 鼠标和键盘输入;
* HTTP 下载器(downloader);
* Ink 支持;
* 全屏展现支持。
注意:你可以在 Silverlight 概述 里找到有关这些特性的更详细信息。
Silverlight 架构
Silverlight 运行时能够让用户在一个交互性的应用中集成 媒体、矢量图、文本和图像。本节讨论一些 Silverlight 1.0 中提供的主要内容。
Silverlight 1.0 架构

Browser Plug-in
在整个架构的最上层,是也嵌入到 Microsoft Internet Explorer、Mozilla Firefox 或者 Apple Safari之内的浏览器插件。SDK 提供了推荐使用的嵌入和部署插件。
浏览器插件主要提供下面的机制:
* 设置和修改 XAML 内容能够被运行时执行;
* 从运行时得到对象,供 JavaScript 使用;
* 不断地下载内容。
插件的展现性能随嵌入参数和内容的复杂性变化。在开发期间,推荐将 settings.EnableFrameRateCounter 属性设置为 true,以便在浏览器状态栏里显示加载的帧的速率,找到性能的瓶颈。
嵌入参数对应用的连贯性和性能的影响主要包括:
* isWindowless - 将这个参数设置为 false 将会确保有最高的帧速率,在不同的平台上将会有更好的显示质量。带窗口的显示是对插件进行操作的非常好的模式。
* Background - 如果需要无窗口的模式,采用不透明的背景比半透明或者完全透明的背景能带来更好的性能。尤其应当将背景设置为'#FF000000',这里的头2两个字符是 FF。透明背景性能的降低主要来自于浏览器对每一帧控件下面内容的重新展现和对大量控件顺序的溶合上,在某些平台和浏览器上这种组合更慢。
如果你的程序需要使用无窗口和透明背景的显示模式,它的性能则主要依赖于操作系统和浏览器。我们建议你在所有的目标操作系统和浏览器上测试你采用透明背景的所有应用程序。提高性能其它建议参见 性能小贴士.
元素树
Silverlight 应用程序的核心部分是对象树,例如 Path 对象, Image 对象和 MediaElement 对象,你可以对这些对象进行控制,创建出应用程序。这个树就称之为 元素树,和 HTML 元素树的概念类似。然而,它比 HTML 有更加丰富的图形元素,编程模型则和 HTML 的文档对象模型(DOM,Document Object Model)类似。树的遍历顺序控制着对象在应用程序中显示的顺序。要构建一个元素树,你可以使用随 Silverlight 一起提供的 XAML 解析器(通过设置插件的源代码实现),或者采用 CreateFromXaml 方法。
你可以对元素树做如下的修改:
* 采用 JavaScript API 改变子对象的关系,设置内容的属性。
* 可以采用动画系统随时修改属性值。
如果你的应用程序需要依赖元素树的每一帧,我们建议你采用不同操作系统和浏览器的 JavaScript 引擎测试你应用程序的性能。随时间的推移使用帧的推荐方法是通过动画系统实现,这种方式是平台无关的,也是浏览器无关的,是最有效的方法。
有关元素树的更多信息,参见 Silverlight 对象模型。