当我这样做的时候,它是有效的:
Layout* layout = Layout::create();
layout->setLayoutType(Layout::Type::HORIZONTAL);
layout->setContentSize(Size(280, 150));
layout->setPosition(Vec2(visibleOrigin.x + 100, visibleOrigin.y + visibleSize.height - 100));
addChild(layout);
auto jacket = Button::create("jacket.png", "jacket.png", "jacket.png", Widget::TextureResType::PLIST);
layout->addChild(jacket);但是,当我这样做时(添加了一个雪碧,而不是添加在上面的代码中的按钮):
Layout* layout = Layout::create();
layout->setLayoutType(Layout::Type::HORIZONTAL);
layout->setContentSize(Size(280, 150));
layout->setPosition(Vec2(visibleOrigin.x + 100, visibleOrigin.y + visibleSize.height - 100));
addChild(layout);
auto jacket = Sprite::createWithSpriteFrameName("jacket.png");
layout->addChild(jacket);然后,我将在带有消息layout->addChild(jacket);的Expression: vector subscript out of range上获得断言失败。我想精灵在布局上不受支持吧?那么,在布局中添加和显示图像的正确方法是什么?我应该按下面的方式使用ImageView吗?
auto jacket = ImageView::create("jacket.png",TextureResType::PLIST);
layout->addChild(jacket);如果是,那为什么?Sprite和Image的区别是什么?
发布于 2014-07-30 07:00:48
如果我正确理解,按钮将尝试加载名为" jacket.png“的单个文件,而createWithSpriteFrameName初始化程序将尝试从先前加载的纹理图谱中获取jacket.png帧。
这个问题可能很简单,比如在运行此代码之前,夹克图像没有出现在纹理地图集中,或者地图集(帧)没有加载。
https://stackoverflow.com/questions/25029560
复制相似问题