|
|
- --[[
- 多状态标记类
-
- 使用例子:
- 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
-
|