国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript Timer實(shí)現(xiàn)代碼

2024-05-06 14:11:26
字體:
供稿:網(wǎng)友
ok,不廢話了,實(shí)現(xiàn)一個(gè)javascript的Timer吧
比起as3的Timer類,功能上略有改動(dòng)
timer2.src.js
代碼如下:
/**
* Timer 模型
*
* @author rainsilence
* @version 2.0
*/
(function() {
/**
* TimerEvent constructor 構(gòu)造器
*
* @param type 事件類型
* @param bubbles 是否毛票
* @param cancelable 是否可取消
*/
TimerEvent = function(type, bubbles, cancelable) {
this.type = type;
this.bubbles = bubbles;
this.cancelable = cancelable;
};
/**
* Event 時(shí)間事件聲明
*
* @event TIMER
* @event TIMER_COMPLETE
*/
extend(TimerEvent, {
TIMER : "timer",
TIMER_COMPLETE : "timerComplete"
});
/**
* Event 方法
*
* @method toString
*/
extend(TimerEvent.prototype, {
toString : function() {
return "[TimerEvent type=" + this.type +
" bubbles=" + this.bubbles +
" cancelable=" + this.cancelable +"]";
}
});
/**
* Extend 擴(kuò)展類,對象的屬性或者方法
*
* @param target 目標(biāo)對象
* @param methods 這里改成param也許更合適,表示承載著對象,方法的對象,用于target的擴(kuò)展
*/
function extend(target, methods) {
if (!target) {
target = {};
}
for (var prop in methods) {
target[prop] = methods[prop];
}
return target;
}
/**
* Timer 構(gòu)造器
*
* @param delay 延時(shí)多少時(shí)間執(zhí)行方法句柄
* @param repeatCount 重復(fù)多少次,如果不設(shè)置,代表重復(fù)無限次
*/
Timer = function(delay, repeatCount) {
var listenerMap = {};
listenerMap[TimerEvent.TIMER] = [];
listenerMap[TimerEvent.TIMER_COMPLETE] = [];
extend(this, {
currentCount : 0,
running : false,
delay : delay,
repeatCount : repeatCount,
// true:Interval,false:Timeout
repeatType : repeatCount == null || repeatCount < 1 ? true : false,
handler : listenerMap,
timerId : 0,
isCompleted : false
});
};
// 事件對象初始化(這部分未實(shí)現(xiàn))
var timerEvent = new TimerEvent(TimerEvent.TIMER, false, false);
var timerCompleteEvent = new TimerEvent(TimerEvent.TIMER_COMPLETE, false, false);
/**
* Timer 計(jì)時(shí)器方法
*
* @method addEventListener 增加一個(gè)方法句柄(前兩個(gè)參數(shù)必須,后一個(gè)參數(shù)可選)
* @method removeEventListener 移除一個(gè)方法句柄
* @method start 開始計(jì)時(shí)器
* @method stop 結(jié)束計(jì)時(shí)器
* @method reset 重置計(jì)時(shí)器
*/
extend(Timer.prototype, {
addEventListener : function(type, listener, useCapture) {
if (type == TimerEvent.TIMER || type == TimerEvent.TIMER_COMPLETE) {
if (!listener) {
alert("Listener is null");
}
if (useCapture == true) {
this.handler[type].splice(0, 0, [listener]);
} else {
this.handler[type].push(listener);
}
}
},
removeEventListener : function(type, listener) {
if (type == TimerEvent.TIMER || type == TimerEvent.TIMER_COMPLETE) {
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 布尔津县| 额尔古纳市| 山阳县| 漳平市| 都江堰市| 海丰县| 神木县| 会理县| 阿克| 余江县| 云龙县| 琼结县| 习水县| 金川县| 宜兰市| 定边县| 安义县| 绥化市| 阳泉市| 定结县| 龙井市| 兴山县| 岫岩| 池州市| 元阳县| 东宁县| 鹿邑县| 比如县| 红河县| 合川市| 三穗县| 桂林市| 溆浦县| 抚州市| 武威市| 澄城县| 托克托县| 美姑县| 清新县| 镇原县| 永川市|