看到好多帖子说RichText携带参数的问题,其中有一些解决办法是修改引擎,笔者一向对引擎修改不支持(主要是懒),于是就去测试了一番
很明显RichText的click参数仍然只是字符串,既然如此,我们直接传字符串不就完事了吗?
首先我们定义一个参数对象

然后将对象转成字符串拼接后赋给RichText组件
let str2 = "</c><color=#0fffff click=\"handler\" " +"param="+"'" +JSON.stringify(param)+"'"+"><u>参数测试</u></c>" this._lbTitle = this.node.getChildByName("lb_title").getComponent(cc.RichText); this._lbTitle.string = str1; fl.GlobalFunction.createRichTextCallback(this._lbTitle.node,this);
定义回调方法:
handler(event,param){ let p = JSON.parse(param); console.log("richText ClickOk!!!:",p); },
结果:

一切如想象中那般美好……
