我正在研究一个最终的幻想ATB战斗系统,我正在尝试实施一个"急速功能"。匆忙将让你在3秒内行动,而不是等待6秒才能采取行动。我基本上设置了一个 user 对象,它具有一个空数组的 status 属性。当执行加速按钮时,我"推送"这个词"急速"进入阵列。然后我发表一个声明,说如果我有"急速状态",那么我将让我的计时器在3秒内超过6秒。我遇到的问题是,如果我还有其他任何其他问题而不是"仓促"进入阵列,这种效果打破了。例如,如果我按下快速按钮3次,这将推动"急速"单词进入数组3次,这不是问题,因为我可以在以后删除它。我遇到的问题是,如果除了一个人之外还有其他任何事情,那就是#34;在数组中,这种效果不起作用,这不是我想要的,因为将来我会用它来推动其他状态效果。我怎么能告诉我的代码,即使其他数组项在我的数组中,仍然可以执行效果?
function hasteButton() {
atbReset()
user.status.push("haste");
console.log(user.status);
};
var user = {
status: []
};
function timeBar(el, color) {
var elem = document.getElementById(el);
if (user.status == "haste") {
elem.style.transition = "width 3.0s, linear 0s";
window.setTimeout(function () {
boxLight()
}, 2800);
} else {
elem.style.transition = "width 6.0s, linear 0s";
window.setTimeout(function () {
boxLight()
}, 5800);
}
}
答案 0 :(得分:3)
您的代码中存在错误:您使用数组但是将其作为字符串检查;变化
if (user.status == "haste") {
带
if (user.status.indexOf("haste") != -1) {
答案 1 :(得分:1)
听起来你只想设置一个haste属性,而不是在数组中推送一个项目。这样,无论数组中的其他内容如何,您都可以直接检查属性,并且加速设置将独立于数组中的其他内容。数组用于有序集合,但haste
状态似乎只是布尔状态,无论数组中的内容如何,因此它似乎不属于数组。
你可以像这样使用setting
作为状态数组的属性:
function hasteButton() {
atbReset()
user.status.haste = true;
console.log(user.status);
};
var user = {
status: []
};
function timeBar(el, color) {
var elem = document.getElementById(el);
if (user.status.haste) {
elem.style.transition = "width 3.0s, linear 0s";
window.setTimeout(function () {
boxLight()
}, 2800);
} else {
elem.style.transition = "width 6.0s, linear 0s";
window.setTimeout(function () {
boxLight()
}, 5800);
}
}
答案 2 :(得分:0)
在您的代码中,您有:calculate
。此调用将返回一个数组,您需要以某种方式访问它的元素。
我建议做类似的事情:
$scope.calculate = function calculate (x) {
$scope.mF = device1[x];
}
如果要求元素在数组中找到isn&t; t的索引,则数组上的user.status
方法返回-1。