创建空白精灵

来源:互联网 发布:windows ftp命令详解 编辑:程序博客网 时间:2024/05/19 16:06

//创建空白精灵

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)  //起相反的作用

原创粉丝点击