javascript - 如何使用 getAttribute 传递组件中定义的值而不是 aframe 标签属性?
问题描述
问题:
在 aframe 组件score
中,我需要time
从组件中获取当前值timer
来计算分数。
但是,使用该getAttribute
方法会返回一个NaN
值或[object Object]
.
我尝试将time
变量从传递timer
到score
,但是 的值score
要么没有改变,要么也显示为NaN
或[object Object]
。我对 js 和 aframe 还很陌生,如果我的代码很乱,我深表歉意。
注意:为简单起见,许多实体未包含在有问题的代码中。
JS 组件:
AFRAME.registerComponent('timer', {
schema:{
value:{default: 60},
},
init: function B() {
var data = this.data;
var el = this.el;
var time = 60;
if(time == 60 || time == 0){
start_b.addEventListener('click', function() {
setInterval(() => {
if(time > 0){
time--
el.setAttribute('text', 'value', time);};
}, 1000);
})}
}});
AFRAME.registerComponent('score', {
schema: {
el: {type: 'selector'},
score:{type: 'int', default: 0},
},
init: function () {
var newScore = 0;
var sceneEl = document.querySelector('a-scene');
var scoreBoard = document.querySelector('#score_t');
sceneEl.querySelector('#mix_b').addEventListener('click', () => {
var colorOutput = document.querySelector('#box');
var colorFrame = document.querySelector('#colorBox');
var timeDisplayV = document.querySelector('#timeDisplay');
var timeDisplayn = timeDisplayV.getAttribute('text', 'value');
var colorAsked = colorFrame.getAttribute('color');
var colorMade = colorOutput.getAttribute('color');
if(colorMade == colorAsked){
var timeDisplayn = timeDisplayV.getAttribute('text', 'value');
this.data.score = timeDisplayn
newScore = 'Score: ' + this.data.score
scoreBoard.setAttribute('text','value', newScore);
}
});
clear_b.addEventListener('click', function () {
el.setAttribute("color", "#ffffff");
});
}
});
HTML 标签:
<a-entity
id="score_t"
text="value: Score: 0"
position="0.7 0.45 -1" >
</a-entity>
<a-text
id="timeDisplay"
timer="value:"
position="0.7 0.65 -1"
scale="0.3 0.3 0.3">
</a-text>
解决方案
推荐阅读
- r - R ggplot 标签在非常小的值上被截断
- python - 如何获得最小的非零值
- apache - Apache 代理设置背后的 Icecast - 如何保留原始侦听器 IP
- typo3 - 在 TYPO3 中显示页面的第一个内容元素(掩码元素)
- python - 根据条件从数据框中删除几行
- typescript - TypeORM 多对多关系在保存时给出重复行
- c - 根据标准PCI总线扫描但结果异常
- c++ - C++ 使用指针返回一个数组
- cmake - 大家好,我发布了我在 ubuntu 16.04 lts 中遇到的错误。编译时
- c++ - C++ 错误:未定义的引用。这个错误是什么意思?(使用链表头和实现文件)