【发布时间】:2014-03-07 06:24:37
【问题描述】:
我只想更改一个标签的背景样式,该标签位于它自己的表格中,以及它自己的图层中,该图层添加到堆栈中的其他图层之上。但是,当我分配它时,其他表的所有其他层中的所有标签也被分配了该背景。我不明白为什么会这样。我正在使用 libgdx 0.9.8。我创建的 skinLibgdx 使用带有字体和小背景图像的基本 png(这就是“白色”的来源)。
lblGameMessage = new Label(" ", skinLibgdx.get(LabelStyle.class)); //skinLibgdx is a Skin - TextureAtlas
...
lblGameMessage.getStyle().background = skinLibgdx.newDrawable("white", 0.2f, 0.2f, 0.2f, 0.8f);
这是一个错误吗?为什么所有其他标签都会受此影响? 在该行之后,我尝试将其他标签设置回黑色,但随后我的 lblGameMessage 也设置为黑色。
lblLevel = new Label("Level: ", skinLibgdx.get(LabelStyle.class));
...
lblLevel.getStyle().background = skinLibgdx.newDrawable("white", 0, 0, 0, 1);
【问题讨论】:
-
您为
lblGameMessage和lblLevel对象使用了哪个构造函数?他们很可能正在共享一个样式实例。 -
用构造函数编辑了问题。我从来没有创建过 LabelStyle,不太了解需要它的文档和原因。下面给出的答案有更多的 cmets。
标签: colors background styles label libgdx