2013-04-28 3 views
0

Я использую RaphealJS создать векторный инструмент для рисования, я весь рисунок и они работаютRaphealJS Изменения размера и мыши сдвиг

моих проблемы приходят, когда я изменить размер окна браузера и попробуйте нарисовать указатель мыши выкл. из выбранного места.

Я использую событие перемещения мыши в браузере и рисовать линии, как и

$(document).mousemove(function(e){ 
    if (IE) { 
     var dh = $("#details").height(); 
     var dw = $("#details").width(); 
      xx = e.offsetX; 
      yy = e.offsetY; 
    } else { 
     var offset = $("#workcanvas").offset(); 
     xx = e.pageX - offset.left; 
     yy = e.pageY - offset.top; 
    } 
    if (lineObject != null) { 
     lineObject.updateEnd(xx, yy); 
    } else { 
     lineObject = Line(xx, yy, xx, yy, MasterCanvas); 
    } 
}); 

создаю мой холст и фоновое изображение

var MasterCanvas = Raphael($("#workcanvas").attr("id")); 

var MasterBGImage = MasterCanvas.image(imgPath, 0, 0, $("#workcanvas").width(),$("#workcanvas").height()); 

MasterCanvas.setViewBox(0, 0, $("#workcanvas").width(), $("#workcanvas").height(), true); 

и в моем окне изменения размера событий я попробовал этот

MasterCanvas.setSize($("#workcanvas").width(), $("#workcanvas").height()); 

Теперь я бил головой об этом в течение нескольких дней безрезультатно. Обратите внимание: я могу работать с функцией рисования, и пока окно не изменяет размер, все отлично, но когда страница изменяется, точка рисования отключена.

ответ

0

Только в случае, если кто-то имеет эту проблему, оказывается проблема Viewbox, я должен был вычислить положение мыши на основе Viewbox координат не экран так, мой исходный код становится:

$(document).mousemove(function(e){ 

    var uupos = MasterCanvas.canvas.createSVGPoint(); 
    uupos.x = e.clientX; 
    uupos.y = e.clientY; 
    var ctm = MasterCanvas.canvas.getScreenCTM(); 
    if (ctm = ctm.inverse()) 
    uupos = uupos.matrixTransform(ctm); 
    x = uupos.x; 
    y = uupos.y; 

    if (lineObject != null) { 
     lineObject.updateEnd(x, y); 
    } else { 
     lineObject = Line(x, y, x, y, MasterCanvas); 
    } 
}); 

Редактировать: Похоже, что это решение SVG, хотя оно и не работает в IE8, что является требованием для меня - любых идей.

Есть ли что-то вроде viewBox координат в VML

 Смежные вопросы

  • Нет связанных вопросов^_^