mxGraph继承自mxEventSource,所以首先了解一下mxEventSource这个类。
1. 作用
mxEventSource是分派命名事件的对象的基类,采用原型链方式继承,如下所示:
function MyClass() {
};
MyClass.prototype = new mxEventSource();
MyClass.prototype.constructor = MyClass;
在mxGraph库中已有如下子类:mxGraphModel,mxGraph,mxGraphView,mxEditor,mxCellOverlay,mxToolbar,mxWindow。
mxEventSource的构造函数如下,可以指定一个事件源:
function mxEventSource(eventSource) {
this.setEventSource(eventSource);
}
2. 原型属性
mxEventSource定义了三个原型属性:
// 在数组中保存事件名称和关联的监听器。该数组包含事件名称,其后跟着每个已注册监听器的相应监听器。
mxEventSource.prototype.eventListeners = null;
// 指定是否可以触发事件。默认为true。
mxEventSource.prototype.eventsEnabled = true;
// 事件的可选来源。默认值为null。
mxEventSource.prototype.eventSource = null;
同时还定义了eventsEnabled和eventSource的getter和setter。
3. 原型方法
mxEventSource定义了三个原型方法,分别用于添加、移除和触发监听器:
/**
* 将指定的函数绑定到给定的事件名称。如果没有给出事件名称,则为所有事件注册监听器。
* 侦听器的参数是发送方和<mxEventObject>。
*/
mxEventSource.prototype.addListener = function (name, funct) {
if (this.eventListeners =