不知道说什么

为什么
cocosstudio 新建的 的文件是 *csd

可 导出来到 vs 里加载的文件名成了 *.csb
我还以为是我以自己写错了,改了下成 csd
一跑 才知道,挂了,
我再换回去 又好了
这是要怎么样呀

我用是
cocos2dx 3.8
cocosstudio 2.3.3
哪位 好人可给个导出来 加载 运用的实例
本来是想着不用什么都直接写,可以用工具,一用才知道 不会

比如我在cocosstudio 里新建了一个场景 我也新建了层
可我是应该怎么得到上面的控件呢

可我怎么可以得到上面的控件呢,
我试过用cpptest里的方法,好像不行

跪求好人帮帮我

csb是二进制文件(发布的工程发布成二进制文件,想必二进制的优势你是知道的:加载速度快)
csd是工程文件,供cocos studio使用。

关于加载方法,cpptest的方法,我不用看,就知道是可以正常使用的,可能是你用错了。
auto button = static_castui::Button*(rootNode->getChildByName(“string”));

auto* welcome = CSLoader::createNode("LayerWelCome.csb");
if (welcome) {
    rootNode->addChild(welcome);

    welcome->setPosition(0, winsize.height);

    auto actiointo = MoveTo::create(1, Vec2(0, -(winsize.height / 4)));
    auto actionby = MoveTo::create(0.3, Vec2(0, 0));
    welcome->runAction(Sequence::create(actiointo, actionby, nullptr));
    
    auto button = static_cast<Button*>(welcome->getChildByName("Button_3"));
    if (button) {
        button->addClickEventListener(=](Ref* sender) {
            log("Button clicked");
        });
    }
}

这个是我写的方法

我用 cocosstudio 新建了一个 MainScene 还有一个 Layer
但我并没有 把我新建的 Layer  在工具里 添加到 MainScene
我只是单独的添加了一个 Layer  想在 C++里动态的加载

上面的代码就是我加载Layer 的代码

这样是没有问题 我显示出来了我新建的 Layer 也显示出我要的动作

可是问题来了,
我在那个Layer 上是有两个按钮 的
我按上面那样写 我调试过 得到的 button 是空的 也就是没有得到按钮控件 !!!!!

帮我看看 怎么哪里不对吗

还有一个问题就是我可不可以 在cocosstudio 里新建目录

就是我把新建 的 Scene Layer 放到不同的目录 里

auto rootNode = CSLoader::createNode(“aa/bbMainScene.csb”);
这样加载 的时候用相对路径加载
我试过也不行,也是我用的不对吗

还是有别的方法呢

1、auto* welcome

auto * 是什么意思?从没见过

2、使用ab/xxx.csb 是可以的,至于你为什么不行,那需要更多信息来判断错误原因。

ps:若还有后续疑问请去support.cocos.com提问

auto是C11里面的类型自动推导。

csd不传上来让人怎么看呢。
估计两个button没有直接挂载Layer下,所以找不到吧,Node::getChildByName是只搜直属Child的,要全局深度遍历,UIHelper里面有一个seekNodeByName,新版还有没保留我就不清楚了。

我现在上传的截图
是一个主场景
还有一个 层
就是我要加载 的那个层

上面是我加载的代码
下面是主场景

这个是我要加载 的那个层 在这个层上我有放两个按钮的

版主 可不可以给一个你用 3.8 的 加载一个场景
场景 上放个按钮 点击可以输出日志 的例子给我呢,

就一个简单的例子 也不用花费多少时间 的
先谢了

就是我上面说的错误。
Welcome这个Node的直属Child只有一个panel_1,要深度查找,用UIHelper里面的函数。

多谢谢 楼上几位朋友
你们的方法我试过了不行,
可能是我说的也没有太明白吧
不过没事,现在我可以找到控件了,也达到我想要的效果了