【mxGraph】源码学习:(4)mxEventSource

本文深入探讨了mxGraph库中的mxEventSource类,它是分派命名事件的基础。介绍了mxEventSource的作用、原型属性和方法,以及与之相关的mxEventObject。文章详细阐述了事件监听器的添加、移除和触发过程,以及mxEventObject在事件传播中的角色。
摘要由CSDN通过智能技术生成

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 =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值