RichText做弹幕会劫持消息,消息不会向下层传递,无法点击到弹幕下面的按钮。
这个怎么解决?
使用Label没有这个问题,这个应该很好解决,求解决。
Creator 的还是 cocos2d-x 的?
应该算是Creator吧,我使用的Creator,我以为这个是属于Coccos2d-x实现的。
RichText 有监听 TOUCH END 事件,那么如果弹幕在你的按钮上层,并且按钮不在 RichText 的父节点树中的情况下,RichText 会阻断事件。
- 你可以尝试把按钮放在弹幕之上
- 还有个方案比较 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的劫持消息?