Cocos studio 3.10 导入1.6 工程不能获取控件

原来的工程是用studio1.6做的,现在升级到cocos3.13版本了,1.6版本到处的csb不能用了,于是把studio也升级到3.10了,现在问题来了,新建工程导入的1.6工程,发布出来的csb文件可以加载显示界面,不过用getChildByName,获取控件为空,写了个测试,有层级结构的直接获取子控件也为空,请问有没有一个比较省事的方法,可以完美使用1.6的工程

我自己试了一下,自己在用的时候把层级关系用上,就能解决,不过挺麻烦的

getChildByTag(tag);

好谢谢回来试试

我用了一下,结果取到的值为空

auto rootNode = CSLoader::createNode(“xxx.csb”);
this->addChild(rootNode);
auto Num = (ImageView*)rootNode->getChildByTag(6);
//逻辑标签为6的imageview对象

log("%f,%f", Num->getPositionX(), Num->getPositionY());

2赞

#include “cocostudio/CocoStudio.h”
#include “ui/CocosGUI.h”
USING_NS_CC;
using namespace cocos2d::ui;
using namespace cocostudio::timeline;
using namespace cocostudio;

2赞

我试了一下成功了

谢谢你的解答
网上找了一个递归的方法也可以实现,把我改的llua代码贴一下。

function IWindow:seekNodeByName(root, name)

if ( nil ==root) then
   return nil
end

if (root:getName() == name) then
   return  root
end
local arrayRootChildren = root:getChildren()
for i,v in pairs(arrayRootChildren) do
    if (nil ~= v) then
      local res = self:seekNodeByName(v,name)
      
      if (res ~= nil ) then
            return res
      end
    end
end

end