meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:native:timer [2023/06/18 14:34] bibiboxsscripting:native:timer [2025/06/13 07:28] (当前版本) bibiboxs
行 1: 行 1:
 <markdown> <markdown>
-# Timer+Native/Timer
  
-计时器是实际开发是经常用到的功能,可进行`指定时间\间隔几次`执行某段代码的作用+计时器是开发阶段常用功能,可进行**等待指定时间\间隔几次**执行某段代码。
  
-**计时器是世界单模式,当切换世界\地图时将会重置全局计时器(切换世界前创建的计时器,在加载新世界时将会被清空)。**+**计时器在【切换世界\地图时将会重置(切换世界前创建的计时器,在加载新世界时将会被清空)。**
  
  
行 12: 行 12:
 ### timer.Action ### timer.Action
  
-获取当前计时器设定的函数(只读)。+获取当前计时器设定的函数(只读)。
  
  
行 18: 行 18:
 ### timer.Time ### timer.Time
  
-获取当前计时器设定的秒数(只读)。+获取当前计时器设定的秒数(只读)。
  
  
  
-### timer.Repeat+### timer.LastTime
  
-获取当前计时器设定的重复(只读)。+获取当前计时器创建\执行的时间(只读)。 
 + 
 + 
 + 
 +### timer.Repeat
  
-如果设置为0则表示无限重复。+> 获取当前计时器设定的重复次数(只读)。 
 +
 +如果设置为0则表示无限重复。
  
  
行 32: 行 38:
 ### timer.OverCount ### timer.OverCount
  
-获取当前计时器已经重复过的次数(只读)。+获取当前计时器已经重复过的次数(只读)。
  
  
行 38: 行 44:
 ### timer.Tag ### timer.Tag
  
-获取当前计时器设定的标签(只读)+> 设置当前计时器设定的标签,默认为`null`。 
 +
 +> Tag标签仅有筛选的功能作用,如果不需要使用`Timer.Find()`功能可以忽略
  
  
  
-## Function+## Static Function
  
-### Timer.Create()+### Env.Timer.GetRealTime()
  
-新建一个计\定次执行指定代码+> 获取当前间(Timer所用的时间单位以秒为单位,并非现实间)。 
 +
 +> **扩展:可通过用`Timer.GetRealTime() - myTimer.LastTime `获取某个timer下次执行剩余时间**
  
-如果`repeat == 0`则表示无限重复计时器。+```javascript 
 +function Env.Timer.GetRealTime(): float 
 +``` 
 + 
 + 
 + 
 +### Env.Timer.Create() 
 + 
 +> 新建一个计时器,定时\定次执行指定代码。 
 +
 +> **如果`repeat == 0`则表示无限重复计时器。** 
 + 
 +**==特别注意:`Timer`代码可能在延迟后的不同的阶段执行,请注意执行时检查相关引用是否存在(因为有可能在此期间,某些引用已经失效,导致空指针异常)。==**
  
 ```javascript ```javascript
-function Timer.Create( action: Action, second: float, repeat: int = 1 )+function Env.Timer.Create( action: Action, time: float, repeat: int = 1, tag: string = null ): Timer //返回Timer实例,可引用
 ``` ```
  
 ```javascript ```javascript
-Timer.Create(() => { +Env.Timer.Create(() => { 
-    DLog("间隔一秒后,输出这段话");+    DLog("Output in one second!");
 }, 1); }, 1);
  
-Timer.Create(() => { +Env.Timer.Create(() => { 
-    DLog("每间隔一秒,输出一次这段话,总共输出三次");+    DLog("Output in one second. Output three times!");
 }, 1, 3); }, 1, 3);
 ``` ```
行 66: 行 88:
  
  
-### Timer.Remove()+### Env.Timer.Remove()
  
-关闭一个计时器,销毁实例。+关闭一个计时器,销毁实例。
  
 ```javascript ```javascript
-function Timer.Remove( timer: Timer )+function Env.Timer.Remove( timer: Timer ): bool
 ``` ```
  
 ```javascript ```javascript
-let myTimer = Timer.Create(() => {+let myTimer = Env.Timer.Create(() => {
     DLog("间隔一秒后,输出这段话");     DLog("间隔一秒后,输出这段话");
 }, 1); }, 1);
  
-if(myTimer != null) Timer.Remove(myTimer);+if(myTimer != null) Env.Timer.Remove(myTimer);
 ``` ```
  
  
  
-### Timer.Find()+### Env.Timer.Find()
  
-根据`Tag`标识查找一个计时器,只会返回找到满足条件的第一个计时器。 +根据`Tag`标识查找一个计时器,返回找到满足条件的第一个计时器。 
- +> 
-此功能需要搭配`timer.SetTag()`配合使用。+此功能需要搭配`timer.SetTag()`等方法,设置标签配合使用。
  
 ```javascript ```javascript
-function Timer.Find( tag: string )+function Env.Timer.Find( tag: string ): Timer
 ``` ```
  
 ```javascript ```javascript
-Timer.Create(() => {+Env.Timer.Create(() => {
     DLog("间隔一秒后,输出这段话");     DLog("间隔一秒后,输出这段话");
-}, 1).SetTag("myTimer");+}, 1).SetTag("myTimer"); //这里也可以.Tag = "myTimer",或直接在`Env.Timer.Create()`末尾参数填写tag,作用相同
  
-let findTimer = Timer.Find("myTimer"); +let findTimer = Env.Timer.Find("myTimer"); 
-if(findTimer != null) Timer.Remove(myTimer);+if(findTimer != null) Env.Timer.Remove(myTimer);
 ``` ```
  
  
 +
 +## Function
  
 ### timer.SetTag() ### timer.SetTag()
  
-为指定Timer设置一个标签,以供`Timer.Find()`识别使用。 +为指定Timer设置一个标签,以供`Timer.Find()`识别使用。 
- +> 
-如果需求简单等情况可使用此方式,如果有较多实例的情况下,建议使用变量储存的方式,而不是动态寻找Tag。+需求简单等情况可使用此方式,如果有较多实例的情况下,建议使用变量储存的方式,而不是动态寻找Tag。
  
  
行 115: 行 139:
 function timer.SetTag( tag: string ) function timer.SetTag( tag: string )
 ``` ```
 +
 +
 +
 +
 +
 +
 +
 +
 </markdown> </markdown>