ScrollInner.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/script/utils/ScrollInner.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, 'af860FHLchIS5AViwFYRoCQ', 'ScrollInner');
  13. // script/utils/ScrollInner.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, menu = _a.menu;
  36. var ScrollInner = /** @class */ (function (_super) {
  37. __extends(ScrollInner, _super);
  38. function ScrollInner() {
  39. var _this = _super !== null && _super.apply(this, arguments) || this;
  40. _this.canScroll = true;
  41. return _this;
  42. //#endregion
  43. }
  44. ScrollInner.prototype.setOuterScrollView = function (outer) {
  45. this.scrollOutView = outer;
  46. };
  47. //#region 重写cc.ScrollView的方法
  48. ScrollInner.prototype._onTouchMoved = function (event, captureListeners) {
  49. if (!this.enabledInHierarchy)
  50. return;
  51. if (this._hasNestedViewGroup(event, captureListeners))
  52. return;
  53. var touch = event.touch;
  54. var deltaMove = touch.getLocation().sub(touch.getStartLocation());
  55. if (this.content) {
  56. if (this.canScroll) {
  57. this["_handleMoveLogic"](touch);
  58. }
  59. }
  60. if (!this.cancelInnerEvents) {
  61. return;
  62. }
  63. if (deltaMove.mag() > 7) {
  64. if (!this["_touchMoved"] && event.target !== this.node) {
  65. var cancelEvent = new cc.Event.EventTouch(event.getTouches(), event.bubbles);
  66. cancelEvent.type = cc.Node.EventType.TOUCH_CANCEL;
  67. cancelEvent.touch = event.touch;
  68. cancelEvent["simulate"] = true;
  69. event.target.dispatchEvent(cancelEvent);
  70. this["_touchMoved"] = true;
  71. }
  72. }
  73. this["_stopPropagationIfTargetIsMe"](event);
  74. };
  75. //#region 重写cc.ScrollView的方法
  76. ScrollInner.prototype._hasNestedViewGroup = function (event, captureListeners) {
  77. if (event.eventPhase !== cc.Event.CAPTURING_PHASE)
  78. return;
  79. //不阻止out上onTouch事件执行。
  80. return false;
  81. };
  82. ScrollInner = __decorate([
  83. ccclass,
  84. menu('Scroll/ScrollInner')
  85. ], ScrollInner);
  86. return ScrollInner;
  87. }(cc.ScrollView));
  88. exports.default = ScrollInner;
  89. cc._RF.pop();
  90. }
  91. if (nodeEnv) {
  92. __define(__module.exports, __require, __module);
  93. }
  94. else {
  95. __quick_compile_project__.registerModuleFunc(__filename, function () {
  96. __define(__module.exports, __require, __module);
  97. });
  98. }
  99. })();
  100. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3JpcHQvdXRpbHMvU2Nyb2xsSW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUE4QixFQUFFLENBQUMsVUFBVSxFQUF6QyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxJQUFJLFVBQWtCLENBQUM7QUFJbEQ7SUFBeUMsK0JBQWE7SUFBdEQ7UUFBQSxxRUErQ0M7UUE1Q0csZUFBUyxHQUFZLElBQUksQ0FBQTs7UUEyQ3pCLFlBQVk7SUFDaEIsQ0FBQztJQTFDRyx3Q0FBa0IsR0FBbEIsVUFBbUIsS0FBSztRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLG1DQUFhLEdBQWIsVUFBYyxLQUFLLEVBQUUsZ0JBQWdCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCO1lBQUUsT0FBTztRQUNyQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUM7WUFBRSxPQUFPO1FBRTlELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkM7U0FDSjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBRUQsSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNwRCxJQUFJLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdFLFdBQVcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxXQUFXLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQy9CLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO2FBQzlCO1NBQ0o7UUFDRCxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLHlDQUFtQixHQUFuQixVQUFvQixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWU7WUFBRSxPQUFPO1FBQzFELHFCQUFxQjtRQUNyQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBN0NnQixXQUFXO1FBRi9CLE9BQU87UUFDUCxJQUFJLENBQUMsb0JBQW9CLENBQUM7T0FDTixXQUFXLENBK0MvQjtJQUFELGtCQUFDO0NBL0NELEFBK0NDLENBL0N3QyxFQUFFLENBQUMsVUFBVSxHQStDckQ7a0JBL0NvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNjcm9sbE91dCBmcm9tIFwiLi9TY3JvbGxPdXRcIjtcblxuY29uc3QgeyBjY2NsYXNzLCBwcm9wZXJ0eSwgbWVudSB9ID0gY2MuX2RlY29yYXRvcjtcblxuQGNjY2xhc3NcbkBtZW51KCdTY3JvbGwvU2Nyb2xsSW5uZXInKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2Nyb2xsSW5uZXIgZXh0ZW5kcyBjYy5TY3JvbGxWaWV3IHtcblxuICAgIHNjcm9sbE91dFZpZXc6IFNjcm9sbE91dFxuICAgIGNhblNjcm9sbDogYm9vbGVhbiA9IHRydWVcblxuICAgIHNldE91dGVyU2Nyb2xsVmlldyhvdXRlcikge1xuICAgICAgICB0aGlzLnNjcm9sbE91dFZpZXcgPSBvdXRlcjtcbiAgICB9XG5cbiAgICAvLyNyZWdpb24g6YeN5YaZY2MuU2Nyb2xsVmlld+eahOaWueazlVxuICAgIF9vblRvdWNoTW92ZWQoZXZlbnQsIGNhcHR1cmVMaXN0ZW5lcnMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVuYWJsZWRJbkhpZXJhcmNoeSkgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy5faGFzTmVzdGVkVmlld0dyb3VwKGV2ZW50LCBjYXB0dXJlTGlzdGVuZXJzKSkgcmV0dXJuO1xuXG4gICAgICAgIHZhciB0b3VjaCA9IGV2ZW50LnRvdWNoO1xuICAgICAgICB2YXIgZGVsdGFNb3ZlID0gdG91Y2guZ2V0TG9jYXRpb24oKS5zdWIodG91Y2guZ2V0U3RhcnRMb2NhdGlvbigpKTtcblxuICAgICAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jYW5TY3JvbGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzW1wiX2hhbmRsZU1vdmVMb2dpY1wiXSh0b3VjaCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuY2FuY2VsSW5uZXJFdmVudHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWx0YU1vdmUubWFnKCkgPiA3KSB7XG4gICAgICAgICAgICBpZiAoIXRoaXNbXCJfdG91Y2hNb3ZlZFwiXSAmJiBldmVudC50YXJnZXQgIT09IHRoaXMubm9kZSkge1xuICAgICAgICAgICAgICAgIHZhciBjYW5jZWxFdmVudCA9IG5ldyBjYy5FdmVudC5FdmVudFRvdWNoKGV2ZW50LmdldFRvdWNoZXMoKSwgZXZlbnQuYnViYmxlcyk7XG4gICAgICAgICAgICAgICAgY2FuY2VsRXZlbnQudHlwZSA9IGNjLk5vZGUuRXZlbnRUeXBlLlRPVUNIX0NBTkNFTDtcbiAgICAgICAgICAgICAgICBjYW5jZWxFdmVudC50b3VjaCA9IGV2ZW50LnRvdWNoO1xuICAgICAgICAgICAgICAgIGNhbmNlbEV2ZW50W1wic2ltdWxhdGVcIl0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldC5kaXNwYXRjaEV2ZW50KGNhbmNlbEV2ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzW1wiX3RvdWNoTW92ZWRcIl0gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXNbXCJfc3RvcFByb3BhZ2F0aW9uSWZUYXJnZXRJc01lXCJdKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyNyZWdpb24g6YeN5YaZY2MuU2Nyb2xsVmlld+eahOaWueazlVxuICAgIF9oYXNOZXN0ZWRWaWV3R3JvdXAoZXZlbnQsIGNhcHR1cmVMaXN0ZW5lcnMpIHtcbiAgICAgICAgaWYgKGV2ZW50LmV2ZW50UGhhc2UgIT09IGNjLkV2ZW50LkNBUFRVUklOR19QSEFTRSkgcmV0dXJuO1xuICAgICAgICAvL+S4jemYu+atom91dOS4im9uVG91Y2jkuovku7bmiafooYzjgIJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==