Создание динамических ссылок на событие pointerdown -JointJS

Можно ли создавать интерактивные динамические ссылки в JointJS, начиная с контрольной точки (x, y), вместо того, чтобы рисовать ее из порта или использовать ореол.

С уважением Ачут


person ACHU    schedule 31.08.2016    source источник


Ответы (1)


В JointJS есть несколько недокументированных методов, которые могут помочь вам решить эту проблему. Больше встроенных.

paper.on('blank:pointerdown', function(evt, x, y) {

    var linkView = this.getDefaultLink()
            .set({
                'source': { x: x, y: y },
                'target': { x: x, y: y }
            })
            .addTo(this.model)
            .findView(this);

    // initiate the linkView arrowhead movement
    linkView.startArrowheadMove('target');

    $(document).on({
        'mousemove.example': onDrag,
        'mouseup.example': onDragEnd
    }, {
        // shared data between listeners
        view: linkView,
        paper: this
    });


    function onDrag(evt) {
        // transform client to paper coordinates
        var p = evt.data.paper.snapToGrid({
            x: evt.clientX,
            y: evt.clientY
        });
        // manually execute the linkView mousemove handler
        evt.data.view.pointermove(evt, p.x, p.y);
    }

    function onDragEnd(evt) {
        // manually execute the linkView mouseup handler
        evt.data.view.pointerup(evt);
        $(document).off('.example');
    }

});
person Roman    schedule 02.09.2016
comment
Большое спасибо!!! Это работает как шарм. Я новичок в Javascript и JointJS. Я мог понять, что при mousemove и mouseup вызываются соответствующие функции. Но как используется .example? Какова важность назначения .example событиям мыши? - person ACHU; 04.09.2016
comment
Для корректной работы демо не важно. Я использовал пространства имен только для ссылки на прослушиватели mousemove и mouseup в onDragEnd(). - person Roman; 04.09.2016
comment
Ага! Я понял. Я предполагаю, что это просто пространство имен, используемое для ссылки на события мыши. - person ACHU; 04.09.2016