分享
 
 
 

Silverlight 的 JavaScript API

王朝学院·作者佚名  2010-08-09
窄屏简体版  字體: |||超大  

在某些情况下,Silverlight 的 javaScript API 是必需的或者比托管 API 更适合。本主题论述这些情况并提供一些链接,这些链接指向有关 Silverlight 中 Javascript API 的更多信息。

本主题包括下列各节。

先决条件

编程模型注意事项

使用 JavaScript API 的情形

用于 JavaScript API 的文档

JavaScript API 的技术细节

相关主题

先决条件

您应该阅读应用程序和编程模型并理解托管 API 和 JavaScript API 之间的基本差异。还应理解 HTML DOM 以及 Silverlight 编程模型和对象树如何与浏览器 DOM 相关;有关更多信息,请参见 Silverlight 编程模型、XAML 和 HTML DOM。

编程模型注意事项

Silverlight 的 JavaScript API 是 Silverlight 1.0 版本中可用的编程模型。 它使用 Silverlight 2 中当前可用的对象的小子集,以及特定于 JavaScript API 的少量对象。子集注意事项还将影响可以在 XAML 中定义的对象。Silverlight XAML 分析器只为此子集在对象树中创建对象,因为该对象树基于位于 JavaScript API 之下的固定本机代码实现创建。换言之,适用于 Silverlight 的 JavaScript API 的子集和限制注意事项远比为编写代码隐藏逻辑所选择的语言更具切实意义;您选择的编程模型/API 将确定哪些对象可用于您的应用程序。

如果您已针对 Silverlight 1.0 进行了开发,则可能已对用于 Silverlight 的 JavaScript API 十分熟悉。JavaScript API 与针对 HTML DOM 的编程十分相似,并且实际上是在浏览器的脚本引擎中执行的,就像针对 DOM 的脚本一样,但 Silverlight 模型扩展到在 XAML 页作为 Silverlight 插件的内容加载时创建的对象树中。这使您可以处理在 XAML 中定义的特定对象上的事件,在运行时获取或设置属性值或执行对象方法,在运行时修改 XAML 创建的对象的结构等。

就结构而言,应通过打开通往 Silverlight 对象树的路径、包装脚本调用并在本机将它们传递到插件对象,在 Silverlight 插件上启用 JavaScript API。在 Internet Explorer 中,这一包装通过 IDispatch::Invoke 调用实现;其他浏览器可根据其插件和脚本结构使用不同的包装范例。

使用 JavaScript API 的情形

初始屏幕

初始屏幕是一个初始的内容区域,可在其他内容仍在加载时向用户显示。就设计和用途而言,初始屏幕具有相对较低的用户界面和交互要求。初始屏幕主要用于以下方面:

展现吸引人的视觉效果。

向用户提供反馈,指示应用程序(或浏览器宿主)仍在按预期工作并且下载正在进行中。

提供有关下载进度的特定信息。

前两个功能常常在 XAML 中就可以完全实现,无需任何代码隐藏。提供下载进度要求相对较少的 API,以便从执行下载的网络层获取信息。出于这些原因,最好通过使用 JavaScript API 并为 SplashScreenSource 加载 XAML 页(脚本代码隐藏支持这一加载),实现初始屏幕。JavaScript API 无需激活 Silverlight CLR 和相关程序集即可加载初始屏幕,这将缩短启动时间。有关初始屏幕和如何实现它们的更多信息,请参见 Silverlight 初始屏幕。

Silverlight 1.0 时期的内容和维护

Silverlight 2 插件支持一个兼容模式,该兼容模式支持按 Silverlight 1.0 时间范围编写的应用程序。特别是,该插件可以基于传递到 object 元素的 application 的 Silverlight 1.0 时期的字符串和/或为初始化传递到 Silverlight.js 的版本“1.0”进行初始化。最初为 Silverlight 1.0 编写的站点通常应继续可用于具有 Silverlight 2 插件的客户端。

说明:

如果您将 Silverlight.js 用于初始化,则应考虑更新在您的原始部署中使用的 Silverlight.js,因为可能存在对说明不同浏览器代理字符串的脚本逻辑进行的更新以及自 Silverlight 1.0 发布后发生的其他技术更改。请参见如何使用 JavaScript 将 Silverlight 添加到网页。

Silverlight 2 通过提供对对象树的 JavaScript 访问以及支持指定单个 XAML 页的 Source 值,继续支持 JavaScript API。如果您具有某一现有的 Silverlight 1.0 时期的应用程序并且只是在添加几个特定功能或增强功能,则您的商业和技术决策过程可能确定最好将新的功能纳入现有基本代码中并继续使用 JavaScript API。

开发人员经验水平

如果您对于 JavaScript 具有全面、丰富的经验,则继续使用 JavaScript API 可能会最好地发挥您的长处。但是,Silverlight 2 中提供的许多功能都要求托管 API 并且不可用于 JavaScript。

其他注意事项

如果您在更大 HTML 页中使用的 Silverlight 内容具有相对较少的要求,或者您广泛地使用 HTML DOM 以便在单页中集成许多不同的 HTML 内容区域以及其他插件或控件,则您的决策过程可能会确定 JavaScript API 提供具有最低开销的集成解决方案。

用于 JavaScript API 的文档

Silverlight 4 的文档的大部分内容都涉及托管 API。例如,如果您想要了解与动画有关的更多信息,则可以转至动画概述,它包含对这两种 API 大体相同的 XAML 示例。但该主题还包含托管代码示例并且处理特定于托管代码的某些情况。您仍能够了解这些概念,与代码示例所采用的语言无关。

对于 JavaScript API,此文档集不包含针对可用于 JavaScript API 的所有对象、属性、方法、事件和枚举的全套参考主题。这些参考主题提供用于 XAML 和 JavaScript 的语法、对象的成员列表以及将 XAML 与 JavaScript 一起用于代码隐藏(偶尔仅限 JavaScript)的示例代码。以下是 Silverlight 的 JavaScript API 参考的有用的入口点:

Silverlight 的 JavaScript API 参考

对象参考

方法引用

属性参考

事件参考

枚举参考

用于 Silverlight 版本 2 的新 JavaScript API

Silverlight 版本 2 提供 Silverlight 1.0 对象集以外的其他对象,这些对象可用于 JavaScript API 中。能够实现上述用法的原因在于这些对象具有的本机实现采用与初始 1.0 对象相同的方式公开。您可以通过从 XAML 实例化来创建这些对象,之后绑定到对象树。为了使用这些对象,运行基于 Silverlight 的应用程序的客户端还必须是 Silverlight 版本 2 客户端。

用于 JavaScript API 的附加对象包括在 Silverlight 的 JavaScript API 文档中(同时还包括属性、方法、事件和枚举)。将从基本层级对它们进行介绍。将对新的对象和新的成员进行说明,并且在参考页中提供“版本信息”部分;而在版本 1.0 中存在的对象和成员没有“版本信息”部分。

JavaScript API 的技术细节

在 JavaScript API 中有若干技术细节不同于托管 API 并且涉及多个 JavaScript API 元素。有关更多信息,请参见下列主题:

Silverlight 的 JavaScript API 中的 XAML 和 XAML 相关概念

JavaScript API 中的属性和附加属性

使用内联 XAML

使用 JavaScript 处理 Silverlight 事件

JavaScript API 参考附录

JavaScript 和区分大小写

在由 IDispatch 或向承载浏览器脚本引擎提供 Silverlight JavaScript API 的并行机制处理时,JavaScript 脚本、方法和属性名称不视作区分大小写的。因此,如果您愿意,可以混用 XAML 事件属性值中的首字母大写和实际方法定义中的小写。但是,描述性文本中的 Silverlight 文档语法和标题通常会使用首字母大写以及某些内部大小写(有时称作“Pascal 大小写”)标准化对象、属性、方法、事件、枚举和枚举值的大小写。这么做的原因有以下两点:

XAML 区分大小写,因为它遵循 xml 规则。XAML 语法和等效脚本通常在单页上提供,因此,需要标准化 XAML 强制的大小写。在 Silverlight 文档中提供的标题是 XAML 对象元素或属性的正确大小写形式。

托管 API 将所有成员都视作区分大小写的,并且使用 Pascal 约定。向 JavaScript 参考提供等效的大小写有助于迁移途径更加明晰。

请注意,在 Silverlight 文档中提供的 JavaScript 示例代码通常不遵循该约定,而是遵循针对 JavaScript 的常用编码风格约定,即首字母小写(Camel 大小写)。

请参见

概念

Silverlight 编程模型、XAML 和 HTML DOM

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有