我有两个图形。这些图形具有倒计时功能。当打开卡时,这些图形开始倒计时。当倒计时到达0时,这些图形是调用功能“刷新”。这些图形同时是调用功能。如何管理?
这里我的卡上的代码用于图形使用功能:
on refresh
if eCount is not empty then
add 1 to eCount
else
put 0 into eCount
end if
wait 300 milliseconds with messages
if eCount >= 2 then
--dosomething()
put empty into eCount
end if
end refresh
更新---
local eCount
on refresh
add 1 to eCount
if eCount >= 2 then
--dosomething()
put 0 into eCount
else if eCount = 1 then
--dosomethingOnce()
put 0 into eCount
end if
end refresh
当两个图形同时具有“刷新”调用功能时。它的调用方法是“--dosomethingOnce()”。我该如何解决?
这是我的图形代码。
on countDown countT
if countT > 0 then
send "countDown countT" to me in 1 secs
else
send "refresh" to card "Main"
end if
end countDown
答案 0 :(得分:0)
我的理解是,只有当两个计时器都调用了刷新功能时,才会发生某些事情。请尝试以下方法..
local eCount
on refresh
add 1 to eCount
if eCount >= 2 then
--dosomething()
put 0 into eCount
end if
end refresh
通过将eCount声明为脚本局部变量,在处理程序之前,它将保留它的值。当第二次调用刷新时,“做某事”'代码应该执行。
答案 1 :(得分:0)
这是我认为可以解决您问题的另一个想法(如果我理解正确的话!)
local eCount, sPending
on refresh
add 1 to eCount
if not sPending then
put true into sPending
send "doSomething" to me in 100 millisecs
end if
end refresh
on doSomething
if eCount = 1 then
-- execute code for 1 timer
else
-- execute code for more than 1 timer
end if
-- reset flag
put false into sPending
put 0 into eCount
end doSomething
如果两个定时器在100毫秒之内完成,那么将执行多个定时器的代码 - 否则将执行1个定时器的代码。将100毫秒设置调整为您需要的任何设置。