IndirectWrite(间接写入)
| 基本信息 | |
|---|---|
| 名称 | Indirect Write |
| 类别 | Indirect (间接) |
| 输入端口 (Inputs) | |
| * | Call (调用/脉冲) |
| Variable | IVariable`2 (变量) |
| Value | Dummy/Generic (泛型值) |
| 输出端口 (Outputs) | |
| OnWritten(完成写入时) | Continuation (接续) |
| OnFail(失败时) | Continuation (接续) |
间接写入(Indirect writes)通常常见于从其他平台迁移过来的遗留内容中。
间接写入将 Variable(变量)作为输入,该“变量”所包装的类型将决定 Value(泛型)输入端口接受什么类型的值。然后,该节点会将 Value(泛型)写入到 Variable(变量)所包装的字段中。
另请参阅: 关于写入的基本信息 (Basic Writes Info) 以及 如何制作类型变量 (How To Make Type Variables)。
(注:原文此处引用了通用模板,建议查阅 Wiki 对应基础教程)
(注:原文此处引用了通用模板,建议查阅 Wiki 对应基础教程)
Indirect Write间接写入 还是 Write直接写入?
Write(写入)节点和 Indirect Write(间接写入)之间的区别在于它们引用受影响变量的方式。
在 Write 节点中,使用所谓的 Global (全局引用) 来保存变量,该引用仅在 ProtoFlux 开始执行时进行求值。因此,如果代码在执行过程中试图改变这个 Write 节点的目标变量引用,是不会生效的。
相比之下,Indirect Write 节点使用普通的输入端口来接收变量,这意味着每次调用该节点时都会重新求值。这允许在执行流程中通过编程方式更改目标变量,例如通过具有不确定输入数量的 Multiplexer (多路复用器) 来切换写入目标。
简而言之,如果您要写入一个静态变量,请坚持使用普通的 Write;而如果您的代码可能在执行期间改变需要写入的目标变量,请改用 Indirect Write。
输入 (Inputs)
* (Call/调用)
调用此端口以写入值。
Variable (变量 泛型)
要写入的 变量 (Variable)。
Value (泛型)
输出 (Outputs)
OnWritten (Continuation/接续)
在 * (Call/调用) 被触发且值已成功写入后发送一个脉冲。
OnFail (Continuation/接续)
在 * (Call/调用) 被触发,但由于缺少目标或变量未包装有效的 IValue`1 导致值无法写入时发送一个脉冲。

No comments to display
No comments to display