2025-02-17 21:36:37 +08:00
|
|
|
export class InputMgr{
|
|
|
|
private STATE_NORMAL = 1;
|
|
|
|
private STATE_KEEP = 2;
|
|
|
|
|
|
|
|
private static _inst:InputMgr = null;
|
|
|
|
private _flags = {};
|
|
|
|
private _flagsMeta = {};
|
|
|
|
public static get inst():InputMgr{
|
|
|
|
if(!this._inst){
|
|
|
|
this._inst = new InputMgr();
|
|
|
|
}
|
|
|
|
return this._inst;
|
|
|
|
}
|
|
|
|
|
|
|
|
public setFlag(flag:string,keep?:boolean,meta?:any){
|
|
|
|
this._flags[flag] = keep? this.STATE_KEEP:this.STATE_NORMAL;
|
|
|
|
if(meta != null){
|
|
|
|
this._flagsMeta[flag] = meta;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public removeFlag(flag:string){
|
|
|
|
delete this._flags[flag];
|
|
|
|
}
|
|
|
|
|
|
|
|
public hasFlag(flag:string):boolean{
|
|
|
|
return !!this._flags[flag];
|
|
|
|
}
|
|
|
|
|
|
|
|
public getMetaByFlag(flag:string):any{
|
|
|
|
return this._flagsMeta[flag];
|
|
|
|
}
|
|
|
|
|
|
|
|
public update(){
|
|
|
|
for(let k in this._flags){
|
|
|
|
if(this._flags[k] != this.STATE_KEEP){
|
|
|
|
this._flags[k] = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2025-02-07 10:49:34 +08:00
|
|
|
}
|