繁体   English   中英

Spark AR 为什么如果构建不起作用则使用 if-else?

[英]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:( 我做错了什么?它是响应式编程特有的吗?

您的示例中有两个问题:

  • 信号可能会令人困惑并且仅仅因为变量在那里就返回真,所以您需要检查: if (firstCondition.pinLastValue())以获取布尔信号的值。
  • 其次,我猜你的功能没有更新,你需要这样的东西:

     const Time = require('Time'); const interval = Time.setInterval(func(), 500);

你需要在这里使用不同的心态:

const conditionedSignal = inputSignal.ge(10).ifThenElse(0, 1);

这是一个 scalarSignal 类,而不是一个 JS Number!

Spark AR Studio 使用反应式编程,这是一种使用异步数据流的声明式编程模型。 本指南将介绍 Spark AR Studio 中响应式编程的好处和使用。

https://sparkar.facebook.com/ar-studio/learn/documentation/scripting/reactive/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM