怎么让两个按钮的状态保持同步?

版本:Cocos 2.4.7
问题:
怎么让两个按钮的状态保持同步?

有两个按钮 btn1, btn2 都设置 Transition 为 Sprite,有 normal 和 pressed 两个状态;
当 btn1 处于 pressed 状态时,btn2 也要处于 pressed 状态;
当 btn1 恢复到 normal 状态时,btn2 也要恢复到 normal 状态。
当 btn2 处于 pressed 状态时,btn1 也要处于 pressed 状态;
当 btn2 恢复到 normal 状态时,btn1 也要恢复到 normal 状态。

我想到的方案:
方案1:
监听 btn1 的状态,并且同步给 btn2。btn2 的点击事件委托给 btn1。
但是在文档里没找到相关事件可以监听;
方案2:
在 update 函数里每一帧去判断 btn1 当前状态,然后手动设置 btn2 的状态,
但是没找到可以获取按钮状态的 api;

新人刚接触 Cocos,目前还没有找到解决方案,希望能得到大家的帮助,感谢。

我有个想法,可以试试按钮上的按钮,把btn1和btn2放在btn3上,只改变3的sprite

发射和监听事件 · Cocos Creator

没看懂。两个按钮绑定同一个事件不行吗?

监听内置事件 TOUCH_START,然后用代码修改按钮图片;不使用 IDE 内置的 Transition;

每个按钮clickevents 加2个绑定函数。1个处理各自业务,另一个处理统一业务

推荐用这种方法。
监听下面三个事件自己实现点击就好了,很简单的

this.node.on(cc.Node.EventType.TOUCH_START, this._touchStart, this);
this.node.on(cc.Node.EventType.TOUCH_END, this._touchEnd, this);
this.node.on(cc.Node.EventType.TOUCH_CANCEL, this._touchCancel, this);

不如换种思维,直接用替换sprite来替代点击效果?

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。