InputMgr.ts 961 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. export class InputMgr{
  2. private STATE_NORMAL = 1;
  3. private STATE_KEEP = 2;
  4. private static _inst:InputMgr = null;
  5. private _flags = {};
  6. private _flagsMeta = {};
  7. public static get inst():InputMgr{
  8. if(!this._inst){
  9. this._inst = new InputMgr();
  10. }
  11. return this._inst;
  12. }
  13. public setFlag(flag:string,keep?:boolean,meta?:any){
  14. this._flags[flag] = keep? this.STATE_KEEP:this.STATE_NORMAL;
  15. if(meta != null){
  16. this._flagsMeta[flag] = meta;
  17. }
  18. }
  19. public removeFlag(flag:string){
  20. delete this._flags[flag];
  21. }
  22. public hasFlag(flag:string):boolean{
  23. return !!this._flags[flag];
  24. }
  25. public getMetaByFlag(flag:string):any{
  26. return this._flagsMeta[flag];
  27. }
  28. public update(){
  29. for(let k in this._flags){
  30. if(this._flags[k] != this.STATE_KEEP){
  31. this._flags[k] = 0;
  32. }
  33. }
  34. }
  35. }