在平时写程序中,经常会出现状态管理,比如是否是战斗状态,是否是白天还是黑夜,比如是否是家里还是外面,一般都是用很多变量来控制。
这样会带来很多的杂乱的多余的变量,不方便管理。
View Code
1 package core.manager.state
2 {
3 public class GameStateManager
4 {
5 private static var _home:Boolean;
6
7 public static function set homeState(value:Boolean):void
8 {
9 _home = value;
10 //do something.....
11 }
12
13 public static function get homeState():Boolean
14 {
15 return _home;
16 }
17 //这些做一样的处理
18 private static var _day:Boolean;
19
20 private static var _war:Boolean;
21 }
22 }
其实很多时候 可以用二进制来解决这个问题,先把各个状态列举出来
public static const HOME:uint = 1 << 0;
public static const WAR:uint = 1 << 1;
public static const DAY:uint = 1 << 2;
然后我们就可以只用1个变量来控制状态了 哇咔咔
private static var _gameState:uint;
如果要设置状态可以这样
public static function setHomeMode():void
{
_gameState |= HOME;
}
public static function setVisitMode():void
{
_gameState &= (~HOME);
}
如果要获取状态 可以这样
public static function isHomeMode():Boolean
{
return (_gameState & HOME);
}
这样就可以添加足够多的状态 呵呵 32种还不够你用么?
1年多没更新了 心血来潮写下 各位看客看过的请留个言 激励我继续写啊

浙公网安备 33010602011771号