2

作为 Spark AR Studio 项目的一部分,有一个用于 Patch 的脚本。

该脚本有两个输入(一个布尔值,一个触发器)和两个输出(两个触发器)。

监控 bool 输入按预期工作,但监控触发器输入突然开始抛出错误:

JavaScript error: TypeError: triggerIn.monitor is not a function. (In 'triggerIn.monitor()', 'triggerIn.monitor' is undefined)

以下是文件中的所有代码:

const Diagnostics = require('Diagnostics');
var Patches = require('Patches');
var Reactive = require('Reactive');

var input1 = Patches.getBooleanValue('input1');
var triggerIn = Patches.getPulseValue('triggerIn');
var onHead = true;

triggerIn.monitor().subscribe( function(e) {
    if (input1) {
        if (onHead) {
            Diagnostics.log('Play-Trigger');
            Patches.setPulseValue("play", Reactive.once());
        } else {
            Diagnostics.log('Reset-Trigger');
            Patches.setPulseValue("reset", Reactive.once());
        }
        onHead = !onHead;
    }
});

input1.monitor().subscribe( function(e) {
  if (e.newValue == true && !onHead) {
    Diagnostics.log('Reset-1');
    Patches.setPulseValue("reset", Reactive.once());
    onHead = true;
  }
});

triggerIn连接到节点的输出,Head Nodinput1连接到Exactly Equals节点的输出。输出连接到节点的输入playreset输入。Animation

以前我在监视器功能中有不同的胆量并且一切正常,但现在即使我删除所有代码并放入日志消息,它仍然无法正常工作。

不能监控触发信号吗?Spark AR 是否有点像 Xcode,您有时需要清理构建文件夹?如果是这样,Spark AR 的等价物是什么?或者,也许我以某种方式搞砸了语法并且对此视而不见?

我可以只使用 Patch 来制作效果,但脚本会创建更好的用户体验。

4

1 回答 1

3

在文档中翻来覆去(他们确实需要像 Apple 文档那样的交叉链接)后,我终于找到了答案……</p>

对于与Patches.getPulseValue()您一起获得的值,请不要monitor()直接调用subscribe().

triggerIn.subscribe( function(e) {
    …
});
于 2019-05-16T13:33:08.487 回答