GUIMediator.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { _decorator, Component, Node } from 'cc';
  2. import { GUIManager } from './GUIManager';
  3. const { ccclass, property } = _decorator;
  4. @ccclass('GUIMediator')
  5. export class GUIMediator extends Component {
  6. uiKey:number;
  7. data:any;
  8. OnShow(data?:any):void{
  9. this.data=data;
  10. }
  11. OnHide():void{
  12. }
  13. /**
  14. * 关闭自己
  15. */
  16. HideSelf():void{
  17. GUIManager.single.Hide(this.uiKey);
  18. }
  19. update(dt:number):void{
  20. this.enterFrame();
  21. }
  22. get LayerIndex(){
  23. return 3;
  24. }
  25. /**
  26. * 下一帧需要回调的函数
  27. */
  28. private nextFrameCallHandler:Function[]=[];
  29. /**
  30. * 进入这一帧
  31. */
  32. enterFrame():void{
  33. this.nextFrameCallHandler.forEach(element => {
  34. element();
  35. });
  36. }
  37. /**
  38. *
  39. * @param value 下一帧调用
  40. */
  41. CallNextFrame(value:Function):void{
  42. if(this.nextFrameCallHandler.indexOf(value)>=0){
  43. return;
  44. }
  45. this.nextFrameCallHandler.push(value);
  46. }
  47. }