点击事件监听器遇到的问题

在一个方法中创建了精灵,然后为精灵绑定了监听器,点击精灵后弹出提示框 ,然后又为提示框绑定了监听器,点击提示框 提示框消失,当我只调用1次或者十几次这个方法时,不会触发点击事件,但是当我调用了40次以及更多的时候 ,又可以正常触发了,这是为什么?求大神。
代码如下:

auto plane = Sprite::create("/image/plane.png");
plane->setAnchorPoint(Vec2(0.5,0.5));
plane->setPosition(-200,700);
plane->setScaleX(0.15f);
plane->setScaleY(0.15f);
plane->setRotation(90.0f);
plane->setTag(LocationNumber);
this->addChild(plane,10);
auto listener_2 = EventListenerTouchOneByOne::create();
listener_2->setSwallowTouches(false);
listener_2->onTouchBegan =(cocos2d::Touch* touch,cocos2d::Event* event){
auto target = static_cast<Sprite*>(event->getCurrentTarget());
Point locationInSprite = target->convertToNodeSpace(touch->getLocation());
Size s = target->getContentSize();
Rect rect = Rect(0,0,s.width,s.height);
if (rect.containsPoint(locationInSprite))
{
auto uiLayer = GUIReader::shareReader()->widgetFromJsonFile("/imagest_1_2st_1.ExportJson");
auto numberText = static_cast<Text*>(uiLayer->getChildByName(“numberText”));
auto bg= static_cast<ImageView*>(uiLayer->getChildByName(“Image_2”));
bg->setTouchEnabled(true);
numberText->setString(number);
this->addChild(uiLayer,100);
auto listener_3 = EventListenerTouchOneByOne::create();
listener_3->setSwallowTouches(true);
listener_3->onTouchBegan =(cocos2d::Touch* touch,cocos2d::Event* event){
auto target = static_cast<Sprite*>(event->getCurrentTarget());
Point locationInSprite = target->convertToNodeSpace(touch->getLocation());
Size s = target->getContentSize();
Rect rect = Rect(0,0,s.width,s.height);
if (rect.containsPoint(locationInSprite)){
this->removeChild(uiLayer);
CCLOG(“touch”);
return true;
}
return false;
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener_3->clone(),bg);
return true;
}
return false;
};

附件有图片……