请耐心听我描述下问题, 根据我调试结果出现了这样的现象:
如下代码可看到, 我往层中添加了 一个按钮 和 一个已经设计好的UI
UI中有一个 进度条, 我在代码中已经把他提取出来, 并且存储在了m_hpBar中了
然后我为按钮和m_hpBar都添加了事件监听 , 并且使用同样的回调函数
然后我启动程序时, 单击按钮 能够成功的调用回调函数, 而我单击进度条却不会触发回调函数。
求解: 是因为进度条不接受单击事件吗
bool HelloWorld::init()
{
if (!Layer::init())
{
return false;
}
/* 加载UI */
auto UI = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("MoreUI_1.ExportJson");
UI->setPosition(Point(100, 100));
this->addChild(UI);
/* 获取控件对象 */
auto m_hpBar = (LoadingBar*)Helper::seekWidgetByName(UI, "hpBar");
/* 添加点击监听 */
m_hpBar->addTouchEventListener(this, toucheventselector(HelloWorld::onClick));
m_hpBar->setPercent(50);
Button * btn = Button::create("CloseNormal.png");
btn->addTouchEventListener(this, toucheventselector(HelloWorld::onClick));
this->addChild(btn);
btn->setPosition(Point(300, 300));
return true;
}
void HelloWorld::onClick(Ref*, TouchEventType type)
{
switch (type)
{
case TouchEventType::TOUCH_EVENT_ENDED:
m_hpBar->setPercent(m_hpBar->getPercent() - 1);
break;
}
}
```