NarraLeaf

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 或预览数据

引脚方向类型说明
listin · dataelement:nl.list
itemsout · dataarray

Set List Content

blueprint.element.list.setItems · Latent

替换运行时内容。非数组按空数组处理

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
itemsin · dataarray

Clear List

blueprint.element.list.clear · Latent

把运行时内容设置为空数组

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list

Append List Item

blueprint.element.list.appendItem · Latent

在末尾追加一项

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
itemin · dataany

Insert List Item

blueprint.element.list.insertItem · Latent

在指定下标插入一项。下标会夹到有效范围,而不是被拒绝

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
indexin · datainteger可在卡片上直接填字面量
itemin · dataany

Remove List Item

blueprint.element.list.removeItem · Latent

移除第一个与 item JSON 等价的项

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
itemin · dataany

Remove List Item At

blueprint.element.list.removeItemAt · Latent

移除指定下标的项

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
indexin · datainteger可在卡片上直接填字面量

Refresh List Items

blueprint.element.list.refreshItems · Latent

以当前内容原样重新写入一次,从而触发条目重新渲染

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list

Get Selected Item

blueprint.element.list.getSelectedItem · Pure

没有有效选中项时输出 null

引脚方向类型说明
listin · dataelement:nl.list
itemout · datajson

Set Selected Item

blueprint.element.list.setSelectedItem · Latent

按 JSON 等价查找并设置当前选中项

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
itemin · dataany

Get Selected Index

blueprint.element.list.getSelectedIndex · Pure

读取当前选中下标

引脚方向类型说明
listin · dataelement:nl.list
indexout · datainteger

Set Selected Index

blueprint.element.list.setSelectedIndex · Latent

设置当前选中下标

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
indexin · datainteger可在卡片上直接填字面量

Scroll To Index

blueprint.element.list.scrollToIndex · Latent

滚动到指定条目

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
indexin · datainteger可在卡片上直接填字面量

Scroll To Top

blueprint.element.list.scrollToTop · Latent

滚动到顶部

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list

Scroll To Bottom

blueprint.element.list.scrollToBottom · Latent

滚动到底部

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list

Get List Length

blueprint.element.list.getLength · Pure

引脚方向类型说明
listin · dataelement:nl.list
lengthout · datainteger

Get Item At

blueprint.element.list.getItemAt · Pure

按下标取一行,不必用 Get List Content 把整个数组拽过来

引脚方向类型说明
listin · dataelement:nl.list
indexin · datainteger可填字面量
itemout · datajson落在当前条目之外时为 null

Find Item By Field

blueprint.element.list.findItemByField · Pure

按 List 已声明的某个条目字段找一行。卡片存的是字段的稳定 id,所以改属性名对图毫无代价

引脚方向类型说明
listin · dataelement:nl.list
valuein · dataany该字段应当等于什么
indexout · datainteger没有命中时为 -1
itemout · datajson没有命中时为 null
foundout · databoolean

卡片字段

字段说明
Field按哪个条目字段匹配

Set Item Field At

blueprint.element.list.setItemFieldAt · Latent

写一行里的一个字段,这一行的其余部分不动。行不存在时是安静的空操作

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list
indexin · datainteger可填字面量
valuein · dataany

卡片字段

字段说明
Field要写哪个条目字段。必填——没选就拒绝运行

Sort List By Field

blueprint.element.list.sortByField · Latent

按条目的某个字段重排运行时条目并写回。排序规则与 Data 里的 Array Sort By Key 相同

引脚方向类型说明
inin · exec
nextout · exec
listin · dataelement:nl.list

卡片字段

字段说明
Field按哪个条目字段排。必填
DirectionAscendingDescending

Get Scroll Progress

blueprint.element.list.getScrollProgress · Pure

List 滚到了哪里,取值 01Scroll 事件头说列表动了,这四个说它停在哪——列表之外的控件只能自己问,没人会通知它

引脚方向类型说明
listin · dataelement:nl.list
progressout · datafloat

Get Scroll Offset

blueprint.element.list.getScrollOffset · Pure

引脚方向类型说明
listin · dataelement:nl.list
offsetout · datafloat像素
maxOffsetout · datafloat内容装得下时为 0

Is Scrolled To Start

blueprint.element.list.isScrolledToStart · Pure

引脚方向类型说明
listin · dataelement:nl.list
atStartout · databoolean距近端一个像素以内。内容装得下时为 true

Is Scrolled To End

blueprint.element.list.isScrolledToEnd · Pure

引脚方向类型说明
listin · dataelement:nl.list
atEndout · databoolean距远端一个像素以内。内容装得下时为 true

Slider

Slider 节点带 slider 引脚,类型是 element:nl.slider。滑块报告值的每一处——props.value、它的 Blueprint Value、事件 payload、Get Slider Value——给的都是映射后的值,已经按 minmaxstep clamp 和 snap 过。0..1 的 normalized 值只能通过 Get Slider Normalized Value 取得。Self 形态见 Slider

Get Slider Value

blueprint.element.slider.getValue · Pure

读取运行时映射值——已经 clamp 和 snap 过

引脚方向类型说明
sliderin · dataelement:nl.slider
valueout · datafloat

Set Slider Value

blueprint.element.slider.setValue · Latent

写入映射值,并按当前范围和步进规范化。它只更新运行时状态:不会派发 valueChangeddragStartdragEnd 事件,也不写回 UIDocument

引脚方向类型说明
inin · exec
nextout · exec
sliderin · dataelement:nl.slider
valuein · datafloat可在卡片上直接填字面量

Get Slider Normalized Value

blueprint.element.slider.getNormalizedValue · Pure

读取 0..1 的 normalized 值。只有这个节点能拿到它

引脚方向类型说明
sliderin · dataelement:nl.slider
normalizedValueout · datafloat

Get Slider Range

blueprint.element.slider.getRange · Pure

一次读取 minmaxstep

引脚方向类型说明
sliderin · dataelement:nl.slider
minout · datafloat
maxout · datafloat
stepout · datafloat

Set Slider Range

blueprint.element.slider.setRange · Latent

写入 minmaxstep,并用新范围重新规范化当前运行时值。和 Set Slider Value 一样不派发任何事件

引脚方向类型说明
inin · exec
nextout · exec
sliderin · dataelement:nl.slider
minin · datafloat可在卡片上直接填字面量
maxin · datafloat可在卡片上直接填字面量
stepin · datafloat可在卡片上直接填字面量

Image

Image 节点带 element:nl.image 引脚。它们只处理界面上的图片控件——不表示舞台表演图片、角色立绘或剧情演出资源。产出 ImageAsset 的字面量卡片没有派生形态,和 Self 形态一起留在 Image

Get Image Asset

blueprint.element.image.getImageAsset · Pure

控件没有图片时输出 null

引脚方向类型说明
elementin · dataelement:nl.image
assetout · dataImageAsset|null

Set Image Asset

blueprint.element.image.setImageAsset · Latent

asset 不接线时,卡片会展开成图片选择器;接线后以连线值为准。传 null 清除图片。旧图里直接传字符串 assetId 的连线仍可运行,但新图应该传 ImageAsset

引脚方向类型说明
inin · exec
nextout · exec
elementin · dataelement:nl.image
assetin · dataImageAsset|null可在卡片上直接填字面量

Clear Image Asset

blueprint.element.image.clearImageAsset · Latent

等价于把 Set Image Assetasset 设为 null

引脚方向类型说明
inin · exec
nextout · exec
elementin · dataelement:nl.image

Get Image Fit Mode

blueprint.element.image.getFitMode · Pure

读取 imageFill.modecovercontainstretchcroptile

引脚方向类型说明
elementin · dataelement:nl.image
fitModeout · datastring

Set Image Fit Mode

blueprint.element.image.setFitMode · Latent

设置 imageFill.mode,保留当前图片资源和裁剪区域。非法或空字符串回退到当前模式,而不是报错

引脚方向类型说明
inin · exec
nextout · exec
elementin · dataelement:nl.image
fitModein · datastring可在卡片上直接填字面量

Get Image Crop Rect

blueprint.element.image.getCropRect · Pure

读取 imageFill.cropPlacement。没有显式裁剪区域时输出默认全图区域

引脚方向类型说明
elementin · dataelement:nl.image
leftPctout · datafloat
topPctout · datafloat
widthPctout · datafloat
heightPctout · datafloat

Set Image Crop Rect

blueprint.element.image.setCropRect · Latent

写入裁剪区域,并顺带把 fitMode 切换为 crop

引脚方向类型说明
inin · exec
nextout · exec
elementin · dataelement:nl.image
leftPctin · datafloat可在卡片上直接填字面量
topPctin · datafloat可在卡片上直接填字面量
widthPctin · datafloat可在卡片上直接填字面量
heightPctin · datafloat可在卡片上直接填字面量

Get Image Flip X

blueprint.element.image.getFlipX · Pure

读取图片内容层的水平翻转状态

引脚方向类型说明
elementin · dataelement:nl.image
flipXout · databoolean

Set Image Flip X

blueprint.element.image.setFlipX · Latent

设置水平翻转

引脚方向类型说明
inin · exec
nextout · exec
elementin · dataelement:nl.image
flipXin · databoolean

Get Image Flip Y

blueprint.element.image.getFlipY · Pure

读取图片内容层的垂直翻转状态

引脚方向类型说明
elementin · dataelement:nl.image
flipYout · databoolean

Set Image Flip Y

blueprint.element.image.setFlipY · Latent

设置垂直翻转

引脚方向类型说明
inin · exec
nextout · exec
elementin · dataelement:nl.image
flipYin · databoolean

本页目录