UI事件, 如"button, node.on()" 回调是在update之前,之后,之中?

官方文档好像没写, 发生在当前节点的 update之前之后, 还是整个生命周期的update之前之后

在 Cocos Creator 中,Button 组件的 click 事件发生在 update 函数之后。
具体来说,事件的触发发生在 lateUpdate 阶段之后。
:scroll: 生命周期回调顺序
一个组件从初始化到激活,再到最终销毁的完整生命周期函数调用顺序如下:
onLoad
onEnable
start
update (每一帧渲染前调用)
lateUpdate (每一帧渲染后调用)
事件处理 (如 Button 的 click 事件)
onDisable
onDestroy
因此,在 update 函数中修改的逻辑或状态,会在同一帧内的事件处理中被响应。
问的AI哈哈哈哈,遇事不决问AI :rofl:

 start()
{
    this.node.on(Node.EventType.TOUCH_END, this.onClick, this);
}

onClick()
{
    let 当前帧 = director.getTotalFrames();
    console.log(`[${this.node.name} 第 ${当前帧} 帧] ---> 1. 触发了 UI/Node 事件回调 (onClick)`);
}

update()
{
    let 当前帧 = director.getTotalFrames();
    console.log(`[${this.node.name}第 ${当前帧} 帧] ---> 2. 执行了 当前组件的 update`);
}

e6d77213-2ab5-4fb5-b30b-7ec44d241985

Ai应该回答错了

看了下源码,AI确实在瞎说。

1赞

button 的 node.on 和 update 的时序根本不用关心,如果要关心说明你的代码设计耦合了,设计就错了。