LTimer Class
LTimer 类是计时器的接口,它使您能按指定的时间序列运行代码。使用 start() 方法来启动计时器。为 timer 事件添加事件侦听器,以便将代码设置为按计时器间隔运行。
可以创建 LTimer 对象以运行一次或按指定间隔重复运行,从而按计划执行代码。根据 帧速率或运行时环境(可用内存和其他因素),运行时调度事件的间隔可能稍有不同。例如,如果设置为以每秒 10 帧 (fps)(也就是 100 毫秒的间隔)的速度播放,但计时器设置为在 80 毫秒时触发事件,则将按接近于 100 毫秒的间隔触发事件。大量耗费内存的脚本也可能使事件发生偏差。
Constructor
LTimer
-
delay -
repeatCount
Parameters:
-
delayFloat计时器事件间的延迟(以毫秒为单位)。建议 delay 不要低于 20 毫秒。计时器频率不得超过 60 帧/秒,这意味着低于 16.6 毫秒的延迟可导致出现运行时问题。
-
repeatCountInt指定重复次数。如果为零,则计时器将持续不断重复运行,最长可运行 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:
-
typeString事件的类型。
-
listenerFunction处理事件的侦听器函数。
callParent
-
functionName -
arguments
调用父类的函数。
Parameters:
-
functionNameString函数名
-
argumentsArray固定值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:
-
eventLEvent | 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:
-
typeString事件的类型。
Returns:
如果指定类型的侦听器已注册,则值为 true;否则,值为 false。
removeAllEventListener
()
public
从 LEventDispatcher 对象中删除所有侦听器。
removeEventListener
-
type -
listener
从 LEventDispatcher 对象中删除侦听器。如果没有向 LEventDispatcher 对象注册任何匹配的侦听器,则对此方法的调用没有任何效果。
Parameters:
-
typeString事件的类型。
-
listenerFunction要删除的侦听器对象。
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 设置的请求数后调度。
