again reworked the matrix transform logic with drag and drop

This commit is contained in:
Eric Rowell
2012-03-25 12:45:46 -07:00
parent 8ee223584d
commit fbb6d0f706
5 changed files with 34 additions and 12 deletions

View File

@@ -624,7 +624,11 @@ Kinetic.Stage.prototype = {
newNodePos.x = node.x;
}
// magic
// save rotation and remove it from transform
var rot = node.rotation;
node.rotation = 0;
// unravel transform
var it = node.getAbsoluteTransform();
it.invert();
it.translate(newNodePos.x, newNodePos.y);
@@ -632,6 +636,9 @@ Kinetic.Stage.prototype = {
node.x += it.getTranslation().x;
node.y += it.getTranslation().y;
// restore rotation
node.rotate(rot);
go.drag.node.getLayer().draw();
if(!go.drag.moving) {
@@ -639,6 +646,7 @@ Kinetic.Stage.prototype = {
// execute dragstart events if defined
go.drag.node._handleEvents('ondragstart', evt);
}
// execute user defined ondragmove if defined
go.drag.node._handleEvents('ondragmove', evt);
}