作为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
节点的reset
和Animation
输入。
以前,我在监视功能上有不同的胆量,并且一切正常,但是现在即使我剥离所有代码并放入日志消息中,它也仍然无法正常工作。
是否无法监视触发信号? Spark AR是否有点像Xcode,您有时需要清理构建文件夹?如果是这样,Spark AR的等效项是什么?或者,也许我以某种方式搞砸了语法,却对此视而不见?
我可以使效果仅与Patch一起使用,但是脚本可以创建更好的用户体验。
答案 0 :(得分:0)
在文档中跳来跳去(他们确实需要像Apple文档一样的交叉链接)之后,我终于找到了答案……
对于通过Patches.getPulseValue()
获得的值,您省去了monitor()
直接转到subscribe()
的呼叫。
triggerIn.subscribe( function(e) {
…
});