我敢确定的是,做完这个项目立马投奔unity,这处处的坑真是让我太受罪了。
在做这么一个功能,一个建筑物,点击后显示功能菜单,点击菜单某一项后,加载perfab页面。执行各种给建筑物添加node的操作。
因为点击菜单后,建筑的选中状态要去掉,菜单消失掉,所以,保存在CCCLASS中的m_build 变量会设为null。
好了,高潮来了。噩梦也来了。
加载perfab因为是异步,所以执行到加载完perfab的时候,m_building已经为null。有观众说了,干什么不阻止冒泡,阻止冒泡会导致不会取消选中状态。
功能菜单是用UI编辑实现的,不使用代码,也就是给button events+1,我尝试阻止冒泡,在事件的回调中,stopPropagation。没有奏效。好吧,那我查看下冒泡的状态。
event.bubbles \\\显示为true。有冒泡。那我这么写。
console.log(event.bubbles) \\true
event.stopPropagation
console.log(event.bubbles) \\true
心中一万个草泥马飞奔而过。这stopPropagation就跟闹着玩似的。