测试环境,cocos 3.4.2,android 12,小米手机,
- 双指依次点击,按住屏幕不放,按钮在0.5秒之后出现在双指下方,按照点击顺序依次放开双指;
- 双指依次点击按钮,待双指都落在屏幕之上,再依次放开双指;
- 重复第一步,便可发现 id 为 1 的第二次点击,其 end 事件由按钮响应了。
以上的 log 中,==> button _onTouchEnded ... 在通过 ts engine 的 button 脚本中添加了日志得到,如下,
export class Button extends Component {
...
// touch event handler
protected _onTouchBegan (event?: EventTouch) {
console.log('==> button _onTouchBegan ', this._pressed, event?.getID(), event);
if (!this._interactable || !this.enabledInHierarchy) { return; }
this._pressed = true;
this._updateState();
if (event) {
event.propagationStopped = true;
}
}
protected _onTouchEnded (event?: EventTouch) {
console.log('==> button _onTouchEnded ', this._pressed, event?.getID(), event);
if (!this._interactable || !this.enabledInHierarchy) {
return;
}
if (this._pressed) {
ComponentEventHandler.emitEvents(this.clickEvents, event);
this.node.emit(EventType.CLICK, this);
}
this._pressed = false;
this._updateState();
if (event) {
event.propagationStopped = true;
}
}
...
}
demo 见下,
test-double-touch.zip (18.6 KB)

