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、(未完待续)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值