Я разветвил ваш jsFiddle (http://jsfiddle.net/phusick/ta65D/) и добавил два экземпляра of dijit/form/NumberSpinner
(translateX и translateY) для перемещения бабочки благодаря модифицированной функции updateMatrix
:
var updateMatrix = function() {
var translateX = xSpinner.get("value");
var translateY = ySpinner.get("value");
var centerX = 210 + translateX;
var centerY = 170 + translateY;
if(g) {
g.setTransform([
m.rotategAt(rotation, centerX, centerY),
m.scaleAt(scaling, centerX, centerY),
m.translate(translateX, translateY)
]);
}
};
EDIT: чтобы добавить поддержку мыши DnD, добавьте следующий код к вышеупомянутому:
var moveable = new Moveable(g); // require("dojox/gfx/Moveable")
moveable.onMoved = function(mover, shift) {
xSpinner.set("value", xSpinner.get("value") + shift.dx);
ySpinner.set("value", ySpinner.get("value") + shift.dy);
}
Конечно, вам не обязательно использовать NumberSpinner
, но поскольку я поместил его туда до того, как он даст вам хорошую обратную связь о том, что происходит за кулисами. См. на jsFiddle: http://jsfiddle.net/phusick/ta65D/.
person
phusick
schedule
28.09.2012