`
javababy1
  • 浏览: 1220032 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

NaviLibrary 研究手记(1)--Navi 介绍

阅读更多

--------------------------------------------------------------------------------------------------------------------------------------------------------

NaviLibrary研究手记(1)--Navi 介绍

linguister : kun

--------------------------------------------------------------------------------------------------------------------------------------------------------

What is Navi?

这个项目的意图非常简单:如果我们可以使用html来描述GUI,这不是很酷吗?

使用 NaviLibrary 你就可以做到这点!

使用LLMozLib library将游览器渲染到贴图,剩下的事情由Navi来负责。

在我们了解更多特性之前, Navi 本质上是个 GUI Window。 这表示它可以非常方便的 将 被渲染到贴图的游览器、Ogre环境、以及标准的Alpha掩码或者色彩键技术 整合到一起。 Navi这个词既代表了库本身,也代表着 使用它来创建的动态GUI窗口 -- "一个Navi"。为了创建一个Navi,你需要做以下的事情:

1、写一个页面。 你应该了解一些基本的 javascript 。

2、将你新写的Navi 和它的尺寸提交给 NaviManager。

3、注册一个类,并且(或者)将它和NaviData关联,用来处理各种事件。

4、使用你喜欢的输入系统向Navi注入鼠标输入事件。

就这些!

Features

使用NaviLibrary 最美妙的地方在于它所使用的语言(HTML,CSS,JS)十分成熟,有着大量的文档,并且相当流行。

Navi 和你平时使用的GUI项目有着很大的不同,因为我们封装了“Gecko(壁虎)”(想想Fixfox), 几乎所有能在Web2.0标准上做的事情,在一个Ogre3D 程序里你都可以做:Yahoo's UI library, Dojo, MooTools, SVG, XUL, AJAX, Flash...多亏 LLMozLib 和 Mozilla,Navi可以表现上述任意技术 (现在你也可以!)。

So just what can Navi do?

1、Movable --Navis 都可以移动 简单的右击 或者拖拽一个 Navi。

2、Alpha-Masking -- Navis支持Alpha通道。

3、Color-Keying --

4、Dynamic Opacity -- 动态调整不透明度

5、Transparency affects interaction -- 窗口透明度小于%5的地方将对鼠标透明

6、相对位置 和 绝对位置 -- 当一个Navis 被设置了相对(渲染窗口)位置(4角+4边中点+中点)后,它不能移动,但是渲染窗口的大小改变时,它会动态更新自己

7、聪明的输入注入 -- 当你通过NaviManager注入一个用户输入的时候,你将得到一个bool的返回值,它会告诉你当前鼠标是否在某个Navi上。(译者:事实上,大部分GUI 的管理系统都提供一个类似IsMouseOnWindow 的查询函数。)

8、高效 -- Navis 的效率很高; 因为它们只在页面上的内容发生变化的时候在会更新自己(的贴图)。

9、限速更新 -- 如果你发现Navi 自己更新的太快了,可以给它设置一个阈值 (fps)。

10、激活时自动顶层显示

11、不需要注入键盘输入 -- 因为 LLMozLib 捕获了这些输入,并且将它们传递给Gecko。

12、Programmatic Navi Page Creation - Thanks to DataURI's, you may create the pages that a Navi can navigate to at runtime. Simply define a string with all the HTML in it (escaping where necessary). You may use "local://" and "resource://" (see below) specifiers inside this HTML string to refer to other resources.(不是很了解 URI URL之类的....)

13、本地定位 你可以 'local://' 前缀。本地 是指 NaviPage所在的目录来说的。你可以通过NaviManager来实现

14、(未完待续)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics