當前位置:成語大全網 - 書法字典 - Cocos創建者虛擬列表

Cocos創建者虛擬列表

CCVirtualGridList是壹個基於Cocos Creator ScrollView+Layout的具有虛擬布局的滾動列表控件容器。支持平滑滾動顯示大量數據對象,圖片元素可以逐幀異步加載,保證平滑滾動。具有滾動頁面、顯示寬度自適應的多列、單項選擇、局部更新等實用功能。

Cocos Creator engine提供了壹個常規的滾動控件容器——scroll view來實現基本的滾動控件。但是缺少實現虛擬布局功能的列表控件,需要開發者手動擴展。這裏提供了壹個實現虛擬布局功能的擴展列表控件,參考了Egret中列表控件的接口方式實現。

虛擬布局的原理其實很簡單,就是只加載顯示可視區域內的列表內容,不實例化可視區域外的實體控件。在滾動事件的驅動下,可視區域的列表模板動態滾動重用,數據顯示切換,看起來就是壹個完整的上下滾動的列表。由於這種設計實例化控件少,占用內存少,drawcall次數低且穩定,所以現在應用廣泛。但是虛擬布局的核心不僅於此,因為顯示內容需要不斷切換,如何更快更流暢的轉換素材是虛擬列表的關鍵。CCVirtualGridList在VirtualGridListBaseItem-LoadImage中提供了自己加載圖片的方法,實現了按幀異步加載,保證了列表的平滑滾動,有效利用了緩存。

使用該控件非常簡單,只需將演示項目中的三個文件VirtualGridList.prefab、VirtualGridList.js和VirtualGridListBaseItem.js復制到項目的Prefabs文件夾中。使用前將VirtualGridList.prefab拖動到屏幕中,列表單元控件組件可以繼承VirtualGridListBaseItem。

啟動參數可以在creator的圖形界面中填寫,但為了不受預制件維護的影響,建議通過初始腳本界面導入啟動參數。

第壹次創建顯示列表,dataList是壹個數據數組。

追加顯示列表。dataList是壹個附加的數據數組,適用於滾動頁面。

獲取數據數組

獲取顯示對象的列表。

清空列表

根據數據對象,搜索對應的顯示對象。打開虛擬列表時,返回的對象可能不存在。

獲取緩存的圖片

當useVirtualList=false時,註冊滾動到底部回調方法不可用。

修改完數據後,列表會刷新,有的代表指定的刷新對象,否則全部刷新。

確定是否滾動到頂部。

滾動到頂部

滾動到固定位置itemIndex表示滾動到指定顯示對象的索引,sec是滾動動畫的持續時間。

數據對象。從要顯示的壹個數據列表中,每個顯示單元控件對應於壹個數據對象。useVirtualLayout= true時,單元控件對應的數據對象不固定,會滾動切換。

子類可以覆蓋方法,自定義顯示方法,並在滾動交替或初始化時觸發。useVirtualLayout= true時,每個顯示單元控件都是滾動重用的,所以對應的Component組件也是重用的,所以不要在裏面記錄某段數據對應的變量或屬性。

獲取隊列中真實對象的索引

子類可以覆蓋方法,點擊觸發事件,只支持單選。

子類可以覆蓋方法。如果它當前被選中,當其他單位被點擊時,這個事件將被觸發。

子類可以重寫當控件滑出可視區域時觸發的方法。當useVirtualList=false時不可用。

子類可以重寫當控件滑入可視區域時觸發的方法。當useVirtualList=false時不可用。

VirtualGridList提供圖片的異步加載和自動緩存。Pic:圖像地址,cb:圖像加載後的回調方法,thisObj:回調方法這個對象。