javascript - JavaScript - 如何在 Spark AR 工作室中循环三个项目
问题描述
为清楚起见进行编辑:
这个问题的上下文不在javascript / html的上下文中。它在 javascript Spark AR studio 的上下文中。典型的 html / css / javascript 方法不起作用。我只有通过这个应用程序使用 javascript 的经验,这是我第一次学习任何东西。我在下面列出了对我有用的内容。
我在移动 ar 应用程序中有三个资产需要在点击时进行交换,以便每次点击都会关闭当前项目的可见性并切换下一个项目的可见性。我可以监控水龙头并订阅该事件。我可以制作资产
*.hidden = true
,false
但我不确定交换它们所需的逻辑。
我会为点击创建一个计数功能(限制为三个?)然后根据生成的数字使用 if/then 来隐藏/取消隐藏?
我以前真的只用 Python 和一些 js 编写过脚本,但我对代码感到好奇,我会在 JavaScript 中使用什么约定来解决这样的难题?成功可能是什么样子?
解决方案
只是提醒一下,我终于想出了如何做我需要做的事情,它看起来像这样:
const TouchGestures = require('TouchGestures');
const Scene = require('Scene');
const D = require('Diagnostics');
//scene assets:
const asset1 = Scene.root.find('plane0');
const asset2 = Scene.root.find('plane1');
const asset3 = Scene.root.find('plane2');
//assets put into array:
const myArray = [asset1,asset2,asset3];
//initial visibility state for assets:
var hideStates = [0,1,1];
//set initial visibility:
hide(myArray,hideStates);
//MAIN EVENT___________________________________________________________________________________
TouchGestures.onTap().subscribe(function (gesture) { // cycle visibility for assets on event
var hideStates = [1,1,1];
hide(myArray,hideStates);
unHide(myArray);
});
//_____________________________________________________________________________________________
//this will move through an array one step at a time, returning the index...
var cycler = {
current: -1,
cycle: function(arr) {
if (this.current == arr.length -1) {
this.current = 0;
} else {
this.current++;
}
return this.current;
}
};
function hide(assets,states) {
for (var i = 0; i <assets.length; i++) {
assets[i].hidden = states[i];
}
};
function unHide(assets) {
var unhide = cycler.cycle(myArray);
myArray[unhide].hidden = 0;
};
不确定这是否是最好的做事方式,但它确实有效!
推荐阅读
- sql - 使用分区的最早日期来确定属于该分区的其他日期
- excel - VBA 宏中的 Selection.Replace
- spring - Logback 不记录 SQL 语句
- mysql - 通过给定的值比较查找记录是否存在
- python - 寻找在一个巨大的 Pandas Dataframe 中分割一行的最快方法
- c# - c# 中的 SQLite 查看器/浏览器预防
- python - 将工作日给定为一周的开始日期作为天数和天数的公式?
- python - 给定另一个索引号列表,将数字插入列表
- azure - 如何将逻辑应用运行 ID 传递给外部服务以启用跟踪?
- python-3.x - 我们如何使用多线程安全地退出我们的 gui 应用程序