Spark AR 为什么 if-else if 构造不起作用?
Spark AR Why if-else if construction doesn't work?
我不明白为什么 if-else 构造不起作用。
const Diagnostics = require('Diagnostics');
const Reactive = require('Reactive');
var num = 5;
var firstCondition= false;
var secondCondition = false;
function func(){
firstCondition = Reactive.ge(num, 10);
secondCondition = Reactive.lt(num, 10);
if(firstCondition){ //false
num = 0;
} else if(secondCondition){ //true
num = 1;
}
}
func();
Diagnostics.watch("num - ", num);
Diagnostics.watch("firstCondition ", firstCondition);
Diagnostics.watch("secondCondition ", secondCondition);
num 显示 0:( 我做错了什么?它是否特定于反应式编程?
您的示例中存在两个问题:
- 信号可能会令人困惑,而 return 只是因为变量存在,所以您需要检查:
if (firstCondition.pinLastValue())
以获取布尔信号的值。
其次,我猜你的功能没有更新,你需要这样的东西:
const Time = require('Time'); const interval = Time.setInterval(func(), 500);
Spark AR Studio 使用反应式编程,这是一种使用异步数据流的声明式编程模型。本指南将介绍反应式编程在 Spark AR Studio 中的优势和用途。
https://sparkar.facebook.com/ar-studio/learn/documentation/scripting/reactive/
你需要在这里使用不同的思维方式:
const conditionedSignal = inputSignal.ge(10).ifThenElse(0, 1);
这是一个标量信号 class,不是 JS 数字!
我不明白为什么 if-else 构造不起作用。
const Diagnostics = require('Diagnostics');
const Reactive = require('Reactive');
var num = 5;
var firstCondition= false;
var secondCondition = false;
function func(){
firstCondition = Reactive.ge(num, 10);
secondCondition = Reactive.lt(num, 10);
if(firstCondition){ //false
num = 0;
} else if(secondCondition){ //true
num = 1;
}
}
func();
Diagnostics.watch("num - ", num);
Diagnostics.watch("firstCondition ", firstCondition);
Diagnostics.watch("secondCondition ", secondCondition);
num 显示 0:( 我做错了什么?它是否特定于反应式编程?
您的示例中存在两个问题:
- 信号可能会令人困惑,而 return 只是因为变量存在,所以您需要检查:
if (firstCondition.pinLastValue())
以获取布尔信号的值。 其次,我猜你的功能没有更新,你需要这样的东西:
const Time = require('Time'); const interval = Time.setInterval(func(), 500);
Spark AR Studio 使用反应式编程,这是一种使用异步数据流的声明式编程模型。本指南将介绍反应式编程在 Spark AR Studio 中的优势和用途。
https://sparkar.facebook.com/ar-studio/learn/documentation/scripting/reactive/
你需要在这里使用不同的思维方式:
const conditionedSignal = inputSignal.ge(10).ifThenElse(0, 1);
这是一个标量信号 class,不是 JS 数字!