dragTest

by Joe LeMonnier

JavaScript

var paper = new Raphael(0, 0, 500, 500);

var circle = paper.circle(120, 110, 25).attr("fill", "yellow");

circle.drag( dragstart,dragmove, dragend);
var posy=50,posx=100;
function dragstart(x, y, e) {

// save the value of the transformation at the start of the drag

// if this is the initial drag, it will be a blank string

this.current_transform = this.transform();

// just for kicks

this.attr("fill", "orange");

}

function dragmove(dx, dy, x, y, e) {

// adjust the pre-existing transformation (if any) by the drag difference

this.transform(this.current_transform+'T'+dx+','+dy);
paper.text(posx,posy,this.current_transform).attr("font-size", 20);

}

function dragend(e) {

// update the current transformation with the final value

this.current_transform = this.transform();

// that's enough kicks
posy+=20;
this.attr("fill", "yellow");

}