【问题标题】:How can I change the style of a property dialog in LibGDX using JSON?如何使用 JSON 在 LibGDX 中更改属性对话框的样式?
【发布时间】:2014-01-31 01:37:11
【问题描述】:

在我的libGdx 项目中,我使用.json 文件来设置属性对话框的按钮样式。我有两个按钮:red (OFF) 和 green (ON)。

我想在它们之间切换。有没有办法在JSON 文件中设置它的样式?

com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
   default: { down: ON_Button, up: ON_Button, font: default-font, fontColor: white },
   toggle: { down: ON_Button, up: ON_Button, checked: OFF_Button, font: default-font, fontColor: white, downFontColor: red }
},

【问题讨论】:

    标签: json libgdx


    【解决方案1】:

    按钮支持setChecked 方法,所以你可以用一种风格做到这一点:

    com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
        toggle: { 
            down: OFF_Button, // <- pressed
            up: OFF_Button, // <- not checked
            checked: ON_BUTTON, // <- checked
            font: default-font, 
            fontColor: white 
        },
    },
    

    并调用按钮的setChecked(bool) 方法来切换状态。此外,当您单击按钮时,该按钮会自动切换为选中状态。

    【讨论】:

    • 这不应该是切换而不是默认吗?我不太了解 JSON 和这种样式,但据我了解,他正在寻找的样式应该称为切换(这不是技术上的东西,只是命名)。他的 JSON 文件是正确的吧?
    • @Springrbua,是的,这种风格应该命名为checkboxtoggle 或类似的名称。此外,TextButtonStyle 只需要 font 字段作为必填项,所以,是的,看起来是正确的。
    • 谢谢。到目前为止,我的游戏中不需要这个,因为我没有菜单,但是当我实现菜单时,这个信息将有帮助:P 谢谢。 +1
    • 我无法让它工作。如果我在按钮上调用setChecked,它不总是显示打开按钮吗?你能给我举个例子吗?谢谢!
    • 问题在于正确定义json。 setChecked 的行为类似于checkbox,它有两种状态:未选中(默认up 字段图像)和选中(checked 图像)。另外请注意,如果你尝试实现复选框,你不应该手动调用setChecked,因为TextButton会在点击后自动调用这个方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2018-12-05
    • 1970-01-01
    • 2023-04-03
    • 2021-01-07
    相关资源
    最近更新 更多