Tui是一個游戲UI編輯器,是FlashCS6的擴展插件。開發(fā)者可以使用FlashCS6編輯游戲UI, 然后通過Tui插擴展預覽最終的UI效果,并生成相應的xml文件。當前版本(v1.0)支持iphone (320*480或480*320)與ipad(1024*768或768*1024)尺寸。
Tui的特點包括:
Tui的最主要特點是所見即所得。把美術工作,策劃工作與程序的工作區(qū)分開來。學習成本極低,只要會用簡單操作Flash就可以。穩(wěn)定性好。只要可以運行FlashCS的平臺就可以使用。其中一個非常實用的功能工具對事件的支持,開發(fā)者可以測試一個按鈕是否正常設置, 當預覽該UI時,可以在工具里點擊按鈕,如果設置正常,可以在Tui的調試面板里看到 類似收到了***事件的調試信息。
Tui可以做什么?
在FlashCS6里可視化編輯UI生成xml格式UI描述文件實時測試按鈕等是否配置正確在游戲里解析xml生成UI親,看到下面的用法,不心動么 顯示一個UI面板: GameUIController::sharedGameUIController()->showTui( "panel_name" ); 隱藏一個UI面板: GameUIController::sharedGameUIController()->hideTui( "panel_name" );還可以獲取面板中的子控件: Tui* panel = GameUIController::sharedGameUIController()->getTui( "panel_name" ); CCNode* control = panel->getControl( "control_name" ); ...ok,控件交給你了,隨你處置吧。
Tui是怎么工作的?
在FlashCS6里創(chuàng)建UI面板影片剪輯(mc),一個mc可以包含多個子mc,圖片或按鈕控件。通過jsfl導出Flash的layer數(shù)據(jù),生成xml。工具里通過as3解析xml數(shù)據(jù),生成UI預覽,并處理相應的事件。程序通過tui庫導入xml文件生成游戲UI。
Tui是如何支持多個主題的?
在flash里: 你需要為每個主題創(chuàng)建一個資源文件夾,如img_iphone和img_ipad分別包含iphone和ipad的圖片資源。注意: 在flash庫里的資源目錄必須為img_iphone或img_ipad,否則導出的圖片會找不到資源。在游戲里: Tui通過文件夾來區(qū)分不同主題下的資源, 例如iphone的資源放在Resources/ui_iphone目錄下,ipad的 資源放在Resources/ui_ipad目錄下, iphonehd的資源放在Resources/ui_iphonehd目錄下。每個主題對應一個xml配置文件,如tui_iphone.xml, tui_ipad.xml。在程序里判斷不同的設備加載相應的xml配置文件就可以了。
HD版本的UI怎么搞?
在Tui生成的配置文件里有個叫scheme的節(jié)點,它有個屬性是is_retina, 當值為1時,表示HD版,反之為標清版,默認 是標清版?梢栽诔绦蚶镒x取該值判斷是否是HD版,是則把資源的根目錄設置到hd版資源目錄下。注意:在編輯器里只需要編輯標清版。需要用到hd版時候,在Resources下加上hd版資源目錄并把配置文件改為is_retina。
如何處理一個按鈕事件?
Tui會生成一個gameuievent.h的文件,其中包括所有控件和面板的名字,還有所有用到的事件與相應的回調函數(shù)對應表, 回調函數(shù)對應表的格式為: static TuiEventCallBackTable tui_event_cb_table[] = { { "panel_menu_click_btn_start", tuievent_cb(GameUIController::on_event_panel_menu_click_btn_start) }, ... };
開發(fā)者僅需要填加一個繼承自TuiManager的類GameUIController然后實現(xiàn)對應表中的回調函數(shù)即可: class GameUIController : public TuiManager{ public: void on_event_panel_menu_click_btn_start( void* o, TEvent* e ){ //TODO add your code here } };