cocos2dx & cocostudio 控制元件構想

峻峰飛陽發表於2016-08-04

我一直在考慮理想化的控制元件設計應該是什麼樣的,簡單易用,符合開發習慣,並且容易維護和擴充套件。

  1. Button,以最常用的關閉按鈕舉例,在編輯器中,將Button的外觀設好後,拖入到任意Layer或對話方塊,執行後,點選Button,都能退出Button所在的視窗。
    完成這樣的設計,Button不能關心要關閉的目標視窗,也就是目標視窗對它是透明的,它在被點選時,只需傳送一個關閉事件CloseEvent,由父視窗實現關閉動作。

  2. Counter, 顯示數字的控制元件,例如金幣數,角色等級等。它不需處理使用者操作,程式在執行中會動態修改它的數值。我對Counter的理想就是,在程式的任何一個類或元件中,如果金幣數(舉例)發生變化,只需發出一個通知訊息告訴角色持有的金幣改變了,而不用關心顯示金幣的控制元件是誰,有幾處顯示等等。
    完成這樣的設計,程式在金幣數改變時,發出一個廣播事件,形如:CoinChangedEvent,關心此事件的Counter更改其顯示數值。

  3. ListView (或GridView, TableView) 這個比Button和Counter複雜,它的定義是每個ListView包含多個條目(ListItem),條目可以動態新增,數量不確定。每一個ListItem相當於資料庫表中的一條記錄,每一ListItem又包含多個單元(ListCell), 相當於每條記錄的欄位。單元中一般會放置Label,Image或按鈕。當單元中新增button後,點選button需要程式處理,程式需要知道該button在哪個單元中。每個ListItem可以關聯應用資料,如關聯到資料庫表中的一條記錄。

相關文章