BindGameInputLayer.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { _decorator, Component, Node } from "cc";
  2. import BaseUI from "../../scripts/base/BaseUI";
  3. import { Hall } from "../hall/Hall";
  4. import { EditBox } from "cc";
  5. import { Tips } from "../../scripts/mgr/Tips";
  6. import { EventKeyboard } from "cc";
  7. const { ccclass, property } = _decorator;
  8. export interface BindGameInputLayerListener {
  9. OnInput(gameId: number, input: string): void;
  10. }
  11. @ccclass("BindGameInputLayer")
  12. export class BindGameInputLayer extends BaseUI {
  13. static async show(gameId: number, listener: BindGameInputLayerListener) {
  14. let layer = await Hall.ins.showLayer("prefab/layer/BindGameInputLayer");
  15. layer.getComponent(BindGameInputLayer).init(gameId, listener);
  16. }
  17. @property(EditBox)
  18. public edit_code: EditBox = null;
  19. protected onLoad(): void {
  20. super.onLoad();
  21. }
  22. private listener: BindGameInputLayerListener;
  23. private gameId: number;
  24. private init(gameId: number, listener: BindGameInputLayerListener) {
  25. this.gameId = gameId;
  26. this.listener = listener;
  27. this.FindNode("edit_code").on(
  28. EditBox.EventType.TEXT_CHANGED,
  29. this.onTextChanged,
  30. this
  31. );
  32. }
  33. private _prepareString: string = "";
  34. onTextChanged(event: EventKeyboard) {
  35. let inputString = this.edit_code.string;
  36. inputString = inputString.trim();
  37. inputString = inputString.replace("\n", "");
  38. this._prepareString = inputString;
  39. this.setText("lbl_code_string", this._prepareString);
  40. }
  41. protected simpleOnBtnClick(name: string): void {
  42. switch (name) {
  43. case "btn_bind":
  44. let inputString = this._prepareString;
  45. if (inputString.length == 0) {
  46. Tips.show("Please input code");
  47. return;
  48. }
  49. this.closePage();
  50. this.listener.OnInput(this.gameId, inputString);
  51. break;
  52. }
  53. }
  54. }