robot
最新文章(10)
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
程式碼要清的多乾淨?
FreeBSD 的 Thread-Local Storage 實作
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (93)
FreeBSD (71)
WEB (61)
URL (48)
hardware (46)
javascript (36)
Linux (34)
blog (30)
C++ (16)
所有關鍵字
新增 URL
MadButterfly 的概念
by thinker
2 Columns
關鍵字:
雜記
MadButterfly 字面上是「瘋狂蝴蝶」,有人稱為「瘋狂奶油蒼蠅」。其名取其意,希望 project 的成果能既美麗,又輕巧。這個 project 的點子,來自於需要和其它出色的產品,更重要的是,對現實的不滿。 在概念上,MadButterfly 是一個和 $GTK$/QT 完全不同的 $GUI$ 系統。 $GTK$/QT 都是以 component 為基礎的 toolkit ,提供大量的 component ,programmer 基於這些 button 、 menu 、 dialog 等,組合出所需的外觀。利用這些 component ,程式設計師可以很容易的弄出一個還可用的 UI ,但卻達不到傑出。為什麼?因為受限於提供的 component 的行為,我們只能在有限的範圍內,盡量的組出理想的外觀,而且是以非直覺的方式進行。這就像,要你用有限的多邊形積木,組出一幅小小的蒙娜莉莎,就算積木的形狀再多樣,都不及一支鉛筆、一塊橡皮擦和一張紙好用。 $GTK$/QT 提供再多、再好的 component ,也只能是傑出的積木。卻不及鉛筆、橡皮擦和張紙的直覺、好用。 MadButterfly 想要提供的就是鉛筆和紙張。 [attach:madbutterfly.png] MadButterfly 是一個非 component based 的 $GUI$ toolkit ,和 component based 的 $GTK$/QT 完全不同。應該有一個名$詞$,可用來指稱這個類型的 toolkit ,但吾薄學寡聞,暫稱此類為 vector based。 MadButterfly 不需要 programmer 和 $GUI$ designer 來學習 button 、 menu 、 dialog 、 textbox 等等 component 及其行為。而是讓 $GUI$ designer 使用他們順手的 Inkscape 、 Adobe Illustrator 等向量繪圖工具,直接繪出他們想要的畫面,將之存成 SVG 向量格式。 Programemr 則寫程式,直接操作這些向量元件,付予行為。程式控制的內容,小自多邊形的顏色、位置、透明度、邊線粗細,大至一組圖形的旋轉、淡出、淡入、移動,甚至觸發由一連串向量操作所組成的一段動畫。例如,我們能在 mouse 移動 icon 上面時,觸發讓 icon 像小狗一般跳起來抖一抖的一段動畫。這些都是 component based 的 toolkit 難以做到的。至少,你必需花費很多工夫。 也許有不少人有製作 adobe flash 動畫的經驗,是的, MadButterfly 在這方面抄襲 flash 。 Flash 實在是一個優秀的平台,可惜它 close 。 Flash 之所以優秀,在於 Adobe 提供了一個很重要的工具「Flex」。「Flex」 提供時間軸的概念,將動畫拉出來,使之成為一個時間軸上的序列,播放一連串操作圖形的效果。到目前為此, Open Source 似乎還沒有一個 project 能有這樣的功能,甚至連企圖都沒有。 MadButterfly 打算走在這個方向上,但不限制於動畫或網頁上的$應用$。 MadButterfly 將往 desktop 和 embedded system 發展,作為桌面環境和控制介面的基礎,以畫圖、製作動畫的方式設計 UI 。 目前 MadButterfly 完全 focus 在以 SVG 為基礎的 vector based 的 UI 系統,然而前面提到的時間軸概念,卻還沒找 Open Source 的工具。雖然 MadButterfly 本身提供了時間軸的能力,但若無編輯工具的輔助,動畫的製作將一項極為困難的事。目前 Open Source 的 Inkscape 能提供良好的靜態圖形編輯功能,但缺乏時間軸的概念。未來在 MadButterfly 到達一定成熟度之後,或許能以 Inkscape 為基礎,改裝成一個動畫的編輯器。 圖形元件, component ,對於成果的重復利用極為重要。未來,希望能將圖形和行為包裝成 component ,以便重復利用。所謂的行為,是指和圖形有關的動畫和狀態。例如,前面提到「小狗一般的跳起來抖一抖」,就是一段動畫,也是該 icon 的行為。程式可以去觸發這段行為,使 icon 「跳起來抖一抖」。透過圖形的元件化,行為將被帶著走。但, UI designer 卻沒有失去控制權,隨時可以將 component 用編輯工具打開來改一改再封裝回去,或另存一個 component。 MadButterfly 是吾的一個幻想,也是一個未來的可能。我將在 COSCUP 2008 進行一段 5 分鐘的 ligthening talk ,希望能在 5 分鐘內,將吾的幻想推銷給你。 註: 為什麼我會用「吾」,因為中午本來要看棒球,不小心看到霹靂布袋戲,一時有在看魔界之類電影的幻覺。實在拍的很不錯,戲中的台語用$詞$也很典雅。戲中以「吾」取代「我」,突然覺的,台語每個地方發音不盡相同,「吾」或許比「我」正確。另外,台語形容一個人很丟人,就說「渭水」,或許是就是「猥瑣」。台語很多用$詞$,可能因為書寫系統在國民政府來台後漸漸流失,使的原意越來越模糊。布袋不但好看,另一方面也能看到台語典雅、正統的用法。
最後更新時間: 2008-08-13 16:05:41 CST |
引用
查詢:
COMMENTS:
on 2008-08-17 10:24:34 CST
land
said ..
comment...(C)很期待您的演說