今天做点击头像弹出人物详细信息面板,不点击关闭按钮,直接点击屏幕其他地方关闭的功能。在人物信息Layer添加了触屏事件,onTouchBegan不响应。 最后在网上查了一圈资料,有人说是cocos studio的问题,我试了一下,果然是,现在记录一下。
勾选上了交互性选项的layer反而不能触发触摸事件,所以要想自己写触摸事件的layer,需要自己去编辑器里面把交互性勾选掉。
分析一下:
我原来的代码是给整个界面的layer绑定了触摸事件
//创建一个点击事件
m_pTouchListener = EventListenerTouchOneByOne::create();
m_pTouchListener->setSwallowTouches(true);//阻止触摸向下传递
m_pTouchListener->onTouchBegan = [&](Touch* touch, Event* event)
{
//逻辑
return true;
};
//把点击监听添加到监听序列中,因为只创建了一个监听,一个监听只能绑定到一个对象上,所以其他对象要使用监听则克隆