如何在Spark AR脚本中监视脉冲值?

时间:2019-05-15 22:39:34

标签: javascript spark-ar-studio

作为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 Nod节点的输出,而input1连接到Exactly Equals节点的输出。输出连接到play节点的resetAnimation输入。

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

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

我可以使效果仅与Patch一起使用,但是脚本可以创建更好的用户体验。

1 个答案:

答案 0 :(得分:0)

在文档中跳来跳去(他们确实需要像Apple文档一样的交叉链接)之后,我终于找到了答案……

对于通过Patches.getPulseValue()获得的值,您省去了monitor()直接转到subscribe()的呼叫。

triggerIn.subscribe( function(e) {
    …
});