昨天有一群朋友问我定时器函数怎么写?这段代码非常简单。大致的思路是先做一个时间记录,然后循环对比时间,看是不是时间。例如,该脚本每20秒执行一次操作A,其余时间执行操作B。想
昨天有一群朋友问我定时器函数怎么写?
这段代码非常简单。大致的思路是先做一个时间记录,然后循环对比时间,看是不是时间。
例如,该脚本每20秒执行一次操作A,其余时间执行操作B。想想这个操作怎么写。
直接装载代码:
启动定时()Do If 定时检测(20) Then //参数20代表20秒 TracePrint "执行a操作--------------" 启动定时() Else TracePrint "执行b操作" End If Delay 200Loop/*----以下代码直接放到脚本的最后面----*/Function 启动定时() file.Write("/sdcard/pictures/定时.txt",TickCount())End FunctionFunction 定时检测(miao) Dim t=file.read("/sdcard/pictures/定时.txt") Dim n=1000*miao If Len(t) = 0 Then TracePrint "还未启动定时" EndScript End If If TickCount() - t > n Then 定时检测 = true Else 定时检测=false End If End Function
我的代码里写了两个函数,函数1是启动计时,函数2是计时检测。
你写剧本的时候,如果是我的时序思路,可以直接用我上面的框架。如果你想在你的脚本中插入这个计时函数,你可以这样写:
第一步:在你的脚本底部放两个函数。
/*----以下代码直接放到脚本的最后面----*/Function 启动定时() file.Write("/sdcard/pictures/定时.txt",TickCount())End FunctionFunction 定时检测(miao) Dim t=file.read("/sdcard/pictures/定时.txt") Dim n=1000*miao If Len(t) = 0 Then TracePrint "还未启动定时" EndScript End If If TickCount() - t > n Then 定时检测 = true Else 定时检测=false End If End Function
第二步:在需要计时的代码位置写。
启动定时()
第三步:检测到时间未到,记下代码位置。
定时检测(20) //参数20代表20秒
这个函数有一个返回值,如果是时间就为真,如果不是时间就为假。
使用的时候可以把返回值作为判断的条件,用来控制判断是否生效,把要执行的代码放到判断里。
通常,我不会使用两个函数。这里为了方便大家,我以txt文本为媒介,将功能一分为二。
好内容就这么多了。下一次,我会写关于指定时间的计时。