();
// // 创建线程
// var thread: FListenerThread = this._thread = RClass.create(FListenerThread);
// thread.interval = this._interval;
// thread.processListeners.register(this, this.onProcess);
// this._threadConsole.start(thread);
// RLogger.debug(this, 'Add event thread. (thread={1})', RClass.dump(thread));
}
//==========================================================
// 事件后台处理。
//
// @param context 环境
// @param parameters 参数集合
//==========================================================
public alloc(eventCd: String): any {
switch (eventCd) {
case EventEnum.Enter:
return new MouseEnterEvent();
case EventEnum.Leave:
return new MouseLeaveEvent();
case EventEnum.Click:
case EventEnum.DoubleClick:
case EventEnum.MouseDown:
case EventEnum.MouseMove:
case EventEnum.MouseUp:
return new MouseEvent();
default:
throw new Fatal(this, 'Unknown event.');
}
}
//==========================================================
// 将一个页面元素和已经注册过的事件相关联。
// 如果指定了立即函数,则发生事件时,会立即执行立即函数。
// 该立即函数的this指针指向当前控件实例。
// 如果存在注册过的队列函数,则发生事件时,该事件被排到队列中等待执行。
// 执行时该函数的this指针指向当前控件实例。
//
// @method
// @param name:String 注册过的事件名称
// @param hTag 页面元素
// @param method 立即函数
// @param capture 捕捉
// @return TEvent 关联的事件对象
//==========================================================
public attachEvent(control: any, hTag: any, eventCd: string, method: Function = null, capture: boolean = false) {
var event: any = this.alloc(eventCd);
var eventName = null;
if (event.handle) {
eventName = 'on' + event.handle;
} else {
eventName = 'on' + eventCd.toLowerCase();
}
hTag[eventName] = (hEvent) => {
event.attachEvent(hEvent);
// 注册调用
method.call(control, control, event);
// 监听处理
control.dispatchEvent(eventCd, event);
}
//return MO.Dui.Control.attachEvent(this, name, hTag, method, capture);
}
//==========================================================
// 释放处理。
//
// @method
//==========================================================
public dispose() {
// 释放处理
// this._processEvents = RObject.dispose(this._processEvents);
// this._events = RObject.dispose(this._events);
// 父处理
super.dispose();
}
}