在說Clutter的UI描述語言之前,先說說一般情況下UI設計團隊與開發團隊的合作模式。通常,UI設計團隊將UI設計圖交給開發團隊後,開發團隊就開始埋頭coding了。假如一切都是如此理想,那自然再好不過了。可是,光明的前途常常伴隨著曲折的道路,項目中的變化是難免的。冷不防的就冒出個人來,講客戶對UI的要求不是這樣這樣滴,而是那樣那樣滴。改呗,UI團隊改圖,開發團隊改代碼,帶來的工作量可不小。如果UI設計完後能自動產生UI的代碼就好了。
有人就提出了UI描述語言。讓UI設計人員學習這種十分簡單的描述語言,將UI設計用這種語言來描述,然後通過工具就可以自動生成代碼,假如UI設計發生了變化,重新生成代碼也很方便。
Clutter就提供了一種UI描述語言。它的語法基於JSON——JavaScript Objective Notation。語言所描述的每一個UI元素我們都稱之為”Object”——對象。每個對象至少擁有2個屬性——ID和Type。UI描述語言支持的對象類型十分廣泛,不僅包括所有的Actor和Container,還支持Behaviour。開發人員在程序中如何使用呢?如果UI描述保存在文件裡的話,先通過clutter_script_load_from_file()讀取描述,然後使用clutter_script_get_object()函數通過對象的ID來獲取對象。
看個簡單的例子吧,定義一個100x100的紅色矩形。
{
程序裡可以這樣來訪問:
ClutterActor *red_button;已定義的Behaviour可以在定義Actor時應用到Actor上。
{
最後聲明一下,以上例子都是從Clutter的Reference Manual裡抄來的,大家可以直接看http://www.clutter-project.org/docs/clutter/0.8/ClutterScript.html的描述部分,寫的很詳細。