2016-06-06 14 views
0

Ich spiele ein wenig mit AMI Medical Imaging (AMI) JS ToolKit. Gibt es eine Möglichkeit, die Fenster zu einem Mausereignis zu bewegen, wie mit der rechten Maustaste & verschieben?Verwenden Sie die Mausbewegung für Änderungsebene/Fenster in AMI Medical Imaging (AMI) JS ToolKit

Ich weiß, dass es möglich ist, Fenster/Ebene mit den Menüs auf den Beispielen zu ändern, aber ich möchte den Controller ändern, um es zu tun, die Maus zu bewegen.

Danke!

Antwort

0

Um das Fenster/Level durch Bewegen der Maus zu steuern, müssen Sie das mousemouve Ereignis hören und dann das stackHelper -> slice -> windowWidth/Center nach Belieben aktualisieren.

Sie könnten Fenster/Ebene aktivieren, wenn der Benutzer drücken shift:

var drag = { 
    x: null, 
    y: null 
} 

var shiftDown = false; 

function onKeyPressed(event){ 

    shiftDown = event.shiftKey; 

    if(!shiftDown){ 
    drag.x = null; 
    drag.y = null; 
    } 

} 

container.addEventListener('keydown', onKeyPressed); 
container.addEventListener('keyup', onKeyPressed); 

Dann das Fenster/Ebene auf Mausbewegung aktualisieren:

function onMouseMove(event){ 

    if(!shiftDown || !stack || !stackHelper){ 
    return; 
    } 

    if(drag.x === null){ 
    drag.x = event.offsetX; 
    drag.y = event.offsetY; 
    } 

    var threshold = 15; 
    var dynamicRange = stack.minMax[1] - stack.minMax[0]; 
    dynamicRange /= container.clientWidth; 

    if(Math.abs(event.offsetX - drag.x) > threshold){ 
    // window width 
    stackHelper.slice.windowWidth += dynamicRange * (event.offsetX - drag.x); 
    drag.x = event.offsetX; 
    } 

    if(Math.abs(event.offsetY - drag.y) > threshold){ 
    // window center 
    stackHelper.slice.windowCenter -= dynamicRange * (event.offsetY - drag.y); 
    drag.y = event.offsetY; 
    } 

} 
container.addEventListener('mousemove', onMouseMove); 

eine Live-Demo sehen auf (Shift + Maus bewegen um die Fensterebene zu steuern): http://jsfiddle.net/vabL3qo0/41/