基本的UI 方面的流程? ??
UI Owner 是 UI邏輯腳本的基類?
創(chuàng)建 UI 界面的編寫 都是在是Start.LUA中進行注冊的??
每一個UI的腳本都繼承 —Class('? name ',UIowner)
local? c=self:Cholder()? 間接理解? ?可以相當于是UI的父??
可以通過? c.parent Name.childName? 獲取到對應(yīng)的UI?
UIOWner.lua 對應(yīng)的是全局的函數(shù)? 為? UIOWner
UI邏輯腳本的基類? ? 任何的 UI界面? ?可以通過他 顯示? 隱藏? ?各種 UI邏輯層方面的回調(diào) 函數(shù)
界面場景的加載??
UIOwner:PanelDrag() 子類重寫? ?UIOwner:onNew()? ? 第一次創(chuàng)建UI時的觸發(fā)? ? UIOwner:Cholder()? 獲取UI的根節(jié)點? ? UIOWner:GetIdx() 獲取UI所在UI配置中的數(shù)據(jù)
UIMAnager.LUA 對應(yīng)全局的UIManager? 負責(zé)UI邏輯層的鼠標操作? 鍵盤管理操作? ?各個UI界面的布局調(diào)整 刷新? 緩存 設(shè)置層級?
他可以實現(xiàn)對外接口? 可以在如何一個地方去調(diào)用??
UI.LUA? 對應(yīng)的Lua全局函數(shù)為 UI
負責(zé)各個UI邏輯腳本的快速創(chuàng)及獲取? 切換 顯示? 隱藏? 函數(shù)的反射 顯示狀態(tài)? ?獲取對象綁定的組件??
對外的一個接口? 可以在如何一個地方去調(diào)用他??
UI.FormatTime(...,...,...)設(shè)置時間? ? ??
UI.RecordOpenPanel (name)? ? ??有一個表用來記錄專門去存放? 已經(jīng)打開的UI面板? ? ?記錄打開的UI面板? UI面板的類型? ?
UI.ClearRecordOpenPanel(name)? 清理單個打開的UI面板? ? Name? 清理? ?UI面板的類名? ? ?
UI.CloseAllOpenPanel()? ? 一次性 關(guān)閉? 所有的已經(jīng)打開的面板? ? ?
Defiine .lua? 腳本中? ?有接收消息的方法? ? ? ?
?發(fā)送消息的方式: Warn { Msg=_T'無法購買' }
Table中 的? Function中? 降序? 升序? ?
_G.Item={}? ?中? ? ? ?Player 的金幣點券? 磚石? ? ?格子數(shù)? ?裝備數(shù)? ? ?CD中剩余時間??
_G.Redpoit? 紅點系統(tǒng)? ?基本上所有的方法都是通過 接口 來實現(xiàn)的
????au.esc_btn.button.onClick?=?function(?)????????UI.showActivityui(false)????end
? ? 框架中地顯示隱藏是采用的 Active 來進行顯示隱藏的? ? 例如? CS.xxxName xxx=false? ?CS.xxxNameXXX=true
? ? Zone.lua是對游戲場景的一個加載 獲取? 顯示
?在UI.lua中? 找UI面板的方式? ?通過__index? 中去找? 類型是否是string? 類型? 如果是string類型? ? 因為? ??UI.showDepotUI(true)? ?是這樣的方式??
所以在找的時候看是不是? Show類型的 如果 是? ?就? 從第? 5個開始找? ?判斷? ?后面的UI是不是你想要的UI? 然后對他進行顯示 和隱藏??
local?UIMeta={}
UIMeta.__index?=?function(tb,?k)
????local?v=rawget(tb,?k)
????if?v?then?return?v;?end
????if?type(k)=='string'?then
????????if?k:lead'show'?then
????????????local?name?=?string.sub(k,?5)
????????????if?isui(name)??then
????????????????--?if?name?==?'Dun_target'?or?name?==?'dun_target'?then
????????????????--??_wl(?'#################'?)
????????????????--??_wl(?debug.traceback(?)?)
????????????????--??_wl(?'#################'?)
????????????????--?end
????????????????return?function(b,?...)
????????????????????--_lj(?'showui<<<<<<<<<<<<<<<<',?b,?name?)
????????????????????if?CLOSEALL?then?return?end
????????????????????UIManager:GetInstance():Show(name,?b,?...)
????????????????end
????????????end
????????end
????end
end
Zone.GetZone().zoneinfo.zoneid? 獲取當前 場景的ID? ?
Const.lua中 有 _G.Colors={? }? 有 游戲中的原始方式的顏色? ? ? _g.ChatChannelColor={? ?}? ? 世界? 中門? ?區(qū)域? ?隊伍??
Define中 是所有的服務(wù)器接收的消息回調(diào)? ? 然后我們通過? ?列如? Item.lua中? 去接收數(shù)據(jù)的時候? ? ?
------------------------------------------------Event
when{?_order=0?}????--背包道具更
function?BagUpAll(Info)
????me.bag?=?Info?~=?EMPTY?and?Info?or?{?}
????local?ui?=?UI.getUI(?'BackpackUI'?)
????if?not?ui?then?return?end
????if?ui.handSort?then
????????ui.handSort?=?nil
????????Warn{?Msg?=?_T'背包整理成功'?}
????end
????ui:selectUpTab(?)
end
button.onClick?
Zonerole .lua? 中有對玩家數(shù)據(jù)的? ?配置? ? ?
advancedlist.lua中? 有對所有下拉列表的配置? ?
GetIndexByRenderer()--獲得某個格子當前顯示第多少條數(shù)據(jù)
GetRendererAt()--獲得第多少條數(shù)據(jù)對應(yīng)哪個格子
Set()--選中第幾個數(shù)據(jù)所在的格子,,需要在按鈕的click里去設(shè)置
--[=[total是滾動列表需要顯示的數(shù)據(jù)的總數(shù),callback是刷新每個格子的回調(diào)函數(shù),top是讓滾動列表瞬間滾動到第幾條數(shù)據(jù)對應(yīng)的格子,同ScrollToIndex,top為nil的時候滾動列表待在以前的狀態(tài)
callback需要符合如下格式:
function(r, index, cindex, selected)
? ? local config = Cfg.cfg_item[self.items[index]];
? ? local image = r.btn.image;
? ? image.sprite = config.icon;
? ? local choose = r.choose;
? ? choose.active=(selected);
end]=]--
function AdvancedList.setData( self, total, callback, top )
Advancedlist.lua 中有roots 是有ScrollRect組件的那個transForm 是
SetData中? 是個滾動裂變? ?需要顯示數(shù)據(jù)的總數(shù) Call back、
--[=[total是滾動列表需要顯示的數(shù)據(jù)的總數(shù),callback是刷新每個格子的回調(diào)函數(shù),top是讓滾動列表瞬間滾動到第幾條數(shù)據(jù)對應(yīng)的格子,同ScrollToIndex,top為nil的時候滾動列表待在以前的狀態(tài)
callback需要符合如下格式:
function(r,?index,?cindex,?selected)
????local?config?=?Cfg.cfg_item[self.items[index]];
????local?image?=?r.btn.image;
????image.sprite?=?config.icon;
????local?choose?=?r.choose;
????choose.active=(selected);
end]=]--
--每幀調(diào)用一次 及調(diào)用次數(shù) 較多
local?rect?=?ui.recttransform??
????local?flytime?=?0self
????local?func?=?function(e)
????????flytime?=?flytime?+?6*e
????????if?flytime?>=?1000?then
????????????rect.anchX?=?endX
????????????rect.anchY?=?endY
????????????if?self._timers[name]?then
????????????????Timer.stop(?name?)
????????????????self._timers[name]?=?nil
????????????????self._flytb[name]?=?nil
????????????????if?callback?then?callback()?end
????????????end
????????else
????????????local?temp?=?1500*flytime?-?flytime*flytime/2
????????????rect.anchX?=?stax?+?temp*ax
????????????rect.anchY?=?stay?+?temp*ay
????????end
????end
????self:StartTimer(name,1,func)--調(diào)用次數(shù)較多時,即每幀調(diào)用
CreateRoleUI??
GUIComponent.cs? UI面板拖拽移動??
倒計時的? 的方式? ???
??if?isstart?then
????????c.go_btn.button.interactable?=?false
????????c.go_btn.btn_name.text.text?=?_T"即將開始"
????????self:ctrlTimer('activityshow',function()
????????????local?leftTime?=?timing*1000?-?os.now(0)
????????????local?mst?=?mstr{_T"活動開啟倒計時:<<<t>>>",?t?=?toTimingFormat2(leftTime)}
????????????c.hd_time.countdown.text.text?=?mst
????????????if?leftTime?<?0?then?--?倒計時結(jié)束
????????????????self:Show(false)
????????????????--?self:HideWithEffect()
????????????????local?ui?=?UI.getUI('MainUI')
????????????????if?ui?then
????????????????????ui:activityOnShow()
????????????????end
????????????????return?true
????????????end
????????end)
---客戶端的實現(xiàn)方法? 時間對應(yīng)
function?CollectUI:OnIdle(?e?)
????if?self.begintime?then
????????local?dt?=?_now(?)?-?self.begintime
????????local?t?=?Cfg.cfg_mine[self.id].casttime
????????if?dt?<?t?then
????????????self.collectui.innercircle.image.fillAmount?=?dt/t
????????else
????????????self.begintime?=?nil
????????????self.collectui.innercircle.image.fillAmount?=?0
????????end
????end
end
function?Cutdown:OnIdle(?e?)
????self.time?=?e?+?self.time
????if?self.time?>?UpdateTime?then
????????self.time?=?0
????????self:Init()
????end
end
table.sort( self.parts, table.asc( 'equiplvupnum' ) ) -- asc 按指定列升序