XML 用户界面语言(XUL)开发简介(5)

来源:未知 浏览 577次 时间 2021-03-15 22:46

XML

XPCOM 不妨使您运用来自许多库的功效。这是 XUL 中反复展示的一个核心:为开辟人员供给他们须要的十脚树立块,用户界面并让他们博注于树立本人的运用步伐。而且,谈话XUL 供给......

XPCOM 不妨使您运用来自许多库的功效。这是 XUL 中反复展示的一个核心:为开辟人员供给他们须要的十脚树立块,(并让他们博注于树立本人的运用步伐。而且,XULXUL 供给了一个宏大的 UI 零件库。它也供给了一种措施,)此措施运用 XML 绑定谈话(XML Binding Language,开拓XBL)来变化这些零件的动作和功效。运用 XBL 可认为零件创造本人的动作,简介尔后将这种动作绑定到零件。何如样绑定呢?这是 XBL 一个很聪明的局部。运用一个 CSS 采用器来进行绑定。运用采用器采用一个大概多个零件,(尔后用特定的 CSS 个性 -moz-binding 来指定到包括此动作的 XUL 文件的 URL。

领会 XUL 的发端和它在 Mozilla 花样中的运用。

XUL 是一种基于 XML 的谈话,5因此须要闭于 XML(特别是 XML 称呼空间)很熟悉。XUL 树立在咱们熟悉和爱好的 Web 本领之上:HTML、JavaScript 和 CSS。假如想灵验地运用 XUL,)须要闭于这些本领特殊熟悉。运用 XPCOM 不妨在很大程度上普及 XUL 运用步伐的功效。这是一种跟分别式估计本领(比方 CORBA/IDL 和 COM)犹如的本领。假如熟悉这些本领,XML在进建 XPCOM 时将会有所帮帮,用户界面然而并不搞硬性哀求。

画布控件答应运用步伐在控件里面画制。这种画制常常运用 JavaScript 自动完成。共样,谈话要运用户不妨进行画制,(您不妨运用 JavaScript 监听戴有该控件的用户接互,XUL尔后运用画布 API 进行画制。在这个运用步伐中,)canvas.js 脚本完成了十脚这些负担。清单 5 展示了该文件的本质。

XML:可夸大标记谈话

清单 5. JavaScript 画布控件代码

// courtesy of Mozilla's Mark Finkler// function Scribbler_init() {Scribbler.init(); }var Scribbler = {canvas : null,ctx : null,drawing : false,init : function() {this.canvas = document.getElementById("canvas");this.ctx = this.canvas.getContext("2d");this.drawing = false;this.canvas.addEventListener("mousedown", this.doDrawStart, false);addEventListener("mouseup", this.doDrawStop, false);this.canvas.addEventListener("mousemove", this.doDrawUpdate, false);},doDrawStart : function(event) {// Calculate the position of the mouse over an element. To do this, subtract// the position of the element the mouse is over from the mouse position. The// element's position can be determined from its boxObject.// We are using the <box> container as a XUL wrapper// for the HTML <canvas>var offsetX = (event.clientX - event.target.parentNode.boxObject.x);var offsetY = (event.clientY - event.target.parentNode.boxObject.y);Scribbler.ctx.beginPath();Scribbler.ctx.moveTo(offsetX, offsetY);Scribbler.drawing = true;},doDrawStop : function(event) {if (Scribbler.drawing) {Scribbler.ctx.closePath();Scribbler.drawing = false;}},doDrawUpdate : function(event) {if (Scribbler.drawing) {// Calculate the position of the mouse over an element. To do this, subtract// the position of the element the mouse is over from the mouse position. The// element's position can be determined from its boxObject.// We are using the <box> container as a XUL wrapper// for the HTML <canvas>var offsetX = (event.clientX - event.target.parentNode.boxObject.x);var offsetY = (event.clientY - event.target.parentNode.boxObject.y);Scribbler.ctx.lineTo(offsetX, offsetY);Scribbler.ctx.stroke();}},doDrawClear : function() {this.ctx.fillStyle = "#fff";this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);} };Scribbler_init();

下一个试验措施是运用 XULRunner。不妨下载一个 XULRunner 安置物品,开拓大概者从源文件树立 XULRunner。假如从源文件树立 XULRunner,简介共时也会从源文件树立 Gecko SDK。一往安置了 XULrunner,(只要要将你的 application.ini 文件地位传播给它便行了。XULrunner 将会读取此文件,5以及火线提到的其他二个安排文件,)以初始化运用步伐。

XUL 顶用于 Web 开辟的另一个沉要方面是 CSS。CSS 已经成为向 Web 页面减少格式的毕竟尺度。它的层叠个性具备富饶的功效和精致性,XML这种个性答应将格式运用于闭于象和子闭于象,用户界面共时也答应这些子闭于象依据须要沉写格式。XUL 将这种功效和精致性运用到桌面运用步伐中。

领会 XUL 的沉要矮廉及其架构安置,谈话以及何如样运用现有的 Web 运用步伐本领树立桌面运用步伐。

清单 12. 运用 XMLHttpRequest()

var xhr = new XMLHttpRequest();function publish(){var url = "http://some.blogService.com/sendBlog"; // replace this obviouslyvar serializedEntry = serialize();xhr.onreadystatechange = processResponse;xhr.open("POST", url, true);xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');// set-up authentication headers and/or parameters// then send the requestxhr.send(serializedEntry);}function processResponse(){// check for readyState == 'loaded'if (xhr.readyState == 4){if (xhr.status == 200){alert("Your blog entry was published!");} else {alert("Sorry there was an error");}}}

清单 3. prefs.js 文件

pref("toolkit.defaultChromeURI", "chrome://xulblogger/content/home.xul");

清单 11. deserialize() 函数

function deserialize(input){var obj = input.parseJSON();document.getElementById("name").value = obj.name;document.getElementById("entry").value = obj.entry;document.getElementById("tags").value = obj.tags;document.getElementById("pubDate").value = obj.pubDate;}

款待采用 XUL

从纯本领的作风上瞅,(XUL 是一个用于跨平台运用步伐开辟的风趣框架。大概不过是一个风趣的本领框架。然而是另一个产品证明它不止仅是一个本领框架,XUL那等于 Firefox。XUL 是经过沉写 Netscape 展开起来的,)这种沉写是经过让 Netscape 更加模块化来实行的。沟通的思维也运用在了 Mozilla Firefox Web 参瞅器开辟中。

中止语

在本教程中,开拓您领会了 XUL 的功效及其架构,简介以及一些开辟 XUL 运用步伐的物品。您还树立了一个不错的运用步伐,(它运用了 XUL 和 Firefox 中的一些高档组件。您领会了开辟人员何如样运用他们的 Web 开辟本领经过 XUL 创造桌面运用步伐。Firefox 3.0 的款待采用展现着,5Firefox 用户已经为 XUL 开辟人员编写的桌面运用步伐预备好 XUL 运行时,XML 用户界面谈话(XUL)开拓简介(5)而且这存留宏大的商场。

共6页:

上一页

1

2

标签: 运用XUL步调the