几何: Move 移动
把一个数值输入按比例映射成单轴(水平或垂直)位移,让组件相对原始位置左右或上下移动,常用于液位、滑块、水平指示等动态效果。
它是什么 / 用来做什么
Move(移动)是 Geometry(几何)类行为之一,与 Rotate、Scale 并列,用于改变组件自身的几何状态。它将一个数值输入按比例换算为沿单一方向(水平或垂直)的位移,让组件相对页面原始位置移动。适合液位上下浮动、滑块左右滑动、水平指示条等“一个数值驱动一段平移”的动画。如果需要按角度旋转,应使用 Rotate;如果需要从某条边缩放,应使用 Scale。
使用方法:编辑器控件逐项说明
双击组件下的 Move 行为打开编辑器。当前编辑器左侧是通用控件,右侧是 Geometry Setup,底部是校验状态和保存按钮。Move 的映射规则是:Source Value 落在 Source Min / Source Max 的百分比位置,会被换算到 Move Min / Move Max 之间;Move Min / Move Max 是真实画布距离,不是百分比。
General / Behavior Name:行为显示名,便于在行为树里识别;只改名字,不改变绑定对象。
General / Component Name:当前组件名,只读。发现不对时关闭编辑器,回到 Behavior Browser 选对组件再打开。
Quality Override / Quality Border:勾选后启用 GOOD / BAD 两个颜色格;GOOD 默认 #000000,BAD 默认 #FF8800,点击色块可改为 #RRGGBB 颜色。
Script 函数按钮:打开脚本片段选择器,把选中的片段插入当前聚焦的表达式框;若还没聚焦字段,默认插入 Source Value。
Source Value:驱动位移的表达式,默认 0.0,提示示例是 ReadTagDouble("Device.TAGNAME", 0)。这里通常直接读标签或返回一个已经算好的数值。
Condition:运行条件表达式,默认 true,提示示例是 true or running === 1;返回 false 时本次 Move 跳过。
Source Min / Source Max:输入源范围,默认 0.0 / 100.0。它们决定 Source Value 在 0% 到 100% 之间的位置。
Move Min / Move Max:输出位移范围,默认 0.0 / 100.0。可填数字、负数或 shape.width 这类表达式;旁边的 Target 按钮用于从 PowerPoint 当前位置自动写入偏移。
Limit Min / Limit Max:输入夹取范围,默认 ValueMin / ValueMax;可填空、别名、固定数值或表达式,用来限制参与换算的输入上下限。
Move Axis:Horizontal 使用 Left 方向的偏移,Vertical 使用 Top 方向的偏移;用 Target 前先选好轴向。
Hide outside range:输入超出限制范围时隐藏组件;只想夹取但不想隐藏时不要勾。
底部状态 / OK / Cancel:状态区显示实时校验结果;OK 会再次校验并保存,Cancel 或关闭窗口放弃本次编辑。
// Source Value
ReadTagDouble("Tank.Level", 0)
// 源范围与位移范围
Source Min = 0, Source Max = 100
Move Min = 0, Move Max = -shape.height // 满量程上移一个自身高度
Move Axis = Vertical
Target 按钮使用方法
Move Min / Move Max 旁边的 Target 不是装饰按钮,它是按当前 PowerPoint 图形位置反算位移。编辑器打开时会先记录该组件的原始位置;将同一个组件拖到目标极限位置后点击 Target,编辑器写入当前位置相对原始位置的偏移,然后把组件恢复回原始几何位置。
先选 Move Axis:Horizontal 会计算 当前 Left - 原始 Left;Vertical 会计算 当前 Top - 原始 Top。
要抓最小位就拖到最小极限,点 Move Min 旁的 Target;要抓最大位就拖到最大极限,点 Move Max 旁的 Target。
写入值会按 0.### 格式收口,适合直接作为 Move Min / Move Max 使用;如果想写表达式,也可以手工覆盖。
Target 要求仍选中同一个组件。选错对象、读不到当前位置或读不到打开编辑器时的原始位置时,会弹出警告,不会瞎写。
Target 保存偏移后会尝试把组件恢复到打开编辑器时的原位;如果恢复失败,会提示“Target 已保存但无法恢复”,这时手动把图形摆回去再继续。
适用场景
当某个测量值需要直接驱动一段直线平移时用 Move。两个常见场景:
储罐液位:把液位百分比映射成垂直方向的位移,让液面块随液位上下浮动
滑块 / 水平指示:把一个 0~100 的数值映射成水平位移,做出滑块或水平指示条的左右移动效果
边界与易错点
常见误区:
Move Min / Move Max 是真实距离,不是百分比,想“右移一个身位”应填 Move Max = shape.width,而不是填 100(会被当成 100 个画布单位)
新手最省心的配法:让 Source Min = Limit Min、Source Max = Limit Max,避免输入范围被重复调两遍
用 Target 前先选好 Horizontal / Vertical;轴向选错,写入的就是另一条轴上的偏移
Target 会把图形恢复到打开编辑器时的位置;如果目标是永久移动图形,请先关闭编辑器、调整图形,再重新打开配置行为。
图示 1: Move 编辑器
设定源范围、位移范围和移动方向,把数值按比例映射成单轴位移。