LTimer Class
LTimer 类是计时器的接口,它使您能按指定的时间序列运行代码。使用 start() 方法来启动计时器。为 timer 事件添加事件侦听器,以便将代码设置为按计时器间隔运行。
可以创建 LTimer 对象以运行一次或按指定间隔重复运行,从而按计划执行代码。根据 帧速率或运行时环境(可用内存和其他因素),运行时调度事件的间隔可能稍有不同。例如,如果设置为以每秒 10 帧 (fps)(也就是 100 毫秒的间隔)的速度播放,但计时器设置为在 80 毫秒时触发事件,则将按接近于 100 毫秒的间隔触发事件。大量耗费内存的脚本也可能使事件发生偏差。
Constructor
LTimer
-
delay
-
repeatCount
Parameters:
-
delay
Float计时器事件间的延迟(以毫秒为单位)。建议 delay 不要低于 20 毫秒。计时器频率不得超过 60 帧/秒,这意味着低于 16.6 毫秒的延迟可导致出现运行时问题。
-
repeatCount
Int指定重复次数。如果为零,则计时器将持续不断重复运行,最长可运行 24.86 天 (int.MAX_VALUE + 1)。如果不为 0,则将运行计时器,运行次数为指定的次数,然后停止。
Example:
LInit(50, "legend", 800, 480, main);
function main () {
LGlobal.setDebug(true);
var myTimer = new LTimer(1000, 2);
myTimer.addEventListener(LTimerEvent.TIMER, timerHandler);
myTimer.start();
}
function timerHandler(e){
trace("timerHandler: " + e);
}
Item Index
Methods
Properties
Methods
addEventListener
-
type
-
listener
使用 LEventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表中的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。
如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。
Parameters:
-
type
String事件的类型。
-
listener
Function处理事件的侦听器函数。
callParent
-
functionName
-
arguments
调用父类的函数。
Parameters:
-
functionName
String函数名
-
arguments
Array固定值arguments
Example:
function funA(){
LExtends(this,LObject,[]);
}
funA.prototype.myName = function(){
return "AAA";
}
function funB(){
LExtends(this,funA,[]);
}
funB.prototype.myName = function(){
return "BBB";
}
function funC(){
LExtends(this,funA,[]);
}
funC.prototype.myName = function(){
return this.callParent("myName",arguments);
}
LInit(1000/50,"legend",800,150,main);
function main(){
LGlobal.setDebug(true);
var objB = new funB();
trace(objB.myName());//BBB
var objC = new funC();
trace(objC.myName());//AAA
}
destroy
()
public
释放计时器,计时器释放后将不可以再次使用。
dispatchEvent
-
event
将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 LEventDispatcher 对象。
Parameters:
-
event
LEvent | String调度到事件流中的 Event 对象。如果正在重新调度事件,则会自动创建此事件的一个克隆。在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。
Returns:
如果成功调度了事件,则值为 true。
Example:
function MyEventObject(){
var self = this;
LExtends(self,LSprite,[]);
self.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000");
self.graphics.drawRect(1,"#FF0000",[100,0,100,100],true,"#FF0000");
self.addEventListener(LMouseEvent.MOUSE_UP,self.onclick);
self.addEventListener(MyEventObject.CLICK_LEFT,function(event){
trace("dispatchEvent");
});
self.addEventListener(MyEventObject.CLICK_RIGHT,function(event){
trace("dispatchEvent event.name = " + event.name);
});
}
MyEventObject.CLICK_LEFT = "click_left";
MyEventObject.CLICK_RIGHT = "click_right";
MyEventObject.prototype.onclick = function(event){
var self = event.clickTarget;
if(event.selfX < 100){
self.dispatchEvent(MyEventObject.CLICK_LEFT);
}else{
var event = new LEvent(MyEventObject.CLICK_RIGHT);
event.name = "LEvent Test";
self.dispatchEvent(event);
}
}
hasEventListener
-
type
检查 LEventDispatcher 对象是否为特定事件类型注册了任何侦听器。这样,您就可以确定 LEventDispatcher 对象在事件流层次结构中的哪个位置改变了对事件类型的处理。
Parameters:
-
type
String事件的类型。
Returns:
如果指定类型的侦听器已注册,则值为 true;否则,值为 false。
removeAllEventListener
()
public
从 LEventDispatcher 对象中删除所有侦听器。
removeEventListener
-
type
-
listener
从 LEventDispatcher 对象中删除侦听器。如果没有向 LEventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。
Parameters:
-
type
String事件的类型。
-
listener
Function要删除的侦听器对象。
reset
()
public
如果计时器正在运行,则停止计时器,并将 currentCount 属性设回为 0,这类似于秒表的重置按钮。然后,在调用 start() 后,将运行计时器实例,运行次数为指定的重复次数(由 repeatCount 值设置)。
start
()
public
如果计时器尚未运行,则启动计时器。
stop
()
public
停止计时器。如果在调用 stop() 后调用 start(),则将继续运行计时器实例,运行次数为剩余的 重复次数(由 repeatCount 属性设置)。
Properties
currentCount
Int
public
计时器从 0 开始后触发的总次数。如果已重置了计时器,则只会计入重置后的触发次数。
delay
Int
public
计时器事件间的延迟(以毫秒为单位)。如果在计时器正在运行时设置延迟间隔,则计时器将按相同的 repeatCount 迭代重新启动。
注意:建议 delay 不要低于 20 毫秒。计时器频率不得超过 60 帧/秒,这意味着低于 16.6 毫秒的延迟可导致出现运行时问题。
objectIndex
Int
public
对象的ID
repeatCount
Int
public
设置的计时器运行总次数。如果重复计数设置为 0,则计时器将持续不断运行,最长可运行 24.86 天,或直至调用了 stop() 方法或节目停止。如果重复计数不为 0,则将运行计时器,运行次数为指定的次数。如果设置的 repeatCount 总数等于或小于 currentCount,则计时器将停止并且不会再次触发。
running
Boolean
public
计时器的当前状态;如果计时器正在运行,则为 true,否则为 false。
Events
LTimerEvent.TIMER
每当 LTimer 对象达到根据 LTimer.delay 属性指定的间隔时调度。
LTimerEvent.TIMER_COMPLETE
每当它完成 LTimer.repeatCount 设置的请求数后调度。