在游戏中加载cocostudio编辑好的场景json文件后,可以通过tag来获取子节点,再通过getComponent来获取该子节点的模块。
假设有一个场景MainMenuScene.json,其中包含一个子节点Node,tag是10013,这个子节点有一个GUI组件,程序中可以这样获取:
Node *scene = SceneReader::getInstance()->createNodeWithSceneFile("MainMenuScene.json");
ComRender *render = static_cast<ComRender*>(scene->getChildByTag(10013)->getComponent("GUIComponent"));
Widget* widget = static_cast<cocos2d::ui::Widget*>(render->getNode());
这样做没问题,但是毕竟通过tag来做,可读性有点不好,在ccs的场景编辑其中,对于添加的node有一个“别名”的属性,假设将上面的节点的别名改为: “MainMenuNode”,想请问下是否可以在游戏中,通过这个别名,来获取对应的Node对象,像是:
Node *scene = SceneReader::getInstance()->createNodeWithSceneFile("MainMenuScene.json");
Node *mainMenuNode = scene->getChildByName("MainMenuNode");
ComRender *render = static_cast<ComRender*>(mainMenuNode->getComponent("GUIComponent"));
Widget* widget = static_cast<cocos2d::ui::Widget*>(render->getNode());
这样代码可读性更强一点。
希望高手指点,谢谢 
