所属产品: Mingcedar Studio DESIGNER
Click / Hover / Press-Release Script:按真实触发阶段选择脚本 | Mingcedar Studio
Click 处理一次点击,Hover 处理移入移出,Press/Release 处理按下与松开。能通过标准行为配置的动作仍应优先配置,脚本负责特例和组合逻辑。
<section id="script-interactions" class="docs-block docs-block-intro docs-block-current"> <span class="section-kicker">脚本</span> <h2>Click / Hover / Press-Release Script:按真实触发阶段选择脚本</h2> <p>Click 处理一次点击,Hover 处理移入移出,Press/Release 处理按下与松开。能通过标准行为配置的动作仍应优先配置,脚本负责特例和组合逻辑。</p> <div class="docs-detail-list"> <article id="script-interactions-item-1" class="docs-detail-row"> <strong>Click Script 适合什么</strong> <p>局部动画、状态提示、自定义校验、复杂流程跳转、输入确认后二次处理,这些场景适合 Click Script。当一个动作不只是写一个值或跳转一个页面时,可以通过脚本组织组合逻辑。</p> </article><article id="script-interactions-item-2" class="docs-detail-row"> <strong>Click Script 常见写法</strong> <p>Click Script 适合先读页面输入、再判断条件、再调用标准方法。脚本中仍应优先调用 hqVisuDesigner.openPage、hqVisuDesigner.openDiagnosis、hqVisuDesigner.WriteTag 等明确方法,而不是把全部逻辑写成不可复用的 DOM 操作。</p> <ul> <li>读取输入模板:template.getValue("Input Template")</li><li>确认条件:if (...) return;</li><li>写值:hqVisuDesigner.WriteTag(payload)</li><li>跳转:hqVisuDesigner.openPage("Alarm")</li> </ul> <pre class="docs-code-block"><code>var input = template.getValue("SetpointInput");
var value = String(input == null ? "" : input).trim();
var number = Number(value);
// 示例范围 0~100,应改为项目的有效范围。
if (value === "" || !Number.isFinite(number) || number < 0 || number > 100) {
hqVisuDesigner.setComponentText("Message", "请输入 0~100 的有效设定值");
return;
}
hqVisuDesigner.WriteTag({
TagName: "PLC_LINE01.PUMP01.SETPOINT",
Value: number,
PermissionCode: "io:write",
RequireConfirm: true
});</code></pre> </article><article id="script-interactions-item-3" class="docs-detail-row"> <strong>Hover Script 适合什么</strong> <p>悬停高亮、预览、局部透明度变化、帮助提示和短时反馈都适合 Hover Script。它最好的用法是做轻量反馈,而不是承载重业务逻辑;运行端不会为 Hover Script 提供设备写入能力。</p> <pre class="docs-code-block"><code>// Mouse Over
object.style.opacity = "0.7";
// Mouse Out
object.style.opacity = "1";</code></pre> </article><article id="script-interactions-item-4" class="docs-detail-row"> <strong>Press/Release Script 适合什么</strong> <p>需要区分按下和松开时使用 Press/Release Script。Pointer Press 在主指针按下时执行;Pointer Release 在松开、取消或丢失指针捕获时执行。两段脚本必须成对设计,释放段负责复位。</p> <ul> <li>点动、按住执行、松手停止</li><li>按压态显示与恢复</li><li>Pointer Press / Pointer Release 都是完整脚本</li><li>没有单独 Condition 字段</li><li>不能替代 PLC 联锁、急停和安全回路</li> </ul> <pre class="docs-code-block"><code>// Pointer Press
WriteTagBoolean("<CommandTag>", true);
// Pointer Release
WriteTagBoolean("<CommandTag>", false);</code></pre> </article><article id="script-interactions-item-5" class="docs-detail-row"> <strong>脚本优先于配置的场景</strong> <p>当目标需要动态计算、需要先校验输入、需要组合多个方法、或者需要在一次点击里顺序执行多个动作时,脚本通常更合适。比如先读模板值,再判断是否合法,再写 Tag,再切换页面。</p> </article><article id="script-interactions-item-6" class="docs-detail-row"> <strong>不应优先使用脚本的场景</strong> <p>如果只是打开页面、写一个 Tag、打开诊断窗或切换一个页面变量,应优先使用明确配置行为。这样维护人员可以直接从界面理解动作意图,不需要先阅读脚本逻辑。</p> </article> </div> <div class="docs-note-grid"> <figure id="script-interactions-image-1" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQPPT/MouseBehaviorEditorForm.png" alt="Click Script" loading="lazy" decoding="async"> <figcaption> <strong>Click Script</strong> <p>复杂动作和局部特例更适合 Click Script,但简单动作仍优先配置行为。</p> </figcaption> </figure><figure id="script-interactions-image-2" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQPPT/MouseBehaviorEditorForm.png" alt="Hover Script" loading="lazy" decoding="async"> <figcaption> <strong>Hover Script</strong> <p>Hover Script 最适合轻量反馈,而不是承担重业务逻辑。</p> </figcaption> </figure><figure id="script-interactions-image-3" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQPPT/MouseBehaviorEditorForm.png" alt="Press/Release Script 编辑器结构" loading="lazy" decoding="async"> <figcaption> <strong>Press/Release Script</strong> <p>实际模式会把两个脚本框显示为 Pointer Press 和 Pointer Release;释放段负责安全复位。</p> </figcaption> </figure><figure id="script-interactions-image-4" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQPPT/current-20261021/quick-methods.png" alt="Quick Methods 方法库显示类别、方法说明、示例和参数" loading="lazy" decoding="async"> <figcaption> <strong>Quick Methods 方法库</strong> <p>按类别或搜索查找方法,查看代码示例及参数后点击 Insert;可用方法以当前插件版本为准。</p> </figcaption> </figure> </div> </section>