cocosCreator removeComponent() 与 addComponent() 问题发现

removeComponent() 与 addComponent() 问题发现

提示:当我使用这两个组件时,发现了一些容易让人犯错的问题,与大家分享,避免踩坑。

前言

提示:这里可以添加本文要记录的大概内容:

例如:当我某天下午,使用这两个api时,发现,无论怎么使用都无法实现对应的效果,经过在论坛和百度上的一顿翻箱倒柜,终于发现了一些原由,发现很容易犯错,特此分享。


提示:话不多说,直接上问题和解决方案!

一、问题发现,上案例,如下:

新建如图样式demo
cocosCreator removeComponent() 与 addComponent() 问题发现_第1张图片
编写如下代码
![在这里插入图片描述](https://img-blog.csdnimg.cn/a8a15f99af5c4a168e44c4cf8f7ec5a0.pngcocosCreator removeComponent() 与 addComponent() 问题发现_第2张图片
将脚本挂载与Canvas节点下
cocosCreator removeComponent() 与 addComponent() 问题发现_第3张图片
将按钮节点绑定事件
cocosCreator removeComponent() 与 addComponent() 问题发现_第4张图片
最终得出如下结果
cocosCreator removeComponent() 与 addComponent() 问题发现_第5张图片
可以看到,我们更换组件(component)时会出现无法成功加载图片。
但经过我们输出节点信息,发现组件是已经设置成功的
cocosCreator removeComponent() 与 addComponent() 问题发现_第6张图片
cocosCreator removeComponent() 与 addComponent() 问题发现_第7张图片
所以大胆猜测如果添加的节点 sprite 是当前帧处理,而处理节点纹理(图片)是下一帧才会进行渲染,这里很可能会误认为删除组件无效或者添加组件无效,当我们延迟加载一帧,就可以成功。如下:
cocosCreator removeComponent() 与 addComponent() 问题发现_第8张图片
得到最终结果
cocosCreator removeComponent() 与 addComponent() 问题发现_第9张图片

总结

提示:这里对文章进行总结:

这里只是为了让大家更好必坑,对于removeComponent()论坛有相关讨论,链接在此,供大家参考!感谢阅读!

你可能感兴趣的:(creator开发热知识,游戏程序,游戏引擎,javascript)