- Creator 版本:2.2
同一个节点下挂四个按钮,按钮的customEventData分别设置成1~4,这样就可以通过这个参数确定是点击的是哪个按钮,这个我懂了。主要我想请教一下,customEventData参数能不能传递到别的节点?我想统一弄一个所有音效的根节点,把所有音效和播放相关的指令都放在里面。然后任何一个节点上的按钮,都可以通过点击传递出的customEventData参数,指令音效根节点播放指定音效,但发现是不行的,麻烦各位大大了,如果customEventData参数只在本节点内有效,那我该怎么实现我想要的功能?是用那个emit发送参数?
下图是在按钮所在节点的代码:
下图是音效根节点的代码

我已经测试过,如果音效节点像这样写代码:

运行就没有问题,换句话,我其他设置都没有错,唯一出错的地方,就是customEventData参数并没有成功传递过来
你把customEventData当参数传进去不就行了么,还有,你的音频组件可以做成全局的。
能不能详细说一下,怎么个传入办法?另外,您这么说,就是说customEventData不能传到别的节点是吗?我最主要想了解这点。因为如果能传出来,那会方便很多。不然的话,其实有的是办法,最傻最直接的办法,每个音效单独弄,
audioPlay1( ) { }
audioPlay2( ) { }
audioPlay3( ) { }
…
这样其实也行
audioPlay(customsEventData) 然后在audioPlay里面判断
谢谢您,解决了,我一开始就是这样传递,只是我当时用的是switch选择,没有效果,现在改用if进行条件判断,就可以了。我现在还搞不明白为什么switch不行,果然我还是太小白了,匆匆学了一个月java就直接搞,果然基础太薄弱是不行的
switch 使用 === 进行相等判断
if 使用 == 进行相等判断
如果你if使用 === 进行判断估计和switch一样的结果
感谢您解惑,懂了
实际问题应该是因为customsEventData参数是字符串的,你传的是数字进去,但是实际上是个字符串类型的参数回来,所以进行‘===’判断会不等于,而‘==’判断是值相等,类型可以不相等,所以你可以在switch中使用case “1”:这样的方式判断,就可以了
