TabSwitching.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/game/component/TabSwitching.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, '3087dH5gWhCfZNksqAzC+wm', 'TabSwitching');
  13. // script/game/component/TabSwitching.ts
  14. "use strict";
  15. var __extends = (this && this.__extends) || (function () {
  16. var extendStatics = function (d, b) {
  17. extendStatics = Object.setPrototypeOf ||
  18. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  19. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  20. return extendStatics(d, b);
  21. };
  22. return function (d, b) {
  23. extendStatics(d, b);
  24. function __() { this.constructor = d; }
  25. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  26. };
  27. })();
  28. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  29. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  30. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  31. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  32. return c > 3 && r && Object.defineProperty(target, key, r), r;
  33. };
  34. Object.defineProperty(exports, "__esModule", { value: true });
  35. var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
  36. var TabSwitching = /** @class */ (function (_super) {
  37. __extends(TabSwitching, _super);
  38. /** 页签切换组件
  39. * - 只对样式进行处理
  40. * - 可注册其他回调,通过'comp-cur-click'事件
  41. * - 可初始化页签,通过'comp-cur-tab'事件
  42. * @author 薛鸿潇
  43. */
  44. function TabSwitching() {
  45. var _this = _super !== null && _super.apply(this, arguments) || this;
  46. /** 页签组 */
  47. _this.arr_btn_tab = [];
  48. /** 页签数量 */
  49. _this.tab_count = 0;
  50. /** 界面点击页签的回调 */
  51. _this.func = null;
  52. return _this;
  53. }
  54. TabSwitching.prototype.onLoad = function () {
  55. this.tab_count = this.arr_btn_tab.length;
  56. this.initTabState();
  57. this.initBtnEvent();
  58. /** 页签切换 */
  59. this.node.on('comp-cur-tab', this.curTabType, this);
  60. // 注册界面触摸回调。参数1:函数,参数2:target
  61. this.node.on('comp-cur-click', this.onTabBtnClick, this);
  62. };
  63. TabSwitching.prototype.start = function () {
  64. };
  65. /**
  66. * 初始化按钮事件
  67. */
  68. TabSwitching.prototype.initBtnEvent = function () {
  69. for (var i = 0; i < this.tab_count; i++) {
  70. this.arr_btn_tab[i].node.on('click', this.onClockTabCall, this);
  71. }
  72. };
  73. /**
  74. * 页签切换回调
  75. * @param comp_btn 按钮组件
  76. * @param params 参数
  77. */
  78. TabSwitching.prototype.onClockTabCall = function (comp_btn, params) {
  79. this.initTabState();
  80. var btn_node = comp_btn.node;
  81. var img_style_1 = btn_node.getChildByName('img_style_1');
  82. img_style_1.active = true;
  83. var img_style_2 = btn_node.getChildByName('img_style_2');
  84. img_style_2.active = false;
  85. this.func && this.func(comp_btn, params);
  86. };
  87. /**
  88. * ui界面注册的按钮事件
  89. * @param func 事件
  90. * @param target 目标类
  91. */
  92. TabSwitching.prototype.onTabBtnClick = function (func, target) {
  93. this.func = func.bind(target);
  94. };
  95. /**
  96. * 初始化页签状态
  97. */
  98. TabSwitching.prototype.initTabState = function () {
  99. for (var i = 0; i < this.tab_count; i++) {
  100. var img_style_1 = this.arr_btn_tab[i].node.getChildByName('img_style_1');
  101. img_style_1.active = false;
  102. var img_style_2 = this.arr_btn_tab[i].node.getChildByName('img_style_2');
  103. img_style_2.active = true;
  104. }
  105. };
  106. /**
  107. * 切换到指定页签
  108. * @param tab 页签下标
  109. * @returns
  110. */
  111. TabSwitching.prototype.curTabType = function (tab) {
  112. for (var i = 0; i < this.tab_count; i++) {
  113. if (i === tab) {
  114. this.onClockTabCall(this.arr_btn_tab[i], i);
  115. return;
  116. }
  117. }
  118. };
  119. __decorate([
  120. property({ type: cc.Button, displayName: '页签组', tooltip: '按钮target需要有值' })
  121. ], TabSwitching.prototype, "arr_btn_tab", void 0);
  122. TabSwitching = __decorate([
  123. ccclass
  124. /** 页签切换组件
  125. * - 只对样式进行处理
  126. * - 可注册其他回调,通过'comp-cur-click'事件
  127. * - 可初始化页签,通过'comp-cur-tab'事件
  128. * @author 薛鸿潇
  129. */
  130. ], TabSwitching);
  131. return TabSwitching;
  132. }(cc.Component));
  133. exports.default = TabSwitching;
  134. cc._RF.pop();
  135. }
  136. if (nodeEnv) {
  137. __define(__module.exports, __require, __module);
  138. }
  139. else {
  140. __quick_compile_project__.registerModuleFunc(__filename, function () {
  141. __define(__module.exports, __require, __module);
  142. });
  143. }
  144. })();
  145. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcc2NyaXB0XFxnYW1lXFxjb21wb25lbnRcXFRhYlN3aXRjaGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXdCLEVBQUUsQ0FBQyxVQUFVLEVBQW5DLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBa0IsQ0FBQztBQVM1QztJQUEwQyxnQ0FBWTtJQU50RDs7Ozs7TUFLRTtJQUNGO1FBQUEscUVBa0ZDO1FBakZHLFVBQVU7UUFFRixpQkFBVyxHQUFnQixFQUFFLENBQUM7UUFDdEMsV0FBVztRQUNILGVBQVMsR0FBRyxDQUFDLENBQUM7UUFDdEIsZ0JBQWdCO1FBQ1IsVUFBSSxHQUFHLElBQUksQ0FBQzs7SUEyRXhCLENBQUM7SUExRUcsNkJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixXQUFXO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFN0QsQ0FBQztJQUVELDRCQUFLLEdBQUw7SUFDQSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxtQ0FBWSxHQUFwQjtRQUNJLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNuRTtJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0sscUNBQWMsR0FBdEIsVUFBdUIsUUFBUSxFQUFFLE1BQU87UUFDcEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RCxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUUxQixJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxvQ0FBYSxHQUFyQixVQUFzQixJQUFjLEVBQUUsTUFBTTtRQUN4QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUNBQVksR0FBcEI7UUFDSSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekUsV0FBVyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxpQ0FBVSxHQUFsQixVQUFtQixHQUFXO1FBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLE9BQU87YUFDVjtTQUNKO0lBQ0wsQ0FBQztJQTlFRDtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO3FEQUNyQztJQUhyQixZQUFZO1FBUGhDLE9BQU87UUFDUjs7Ozs7VUFLRTtPQUNtQixZQUFZLENBa0ZoQztJQUFELG1CQUFDO0NBbEZELEFBa0ZDLENBbEZ5QyxFQUFFLENBQUMsU0FBUyxHQWtGckQ7a0JBbEZvQixZQUFZIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG4vKiog6aG1562+5YiH5o2i57uE5Lu2IFxyXG4gKiAtIOWPquWvueagt+W8j+i/m+ihjOWkhOeQhlxyXG4gKiAtIOWPr+azqOWGjOWFtuS7luWbnuiwg++8jOmAmui/hydjb21wLWN1ci1jbGljayfkuovku7ZcclxuICogLSDlj6/liJ3lp4vljJbpobXnrb7vvIzpgJrov4cnY29tcC1jdXItdGFiJ+S6i+S7tlxyXG4gKiBAYXV0aG9yIOiWm+m4v+a9h1xyXG4qL1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUYWJTd2l0Y2hpbmcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLyoqIOmhteetvue7hCAqL1xyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogY2MuQnV0dG9uLCBkaXNwbGF5TmFtZTogJ+mhteetvue7hCcsIHRvb2x0aXA6ICfmjInpkq50YXJnZXTpnIDopoHmnInlgLwnIH0pXHJcbiAgICBwcml2YXRlIGFycl9idG5fdGFiOiBjYy5CdXR0b25bXSA9IFtdO1xyXG4gICAgLyoqIOmhteetvuaVsOmHjyAqL1xyXG4gICAgcHJpdmF0ZSB0YWJfY291bnQgPSAwO1xyXG4gICAgLyoqIOeVjOmdoueCueWHu+mhteetvueahOWbnuiwgyAqL1xyXG4gICAgcHJpdmF0ZSBmdW5jID0gbnVsbDtcclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLnRhYl9jb3VudCA9IHRoaXMuYXJyX2J0bl90YWIubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuaW5pdFRhYlN0YXRlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0QnRuRXZlbnQoKTtcclxuICAgICAgICAvKiog6aG1562+5YiH5o2iICovXHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKCdjb21wLWN1ci10YWInLCB0aGlzLmN1clRhYlR5cGUsIHRoaXMpO1xyXG4gICAgICAgIC8vIOazqOWGjOeVjOmdouinpuaRuOWbnuiwg+OAguWPguaVsDHvvJrlh73mlbDvvIzlj4LmlbAy77yadGFyZ2V0XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKCdjb21wLWN1ci1jbGljaycsIHRoaXMub25UYWJCdG5DbGljaywgdGhpcyk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5Yid5aeL5YyW5oyJ6ZKu5LqL5Lu2XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW5pdEJ0bkV2ZW50KCkge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YWJfY291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLmFycl9idG5fdGFiW2ldLm5vZGUub24oJ2NsaWNrJywgdGhpcy5vbkNsb2NrVGFiQ2FsbCwgdGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6aG1562+5YiH5o2i5Zue6LCDXHJcbiAgICAgKiBAcGFyYW0gY29tcF9idG4g5oyJ6ZKu57uE5Lu2XHJcbiAgICAgKiBAcGFyYW0gcGFyYW1zIOWPguaVsFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uQ2xvY2tUYWJDYWxsKGNvbXBfYnRuLCBwYXJhbXM/KSB7XHJcbiAgICAgICAgdGhpcy5pbml0VGFiU3RhdGUoKTtcclxuXHJcbiAgICAgICAgbGV0IGJ0bl9ub2RlID0gY29tcF9idG4ubm9kZTtcclxuICAgICAgICBsZXQgaW1nX3N0eWxlXzEgPSBidG5fbm9kZS5nZXRDaGlsZEJ5TmFtZSgnaW1nX3N0eWxlXzEnKTtcclxuICAgICAgICBpbWdfc3R5bGVfMS5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICBsZXQgaW1nX3N0eWxlXzIgPSBidG5fbm9kZS5nZXRDaGlsZEJ5TmFtZSgnaW1nX3N0eWxlXzInKTtcclxuICAgICAgICBpbWdfc3R5bGVfMi5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZ1bmMgJiYgdGhpcy5mdW5jKGNvbXBfYnRuLCBwYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdWnnlYzpnaLms6jlhoznmoTmjInpkq7kuovku7ZcclxuICAgICAqIEBwYXJhbSBmdW5jIOS6i+S7tlxyXG4gICAgICogQHBhcmFtIHRhcmdldCDnm67moIfnsbtcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvblRhYkJ0bkNsaWNrKGZ1bmM6IEZ1bmN0aW9uLCB0YXJnZXQpIHtcclxuICAgICAgICB0aGlzLmZ1bmMgPSBmdW5jLmJpbmQodGFyZ2V0KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWIneWni+WMlumhteetvueKtuaAgVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGluaXRUYWJTdGF0ZSgpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFiX2NvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGltZ19zdHlsZV8xID0gdGhpcy5hcnJfYnRuX3RhYltpXS5ub2RlLmdldENoaWxkQnlOYW1lKCdpbWdfc3R5bGVfMScpO1xyXG4gICAgICAgICAgICBpbWdfc3R5bGVfMS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgbGV0IGltZ19zdHlsZV8yID0gdGhpcy5hcnJfYnRuX3RhYltpXS5ub2RlLmdldENoaWxkQnlOYW1lKCdpbWdfc3R5bGVfMicpO1xyXG4gICAgICAgICAgICBpbWdfc3R5bGVfMi5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiDliIfmjaLliLDmjIflrprpobXnrb5cclxuICAgICAqIEBwYXJhbSB0YWIg6aG1562+5LiL5qCHXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjdXJUYWJUeXBlKHRhYjogbnVtYmVyKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRhYl9jb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpID09PSB0YWIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DbG9ja1RhYkNhbGwodGhpcy5hcnJfYnRuX3RhYltpXSwgaSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19