如何利用和修改UI编辑器里导出的json

UILayer *layer = UILayer::create();

layer->addWidget(GUIReader::shareReader()>widgetFromJsonFile(“button.ExportJson”));

this->addchild(layer);

float a = layer->getChildByTag(4)->getPositionY();

CCLOG(“Position:%f”,a);

上述代码为什么不能获取button的位置啊,程序中断出错,求解

PS:
1.cocos版本2.2.2
2.可以在scene中显示,但不能获取位置

请使用Widget* UIHelper::seekWidgetByTag(Widget* root, int tag)方法获取widget节点。

我上述代码为什么在3.0版本就可以使用啊

int speed = dynamic_cast<UISlider*>(m_layout->getChildByTag(UI_SLIDER_SPEED))->getPercent();
这样的代码就可以在3.0下,2.2.2就不可以吗?

两个结构差很多~~

另外楼主,我没有widget的父节点,这个button添加到了自己写的scene中,这个函数怎么用啊

cocos2d-x2.x版本是不能这么直接加到node上的,需要先添加到touchgroup层上才行。

加到这个层再加UILayer吗?这样也是没有父widget吧,还是layer,之前函数还是不能用吧?

额,弄错了。UILayer就是touchgroup。方法在3.0跟2.0确实不同。当然,扯远了,你的问题应该是控件没有正确获取,你也可以试试用name获取。

好吧,不过感觉3.0和cocostudio配合使用好一些