List、Slider、Image
列表内容、选中项、滚动位置与条目字段、滑块数值与范围、图片资源、填充模式与裁剪——全部作用于连入的元素
三种自己持有状态的控件——List 的条目、Slider 的值、Image 的资源——在这里通过连入的引用操作,而不是从控件内部操作。所有 Element 节点共通的规则见 Element
List
List 节点带 list 引脚,类型是 element:nl.list。它们操作的是 List 实例的运行时 items,而这些 items 只存在于该实例中:完全卸载后就没了,也不会自动恢复,需要作者自己从变量或其它数据源重新写入。itemsBinding 只在没有运行时 items 时作为读取 fallback
条目上下文读取节点——index、count、key、props——根本不是 Element 节点;它们读的是自己所在条目的模板作用域,和 Self 形态一起放在 List
Get List Content
blueprint.element.list.getItems · Pure
读取运行时内容。没有运行时内容时,回退到 itemsBinding 或预览数据
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
items | out · data | array |
Set List Content
blueprint.element.list.setItems · Latent
替换运行时内容。非数组按空数组处理
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
items | in · data | array |
Clear List
blueprint.element.list.clear · Latent
把运行时内容设置为空数组
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list |
Append List Item
blueprint.element.list.appendItem · Latent
在末尾追加一项
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
item | in · data | any |
Insert List Item
blueprint.element.list.insertItem · Latent
在指定下标插入一项。下标会夹到有效范围,而不是被拒绝
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
index | in · data | integer | 可在卡片上直接填字面量 |
item | in · data | any |
Remove List Item
blueprint.element.list.removeItem · Latent
移除第一个与 item JSON 等价的项
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
item | in · data | any |
Remove List Item At
blueprint.element.list.removeItemAt · Latent
移除指定下标的项
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
index | in · data | integer | 可在卡片上直接填字面量 |
Refresh List Items
blueprint.element.list.refreshItems · Latent
以当前内容原样重新写入一次,从而触发条目重新渲染
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list |
Get Selected Item
blueprint.element.list.getSelectedItem · Pure
没有有效选中项时输出 null
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
item | out · data | json |
Set Selected Item
blueprint.element.list.setSelectedItem · Latent
按 JSON 等价查找并设置当前选中项
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
item | in · data | any |
Get Selected Index
blueprint.element.list.getSelectedIndex · Pure
读取当前选中下标
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
index | out · data | integer |
Set Selected Index
blueprint.element.list.setSelectedIndex · Latent
设置当前选中下标
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
index | in · data | integer | 可在卡片上直接填字面量 |
Scroll To Index
blueprint.element.list.scrollToIndex · Latent
滚动到指定条目
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
index | in · data | integer | 可在卡片上直接填字面量 |
Scroll To Top
blueprint.element.list.scrollToTop · Latent
滚动到顶部
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list |
Scroll To Bottom
blueprint.element.list.scrollToBottom · Latent
滚动到底部
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list |
Get List Length
blueprint.element.list.getLength · Pure
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
length | out · data | integer |
Get Item At
blueprint.element.list.getItemAt · Pure
按下标取一行,不必用 Get List Content 把整个数组拽过来
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
index | in · data | integer | 可填字面量 |
item | out · data | json | 落在当前条目之外时为 null |
Find Item By Field
blueprint.element.list.findItemByField · Pure
按 List 已声明的某个条目字段找一行。卡片存的是字段的稳定 id,所以改属性名对图毫无代价
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
value | in · data | any | 该字段应当等于什么 |
index | out · data | integer | 没有命中时为 -1 |
item | out · data | json | 没有命中时为 null |
found | out · data | boolean |
卡片字段
| 字段 | 说明 |
|---|---|
Field | 按哪个条目字段匹配 |
Set Item Field At
blueprint.element.list.setItemFieldAt · Latent
写一行里的一个字段,这一行的其余部分不动。行不存在时是安静的空操作
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list | |
index | in · data | integer | 可填字面量 |
value | in · data | any |
卡片字段
| 字段 | 说明 |
|---|---|
Field | 要写哪个条目字段。必填——没选就拒绝运行 |
Sort List By Field
blueprint.element.list.sortByField · Latent
按条目的某个字段重排运行时条目并写回。排序规则与 Data 里的 Array Sort By Key 相同
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
list | in · data | element:nl.list |
卡片字段
| 字段 | 说明 |
|---|---|
Field | 按哪个条目字段排。必填 |
Direction | Ascending 或 Descending |
Get Scroll Progress
blueprint.element.list.getScrollProgress · Pure
List 滚到了哪里,取值 0–1。Scroll 事件头说列表动了,这四个说它停在哪——列表之外的控件只能自己问,没人会通知它
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
progress | out · data | float |
Get Scroll Offset
blueprint.element.list.getScrollOffset · Pure
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
offset | out · data | float | 像素 |
maxOffset | out · data | float | 内容装得下时为 0 |
Is Scrolled To Start
blueprint.element.list.isScrolledToStart · Pure
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
atStart | out · data | boolean | 距近端一个像素以内。内容装得下时为 true |
Is Scrolled To End
blueprint.element.list.isScrolledToEnd · Pure
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
list | in · data | element:nl.list | |
atEnd | out · data | boolean | 距远端一个像素以内。内容装得下时为 true |
Slider
Slider 节点带 slider 引脚,类型是 element:nl.slider。滑块报告值的每一处——props.value、它的 Blueprint Value、事件 payload、Get Slider Value——给的都是映射后的值,已经按 min、max、step clamp 和 snap 过。0..1 的 normalized 值只能通过 Get Slider Normalized Value 取得。Self 形态见 Slider
Get Slider Value
blueprint.element.slider.getValue · Pure
读取运行时映射值——已经 clamp 和 snap 过
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
slider | in · data | element:nl.slider | |
value | out · data | float |
Set Slider Value
blueprint.element.slider.setValue · Latent
写入映射值,并按当前范围和步进规范化。它只更新运行时状态:不会派发 valueChanged、dragStart 或 dragEnd 事件,也不写回 UIDocument
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
slider | in · data | element:nl.slider | |
value | in · data | float | 可在卡片上直接填字面量 |
Get Slider Normalized Value
blueprint.element.slider.getNormalizedValue · Pure
读取 0..1 的 normalized 值。只有这个节点能拿到它
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
slider | in · data | element:nl.slider | |
normalizedValue | out · data | float |
Get Slider Range
blueprint.element.slider.getRange · Pure
一次读取 min、max、step
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
slider | in · data | element:nl.slider | |
min | out · data | float | |
max | out · data | float | |
step | out · data | float |
Set Slider Range
blueprint.element.slider.setRange · Latent
写入 min、max、step,并用新范围重新规范化当前运行时值。和 Set Slider Value 一样不派发任何事件
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
slider | in · data | element:nl.slider | |
min | in · data | float | 可在卡片上直接填字面量 |
max | in · data | float | 可在卡片上直接填字面量 |
step | in · data | float | 可在卡片上直接填字面量 |
Image
Image 节点带 element:nl.image 引脚。它们只处理界面上的图片控件——不表示舞台表演图片、角色立绘或剧情演出资源。产出 ImageAsset 的字面量卡片没有派生形态,和 Self 形态一起留在 Image
Get Image Asset
blueprint.element.image.getImageAsset · Pure
控件没有图片时输出 null
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
element | in · data | element:nl.image | |
asset | out · data | ImageAsset|null |
Set Image Asset
blueprint.element.image.setImageAsset · Latent
asset 不接线时,卡片会展开成图片选择器;接线后以连线值为准。传 null 清除图片。旧图里直接传字符串 assetId 的连线仍可运行,但新图应该传 ImageAsset
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
element | in · data | element:nl.image | |
asset | in · data | ImageAsset|null | 可在卡片上直接填字面量 |
Clear Image Asset
blueprint.element.image.clearImageAsset · Latent
等价于把 Set Image Asset 的 asset 设为 null
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
element | in · data | element:nl.image |
Get Image Fit Mode
blueprint.element.image.getFitMode · Pure
读取 imageFill.mode:cover、contain、stretch、crop 或 tile
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
element | in · data | element:nl.image | |
fitMode | out · data | string |
Set Image Fit Mode
blueprint.element.image.setFitMode · Latent
设置 imageFill.mode,保留当前图片资源和裁剪区域。非法或空字符串回退到当前模式,而不是报错
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
element | in · data | element:nl.image | |
fitMode | in · data | string | 可在卡片上直接填字面量 |
Get Image Crop Rect
blueprint.element.image.getCropRect · Pure
读取 imageFill.cropPlacement。没有显式裁剪区域时输出默认全图区域
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
element | in · data | element:nl.image | |
leftPct | out · data | float | |
topPct | out · data | float | |
widthPct | out · data | float | |
heightPct | out · data | float |
Set Image Crop Rect
blueprint.element.image.setCropRect · Latent
写入裁剪区域,并顺带把 fitMode 切换为 crop
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
element | in · data | element:nl.image | |
leftPct | in · data | float | 可在卡片上直接填字面量 |
topPct | in · data | float | 可在卡片上直接填字面量 |
widthPct | in · data | float | 可在卡片上直接填字面量 |
heightPct | in · data | float | 可在卡片上直接填字面量 |
Get Image Flip X
blueprint.element.image.getFlipX · Pure
读取图片内容层的水平翻转状态
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
element | in · data | element:nl.image | |
flipX | out · data | boolean |
Set Image Flip X
blueprint.element.image.setFlipX · Latent
设置水平翻转
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
element | in · data | element:nl.image | |
flipX | in · data | boolean |
Get Image Flip Y
blueprint.element.image.getFlipY · Pure
读取图片内容层的垂直翻转状态
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
element | in · data | element:nl.image | |
flipY | out · data | boolean |
Set Image Flip Y
blueprint.element.image.setFlipY · Latent
设置垂直翻转
| 引脚 | 方向 | 类型 | 说明 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
element | in · data | element:nl.image | |
flipY | in · data | boolean |