Silverlight 1.0 架构
2008-01-25 11:39:20 来源:ITPUB论坛 作者: 点击:
Microsoft Silverlight 是一种跨浏览器、跨平台的插件,用来在网络上发布具有丰富交互性的内容。
。随时间的推移使用帧的推荐方法是通过动画系统实现,这种方式是平台无关的,也是浏览器无关的,是最有效的方法。
有关元素树的更多信息,参见 Silverlight 对象模型。
JavaScript 编程模型
Silverlight 1.0 中所有的对象都可以通过 JavaScript 对象模型进行访问。宿主页面可以调用 content.FindName 方法得到一个命名元素,进而可以设置它的属性或者调用它公开出来的方法。此外,我们还可以对元素或者控件附加键盘和鼠标事件处理器。事件处理器卡可以让用户得到 javaScript 的回调,相应用户的输入。
注意 当 JavaScript 运行时,插件将会停止展现,通常,如果在事件处理器上做一点小小的工作,这不会带来任何问题。然而,如果你的应用在 JavaScript 线程上需要大量的、CPU 相关的工作,我们建议你将改任务划分成小的任务,这可以与期望的帧速率同步展现。提高性能的其它建议,请参见 For additional suggestions for improving performance, see 性能小贴士。
展现引擎
Silverlight 展现引擎为插件上指示的期望帧速率栅格化元素树进行了优化,这种优化主要包括以下方面:
* 增加帧之间的重画,这将减少内容改变时要画的像素数;
* 不栅格化弯曲或者部分闭合的内容;
* 只展现可见的内容(也就是说,不展现剪切掉的、opacity=0 等等的内容);
* 利用机器中的多核 CPU 大大提高展现性能。
展现引擎包含如下特性:
* 预设的反锯齿支持;
* 基本图形的支持,如长方形 (带有可选圆角), 椭圆, and 图像;
* 绘制路径支持 (参见 Silverlight 概述中的形状与绘制 和 路径标记语法);
o 路径数据:一套几何形状,包括弧、贝塞尔、线段、多点贝塞尔、多边形、多次方贝塞尔(poly-quadratic Bezier )和二次方贝塞尔(quadratic Bezier );
o 填充规则:非0或者奇/偶;
o Strokes: 可变宽度的画笔
o Dashing: 自定义 dash 数组.
o End caps: 圆、平和斜。
* 画刷支持 (参见 画刷概述):
o 纯色
o 带双线过滤的图形画刷支持
o 线性渐变
o 径向渐变
o 带双线过滤的视频画刷
* 文本展现支持 (参见 文字和字体概述):
o 次像素(或者叫亚像素)定位
o 平滑文字的自定义反锯齿
* 变换 (参见 变换概述):
o 路径变换
o 画刷变换
o 当缩放时文字和图像扔保持平滑,图像数据重新采样,图像质量依赖于源图像的解析度
* 剪切:
o 应用到任意一组图元,可包括嵌套的剪切、不透明效果和不透明蒙版
* 不透明和不透明蒙版;
o 应用到任意一组图元,可包括嵌套的剪切、不透明和剪切
尽管展现引擎尽力把内容处理得更好,但是你应当减少它处理原生元素的数量,这可以通过隐藏子树来实现,设置 Visiblity 属性为 Collapsed 或者从元素树中去除这些子树。在切换到全屏模式时这种优化是十分必要的。在全屏的内容添加到元素树之前,带窗口的内容应当标记Visibility=Collapsed。这种做法会减少图形引擎处理的内容,同时减少每帧要遍历的元素数目。
输入和事件
Silverlight 提供了一套响应行为的事件,如 Silverlight 中状态的改变和用户的输入(例如鼠标行为)。更多的信息参见 Silverlight 事件。
动画系统
通过添加移动和交互性,动画能够增强作品的图形效果。通过变换背景颜色或者进行动态变换,可以创造出戏剧性的屏幕变换效果或者有益的视觉暗示。我们可以创建基本的动画,也可以使用关键帧创建更复杂更强大的动画。此外,通过附加事件,可以实现动画的交互。更多信息,