RichText做弹幕会劫持消息,消息不会向下层传递

RichText做弹幕会劫持消息,消息不会向下层传递,无法点击到弹幕下面的按钮。

这个怎么解决?

使用Label没有这个问题,这个应该很好解决,求解决。

Creator 的还是 cocos2d-x 的?

应该算是Creator吧,我使用的Creator,我以为这个是属于Coccos2d-x实现的。

RichText 有监听 TOUCH END 事件,那么如果弹幕在你的按钮上层,并且按钮不在 RichText 的父节点树中的情况下,RichText 会阻断事件。

  1. 你可以尝试把按钮放在弹幕之上
  2. 还有个方案比较 hack:
richTextNode.off(cc.Node.EventType.TOUCH_END, richTextComp._onTouchEnded, richTextComp);
// or 
richTextNode.off(cc.Node.EventType.TOUCH_END);

我刚试了richTextNode.off(cc.Node.EventType.TOUCH_END);没有效果。

这个方法在我的需求里是不行的,下层的界面会一直变的,弹幕是会在所有情况下存在。

使用这个方法暂时可以了。

使用这个方法,你就不能使用 click 的 tag 了,提醒一下。

暂时使用这个,等你们的修正版本,暂时弹幕也没有click的需求。

Widget无法对RichText起作用,还有这个问题,可以一起解决了哈。

我说的是显示关系,按钮在上面

这个也不符合我们的设计,弹幕应该显示在最上层的。

Widget 对 RichText 起作用,这个暂时比较困难,因为现在 RichText 的 size 是由自身的内容控制的,相当于只实现了 Label 的 None 模式的功能。你说的应该是 Widget 可以控制 RichText 的 Size 吧?

对的,目前就是Widget 不能控制 RichText 的 Size ,我新项目是完全自适应的,按理不会太难啊,只要监听大小变化的消息,然后把当前RichText调整一下size就可以了,因为现在手动是可以调整size的。或者在RichText外面再包一个node,这个node可以自适应后,根据当前node去计算新的RichText的size和位置就行了。

调整 Size 是不难,问题是调整 Size 以后,RichText 的行为怎么处理,是 shrink 还是 clamp?还是什么都不管?

richTextNode.off(cc.Node.EventType.TOUCH_END, richTextComp._onTouchEnded, richTextComp); 这个方案已经无效了。
现在要如何取消richtext的劫持消息?