Creator3.8.3与3.8.5下都出现这个问题。其它版本我没试过。以前的Cocos2dx没这个问题。
问题:创建两个ScrollView。一个横向ScrollView,横向ScrollView里面嵌套一个竖向ScrollView2。现在要求通过竖向ScrollView2横向滑动来带动外层那个横向ScrollView滑动。于是通过在ScrollView2上设置preventSwallow来实现这一点。实现后发现ScrollView2里的按钮只能带动ScrollView2竖向滑动,而不能带动外层的ScrollView横向滑动。以前的Cocos2dx是可以带动外层的ScrollView横向滑动的。
UI图:
代码:
import { _decorator, Component, EventTouch, Node, ScrollView } from ‘cc’;
const { ccclass, property } = _decorator;
@ccclass(‘gameScene’)
export class gameScene extends Component {
start() {
let node = this.node.getChildByPath(‘ScrollView/view/content/ScrollView2’)
node.on(Node.EventType.TOUCH_START, this.onTouch, this)
node.on(Node.EventType.TOUCH_MOVE, this.onTouch, this)
node.on(Node.EventType.TOUCH_CANCEL, this.onTouch, this)
node.on(Node.EventType.TOUCH_END, this.onTouch, this)
let node2 = this.node.getChildByPath('ScrollView')
node2.on(Node.EventType.TOUCH_START, this.onTouch0, this)
node2.on(Node.EventType.TOUCH_MOVE, this.onTouch0, this)
node2.on(Node.EventType.TOUCH_CANCEL, this.onTouch0, this)
node2.on(Node.EventType.TOUCH_END, this.onTouch0, this)
}
update(deltaTime: number) {
}
onTouch(event:EventTouch){
console.log('onTouch')
event.preventSwallow = true
}
onTouch0(event:EventTouch){
console.log('onTouch0')
}
}
运行起来可以看到Button2的触摸事件是有到达ScrollView2与ScrollView的。但却无法带动外层的ScrollView横向滑动。不知是什么原因。在Creator 3.8下有办法让Button2的触摸事件带动外层的ScrollView横向滑动吗?

