绑定

在UI的某个文件中,都会发现有bindings这个控件属性,它可以用于绑定硬编码到控件的属性上。这里以 start 屏幕为例:

"version": { "bindings": [ { "binding_name": "#version", "binding_name_override": "#text" } ] }

这个示例中用 #version 硬编码绑定到 text 属性上。然而,这只是个简单的绑定。我们还可以直接赋值到属性上:

"version": { "text": "#version", "bindings": [{"binding_name":"#version"}] }

我们使用 Toggle 时,通常都会使用到 view 类型的绑定,因为这个类型允许从另一个控件读取硬编码。

"panel": { "bindings": [ { "binding_type": "view", "source_control_name": "test_toggle", "source_property_name": "#toggle_state", "target_property_name": "#visible" } ] }

在示例中,我们演示了跨控件读取绑定。他将 test_toggle 控件的属性包中的 #toggle_state 转为该控件的 visible 属性。每当改变开关状态时,panel 控件的显示状态就会改变。开关处于开启状态时,panel 控件就会显示,否则不显示。

绑定还有一种情况,它可以读取 网格 或 工厂的绑定:

"panel": { "bindings": [ { "binding_type": "collection", "binding_collection_name": "inventory_items", "binding_name": "#item_id_aux" } ] }

在示例中,我们使用了 collection 类型读取了 inventory_items 的物品 AUX ID。关于 AUX ID 可以阅读这篇文章了解更多

绑定属性

接下来,我将数组内的键和值一一列举并解释

提示
属性使用 * 号标注的是必填属性。
属性属性名默认值描述
binding_type绑定类型字符串:列举global定义绑定的类型。
列举的值可以是:
none 无
global 全局
collection 合集
collection_details 合集详细
view 查看
ignored忽略布尔值false是否忽略该绑定。

binding_typeglobal时,可用的属性:

属性属性名默认值描述
* binding_name绑定名字符串储存硬编码的绑定名。
绑定名可用于条件记算。
binding_name_override绑定名覆盖字符串将 binding_name 中的值覆盖到另一个绑定名。
通常为控件中的属性,例如:
#text、#visible、#enabled
binding_condition绑定条件字符串:列举none改变绑定数据的条件。
列举的值可以是:
none 无
once 仅一次
always 总是
visible 可见时
always_when_visible 总是在可见时
visibility_changed 可见性改变时

binding_typecollection时,可用的属性:

属性属性名默认值描述
* binding_name绑定名字符串储存硬编码的绑定名。
绑定名可用于条件记算。
binding_name_override绑定名覆盖字符串将 binding_name 中的值覆盖到另一个绑定名。
通常为控件中的属性,例如:
#text、#visible、#enabled
* binding_collection_name绑定合集名字符串要操作的合集的名称。
binding_condition绑定条件字符串:列举none改变绑定数据的条件。
列举的值可以是:
none 无
once 仅一次
always 总是
visible 可见时
always_when_visible 总是在可见时
visibility_changed 可见性改变时

binding_typecollection_details时,可用的属性:

属性属性名默认值描述
* binding_collection_name绑定合集名字符串要操作的合集的名称。
binding_collection_prefix绑定合集前缀字符串要操作的合集的前缀。
binding_condition绑定条件字符串:列举none改变绑定数据的条件。
列举的值可以是:
none 无
once 仅一次
always 总是
visible 可见时
always_when_visible 总是在可见时
visibility_changed 可见性改变时

binding_typeview时,可用的属性:

属性属性名默认值描述
source_control_name源控件名字符串:控件名用于读取属性值的控件的控件名。
* source_property_name源属性名字符串source_control_name 中引用的控件的属性包中的属性名。
属性名可用于条件计算。

提示:如果没有指定 source_control_name,则会视为该控件的属性名。

* target_property_name目标属性名字符串将 source_property_name 的值覆盖到另一个属性名中。
会把目标属性名储存在该控件的属性包中。
resolve_sibling_scope解析兄弟作用域布尔值false是否解析兄弟作用域。

如果允许解析兄弟作用域,可以直接从兄弟控件中读取绑定属性名,从而忽略 source_control_name 属性读取。

操作表达式

内容详见 操作表达式 >

数据类型转换

内容详见 数据类型转换 >