CocoStudioで深い階層にあるButtonとかを楽に取得するUtilつくった
上記ような、階層が深い時に普通にgetChildByName
しても取得できません。
めんどくさいけど、以下のように全部指定すれば一応とれます。
auto layout = GUIReader::getInstance()->widgetFromJsonFile("xxxxxx.json"); auto button = dynamic_cast<Button*>(layout->getChildByName("fotter_menu_panel")->getChildByName("fotter_menu_1_0")->getChildByName("fotter_button_0"));
順番把握しないといけないし、間違えたらヌルポだしこれは辛いので以下のUtil作りました。
使い方
xxxxxx.json
は、各自UIEditorで作成してExportしたもの。
auto layout = GUIReader::getInstance()->widgetFromJsonFile("xxxxxx.json"); auto button = dynamic_cast<Button*>(WidgetUtil::getChildByNameRecursion(layout, "fotter_button_0")); button->addTouchEventListener([](Ref *ref, Widget::TouchEventType type) { if (type == Widget::TouchEventType::ENDED) { // 処理 CCLOG("fotter_button_0 touch ended."); } });