GUIMediator.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. this.nextFrameCallHandler.length=0;
  37. }
  38. /**
  39. *
  40. * @param value 下一帧调用
  41. */
  42. CallNextFrame(value:Function):void{
  43. if(this.nextFrameCallHandler.indexOf(value)>=0){
  44. return;
  45. }
  46. this.nextFrameCallHandler.push(value);
  47. }
  48. }