我现在非常喜欢。
我有一个开关,我需要能够每秒打开和关闭,但我真的不知道我会怎么做,因为它需要应用于相同的位/功能 如果当前有一个功能作为一个功能的开/关功能,问题是我需要一种方法让该功能每1秒开启和关闭一次。 到目前为止我已经尝试过这个但是它不适合我。 有人可以试着为我解决这个问题吗?
{$lua}
if not syntaxcheck then
local On = 1
local Off = 0
local Switch = OnOffController
local function OnOff()
if Switch = Off then
Switch = On
if Switch = On then
Switch = Off
end
end
end
OnOff()
if(Second == nil) then
Second = createTimer(getMainForm())
Second.Interval = 1000
Second.OnTimer = function(timer)
OnOff()
end
end
Second.setEnabled(true)
end
答案 0 :(得分:0)
虽然可能存在更多错误,但OnOff()函数肯定存在问题:
local function OnOff()
if Switch = Off then
Switch = On
if Switch = On then
Switch = Off
end
end
end
两个嵌套的if
语句不会按照您的意愿执行。首先,您使用赋值运算符=
而不是等于运算符==
。即使逻辑有问题,即使这是正确的。如果Switch
On
进入第一个if
,则流量将绕过两者。如果Switch
Off
进入第一个if
,则首先将其更改为On
,然后立即点击第二个条件并更改回{{1} }}
你可能想要更像的东西:
Off
您根本不需要第二次比较,假设local function OnOff()
if Switch == Off then
Switch = On
else
Switch = Off
end
end
只能是真或假。
我给出的其他一些建议是对Switch
变量使用布尔类型,因为它明确表示它只能有两个值。您可能还想将其名称更改为类似Switch
之类的内容,以明确其真实和错误在其上下文中的含义。同样,像SwitchedOn
这样的名称可能会使目前称为ToggleSwitch
的函数更加明显。