--------------------------------------------------------------------------------------------------------------------------------------------------------
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、(未完待续)
分享到:
相关推荐
Oracle_DBA手记1-2-数据库诊断案例与性能优化实践.zip
一共两卷,免费提供,请分别下载后再解压...Oracle_DBA手记1-数据库诊断案例与性能优化实践 另有免费下载资源: Oracle_DBA手记3-数据库性能优化与内部原理解析.pdf Oracle_DBA手记2-数据库诊断案例与内部恢复实践.pdf
Oracle_DBA手记1-数据库诊断案例与性能优化实践 Oracle_DBA手记1-数据库诊断案例与性能优化实践 Oracle_DBA手记1-数据库诊断案例与性能优化实践 Oracle_DBA手记1-数据库诊断案例与性能优化实践 另有免费下载资源: ...
Oracle_DBA手记1-数据库诊断案例与性能优化实践.pdf
Oracle_DBA手记1-1-数据库诊断案例与性能优化实践.z01 有两个附件,1-1,1-2,一同解压
加密解密:脱壳手记---Themida(2.1.2.0)分享.pdf
架构师手记--14个性化标签系统需求说明.pdf
"Oracle DBA手记1-2册"显然是一份关于Oracle DBA实践经验和技巧的合集,包含两部分的内容,可能是作者或多位专家在长期工作中积累的实战心得。 在第一册中,可能会涵盖以下基础和进阶知识点: 1. **Oracle数据库...
本书由多位工作在数据库维护一线的工程师合著而成,包含了精心挑选的数据库诊断案例与性能优化实践经验,内容涉及oracle典型错误的分析和诊断,各种sql优化方法(包括调整索引,处理表碎片,优化分页查询,改善执行...
Oracle_DBA手记2-数据库诊断案例与内部恢复实践.pdf
张俊写的一本关于单片机的书籍,写得很不错,看了可以提高不少。
这篇“Android开发手记--环境配置”主要介绍了如何在Windows XP环境下,利用MyEclipse进行Android开发的初始设置。 首先,你需要下载Android SDK。SDK(Software Development Kit)是Android开发的基础,包含了开发...
Android 开发手记 -- 环境配置 Android 开发手记是基于 Linux 内核的手机系统,使用 MyEclipse + Windows XP 作为开发工具,当然在 Linux 下开发是更好的选择。以下是 Android 开发环境配置的步骤: 第一步:下载 ...
办案手记6-17:自考生的学士学位2009年9月12日---精品管理资料.docx
标题 "Office服务器安装手记--系统安装配置篇" 暗示了本文将深入探讨在服务器环境中安装和配置Microsoft Office或与之相关的服务。在IT领域,这通常涉及到设置Exchange Server(电子邮件服务)、SharePoint(协作...
《匠人手记--一个单片机工作者的实践与思考》是关于单片机应用技术的深度探索,其中包含了作者在工作中的实践经验与深刻见解。本文将围绕标签“手记”,详细解读压缩包中各文件所涵盖的单片机相关知识点。 首先,...
Oracle DBA 性能优化 和数据库诊断案例,了解原理和方式
“内部原理与优化”,分别介绍了oracle 的索引分裂、tx 锁等待、闩锁原理、逻辑读写、隐含参数与latch 原理等的内部操作。 《oracle dba手记3:数据库性能优化与内部原理解析》的主要内容以原理分析、内部实践、故障...