NarraLeaf

图片

读取和改写 nl.image 控件的图片资源、填充模式、裁剪矩形和翻转状态

这些节点操作界面图片控件nl.image——标题画面上的插图、存档槽的缩略图、装饰边框。它们与舞台图片、角色立绘以及剧情演出中的任何资源无关;那些是剧情资源,不是界面控件

约定

  • 只有 Self 节点。 本分类下没有任何节点带Element输入,目标永远是拥有该蓝图的nl.image。作用于连入元素的版本是 Element 分类中的blueprint.element.image.*,各自带一个element:nl.image输入,且只有当前图中已存在兼容绑定时才会出现
  • 图类型。 读取节点是纯节点,可用于eventfunctionmacro图,也可用于 Blueprint Value。写入节点是 latent(会挂起执行),只能用于eventmacro
  • ImageAsset是结构化值,即{ kind: "imageAsset", assetId },而不是一个裸的 id 字符串。可空形式ImageAsset|nullnull表示没有图片。这些引脚上的普通string仍会被当作 asset id 读取,这样在该类型出现之前保存的旧图才能继续运行
  • 写入改写控件的imageFillmodeassetIdcropPlacement)或imageFlipX / imageFlipY,随后排队 flush 该元素。如果写入的值和现有值完全一致,则什么也不做——不写 patch,也不 flush
  • 无法使用的输入会回退到当前值。 无法识别或为空的填充模式、非数值的裁剪百分比、未接线的布尔输入,都会让该属性保持原样,而不是被重置
  • 几何、不透明度和变体不在这里。 位置、尺寸、旋转和不透明度属于 Displayable;非 Default 的 Appearance Variant 也永远不会覆盖 Default 的填充模式和裁剪——因此切到半透明变体不会把图片卡在crop

Image Asset

blueprint.image.assetLiteral · Pure

Image Asset(图片资源)是图片资产字面量卡片。卡片显示当前缩略图、资产名或 missing 状态;点击卡片打开图片资产选择器

引脚方向类型说明
valueout · dataImageAsset

未选择图片时该节点输出空值,接到ImageAsset|null输入上等同于清空

Get Image Asset

blueprint.image.getImageAsset · Pure

Get Image Asset(获取图片资源)

引脚方向类型说明
assetout · dataImageAsset|null控件没有图片时为null

Set Image Asset

blueprint.image.setImageAsset · Latent

Set Image Asset(设置图片资源)把控件指向另一张图片并触发 flush。填充模式和裁剪矩形保持不变

引脚方向类型说明
inin · exec
nextout · exec
assetin · dataImageAsset|null可在节点卡片上填字面量

未接线时,该引脚会在卡片上展开为图片选择器:选择图片会写入节点参数,清空会写入null。接线之后以连线值为准

Clear Image Asset

blueprint.image.clearImageAsset · Latent

Clear Image Asset(清除图片资源)移除控件的图片——等同于把Set Image Assetasset设为null,只是不带引脚

引脚方向类型说明
inin · exec
nextout · exec

Get Image Fit Mode

blueprint.image.getFitMode · Pure

Get Image Fit Mode(获取图片适配模式)

引脚方向类型说明
fitModeout · datastringcovercontainstretchcroptile之一。控件尚无填充时为cover

模式

模式图片如何填充控件框
cover缩放到铺满控件框,超出部分被裁掉
contain缩放到完整放进控件框,留出留白
stretch拉伸到控件框,不保持宽高比
crop由裁剪矩形决定摆放
tile按原始尺寸从左上角起平铺

Set Image Fit Mode

blueprint.image.setFitMode · Latent

Set Image Fit Mode(设置图片适配模式)改变图片如何填充控件框,同时保留当前资源和裁剪矩形

引脚方向类型说明
inin · exec
nextout · exec
fitModein · datastring可在节点卡片上填字面量。五种模式以外的值会被忽略,保持当前模式

Get Image Crop Rect

blueprint.image.getCropRect · Pure

Get Image Crop Rect(获取图片裁剪矩形)读取裁剪矩形。这四个数是相对控件自身框的百分比,而不是相对源图:leftPct / topPct把图片左上角放到框内的位置,widthPct / heightPct是图片被绘制出的尺寸。因此0, 0, 100, 100——没有裁剪过时拿到的值——表示正好铺满控件框,大于 100 或小于 0 的值则用来表达比控件框更大的图片

引脚方向类型说明
leftPctout · datafloat
topPctout · datafloat
widthPctout · datafloat
heightPctout · datafloat

Set Image Crop Rect

blueprint.image.setCropRect · Latent

Set Image Crop Rect(设置图片裁剪矩形)

引脚方向类型说明
inin · exec
nextout · exec
leftPctin · datafloat可在节点卡片上填字面量
topPctin · datafloat可在节点卡片上填字面量
widthPctin · datafloat可在节点卡片上填字面量
heightPctin · datafloat可在节点卡片上填字面量

该节点同时会把填充模式切换为crop。这是必须的:摆放矩形只有crop模式才会读取,在其它模式下这四个数会被保存但被忽略。需要恢复原来的模式时,后面接一个Set Image Fit Mode

Get Image Flip X

blueprint.image.getFlipX · Pure

Get Image Flip X(获取图片水平翻转)

引脚方向类型说明
flipXout · databoolean

Set Image Flip X

blueprint.image.setFlipX · Latent

Set Image Flip X(设置图片水平翻转)以中心为轴水平镜像图片。只有图片内容层会翻转——控件框、描边和子元素不受影响

引脚方向类型说明
inin · exec
nextout · exec
flipXin · databoolean

Get Image Flip Y

blueprint.image.getFlipY · Pure

Get Image Flip Y(获取图片垂直翻转)

引脚方向类型说明
flipYout · databoolean

Set Image Flip Y

blueprint.image.setFlipY · Latent

Set Image Flip Y(设置图片垂直翻转)以中心为轴垂直镜像图片

引脚方向类型说明
inin · exec
nextout · exec
flipYin · databoolean

Get Visible

blueprint.image.getVisible · Pure

Get Visible(获取可见性)

引脚方向类型说明
visibleout · databoolean

它读的就是 Displayable 以visible属性键暴露的那份可见性——同一个值,两种读法。如果只想隐藏控件而不把它从渲染树中移除,请改用 Displayable 的Set Display

Set Visible

blueprint.image.setVisible · Latent

Set Visible(设置可见)

引脚方向类型说明
inin · exec
nextout · exec
visiblein · databoolean

Get Enabled

blueprint.image.getEnabled · Pure

Get Enabled(获取启用状态)

引脚方向类型说明
enabledout · databoolean

Set Enabled

blueprint.image.setEnabled · Latent

Set Enabled(设置启用)开关控件上的交互。它映射到底层的禁用交互机制,作者侧不暴露interactionDisabled属性

引脚方向类型说明
inin · exec
nextout · exec
enabledin · databoolean

本页目录