--[[
|
|
多状态标记类
|
|
|
|
使用例子:
|
|
MainRightTop界面在几种情况下需要隐藏:1.在战斗场景中,2.在副本中,3.在剧情中,4.在隐藏主界面设置中 ...
|
|
那么可以在MainRightTop里定于一个变量 self.visibleState = StateFlag.New()
|
|
|
|
进入战斗场景self.visibleState:addState(StateFlag.H1)--添加1隐藏状态
|
|
离开战斗场景self.visibleState:delState(StateFlag.H1)--移除1隐藏状态
|
|
判断界面是否显示self.isInstate()==false--显示界面(false表示没添加有任何隐藏状态)
|
|
|
|
进入副本self.visibleState:addState(StateFlag.H2)--添加2隐藏状态
|
|
离开副本self.visibleState:delState(StateFlag.H2)--移除2隐藏状态
|
|
判断界面是否显示self.isInstate()==false--显示界面(false表示没添加有任何隐藏状态)
|
|
|
|
...
|
|
后面的判断类同
|
|
|
|
]]
|
|
StateFlag=StateFlag or BaseClass()
|
|
|
|
-- StateFlag状态常量
|
|
StateFlag.H0=0x0
|
|
StateFlag.H1=0x1
|
|
StateFlag.H2=0x2
|
|
StateFlag.H3=0x4
|
|
StateFlag.H4=0x8
|
|
StateFlag.H5=0x10
|
|
StateFlag.H6=0x20
|
|
StateFlag.H7=0x40
|
|
StateFlag.H8=0x80
|
|
StateFlag.H9=0x100
|
|
StateFlag.H10=0x200
|
|
StateFlag.H11=0x400
|
|
StateFlag.H12=0x800
|
|
StateFlag.H13=0x1000
|
|
StateFlag.H14=0x2000
|
|
StateFlag.H15=0x4000
|
|
StateFlag.H16=0x8000
|
|
|
|
--[[@
|
|
功能: 多状态标记变量
|
|
]]
|
|
function StateFlag:__init()
|
|
-- 状态值
|
|
self.value=StateFlag.H0
|
|
end
|
|
|
|
-- 设置初始值
|
|
function StateFlag:initValue(val)
|
|
self.value = val or StateFlag.H0
|
|
end
|
|
|
|
-- 添加状态量
|
|
-- 参数state:StateFlag状态常量
|
|
function StateFlag:addState(state)
|
|
self.value = bit.bor(self.value, state)
|
|
end
|
|
|
|
-- 删除状态量
|
|
-- 参数state:StateFlag状态常量
|
|
function StateFlag:delState(state)
|
|
self.value = bit.band(self.value,bit.bnot(state))
|
|
end
|
|
|
|
-- 是否有状态值
|
|
function StateFlag:isInstate()
|
|
return self.value>0
|
|
end
|
|
|
|
-- 获取状态值
|
|
function StateFlag:isWhat()
|
|
return self.value
|
|
end
|
|
|