NaviLibrary 研究手記(1)–Navi 介紹

來源:互聯網
上載者:User
文章目錄
  • So just what can Navi do?
 

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

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.