Qunee for HTML5 - 中文 : 图元事件支持

每个图元对象都可以设置一个监听器(#listener),通过该监听器可以处理图元相关的事件,比如图元属性变化事件,孩子变化事件等,此外图元事件通常分两步,”beforeEvent”事件在事件处理之前调用,如果返回false,则停止事件执行,”onEvent”在事件执行后调用。

事件相关属性和方法

  • #listener - 监听器,注意如果图元加入到图元容器(GraphModel)中,则监听器统一由图元容器处理,不必直接在图元对象上设置监听器
  • #beforeEvent(evt) - 事件处理前
  • #onEvent(evt) - 事件处理后

示例

下面是设置孩子次序的默认代码,可以看出内部事件的处理过程

setChildIndex: function(child, index) {
        if(!this._children || !this._children.length){
            return false;
        }
        var oldIndex = this._children.indexOf(child);
        if(oldIndex < 0 || oldIndex == index){
            return false;
        }
        var event = new ChildIndexChangeEvent(this, child, oldIndex, index);
        if(this.beforeEvent(event) === false){
            return false;
        }
        if(this._children.remove(child)){
            this._children.add(child, index);
        }
        this.onEvent(event);
        return true;
    }