RT 小白最近在学习滚动列表 想要处理嵌套滚动
论坛搜了一圈 发现还是重写hasNestedViewGroup方法 直接返回false最简单
具体源码可自行查看引擎源码或论坛搜索了解
那么如何在尽量不改动引擎源码的情况下hook 下面给出我的做法
let { value: origin } = Object.getOwnPropertyDescriptor(cc.ScrollView.prototype, 'hasNestedViewGroup');
Object.defineProperty(cc.ScrollView.prototype, 'hasNestedViewGroup', {
configurable: true,
enumerable: true,
writable: false,
value: function (event: cc.Event.EventTouch, captureListeners: cc.Node[]) {
if (event.eventPhase !== cc.Event.CAPTURING_PHASE) return;
if (this.nested) return false;
return origin.call(this, event, captureListeners);
},
});
