创建空白精灵

//创建空白精灵

Sprite* p=Sprite::create();p->setColor(Color3B::WHITE);p->setTextureRect(Rect(0,0,len,wid));

//创建遮盖层(即虽然可以点击,但却不做任何响应)
auto translucence = Sprite::create();
translucence->setColor(Color3B::WHITE);
translucence->setOpacity(150);
translucence->setTextureRect(Rect(0,0,size.width,size.height));
l->addChild(translucence);


translucence->setPosition(Vec2(size.width / 2, size.height / 2));
auto lis = EventListenerTouchOneByOne::create();
lis->setSwallowTouches(true);
lis->onTouchBegan = [](Touch* t, Event* e){
auto target = static_cast<Sprite*>(e->getCurrentTarget());
auto touchLocation = target->convertToNodeSpace(t->getLocation());
if (target->getBoundingBox().containsPoint(touchLocation))
CCLOG("s");
return true;
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(lis, translucence);

**使用setSwallowTouches(argc)//   argc==true,两个重叠的精灵(添加在同一个父级容器里),触摸上面的精灵,下面的精灵将不会响应事件;

argc==false,下面的精灵将会响应事件。

使用时onTouchBegan的返回值必须为return true才起作用

**pauseEventListenersForTarget(node,true)   //为true时,将会停止node(我测试的只有node为layer类型时才有效)本身以及其子节点的监听事件,也就不会响应事件,使用时通过有相应的点击事件来触发

   resumeEventListenersForTarget (node,true)  //起相反的作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值