Вопрос о обработчике событий onstart для Element.drag в объявленном Snap.svg.Snap.svg - обработчик события перетаскивания
Целью приведенного ниже кода является регистрация обработчиков событий для начала и остановки перетаскивания (onstart/onstop) объекта svg.
var s = Snap(800,600);
var bigCircle = s.circle(300,150,100);
bigCircle.drag(null,
function(){
console.log("Move started");
},
function(){
console.log("Move stopped");
}
);
Консоль сообщения работают отлично на сопротивление запуска и остановки, но нулевой приоритет по умолчанию OnMove функции - в результате никакого фактического сопротивления не происходит. Как передать что-то, что говорит: «Я не хочу возиться со стандартным onmove»?
. (Примечание: Я бы предпочел, чтобы зарегистрировать обработчик событий с помощью присваивания, как знакомый OnClick, но это совсем другое дело)
Примечание добавлено через несколько часов: Рафаэля. Документация js и примеры предоставляют некоторые подсказки. По крайней мере, теперь я знаю, как передать в соответствующую функцию для OnMove, что обеспечивает поведение перемещения по умолчанию:
var s = Snap(800,600);
var bigCircle = s.circle(300,150,100);
start = function() {
this.ox = parseInt(this.attr("cx"));
this.oy = parseInt(this.attr("cy"));
console.log("Start move, ox=" + this.ox + ", oy=" + this.oy);
}
move = function(dx, dy) {
this.attr({"cx": this.ox + dx, "cy": this.oy + dy});
}
stop = function() {
this.ox = parseInt(this.attr("cx"));
this.oy = parseInt(this.attr("cy"));
console.log("Stop move, ox=" + this.ox + ", oy=" + this.oy);
}
bigCircle.drag(move, start, stop);
да у меня была такая же проблема, и в конечном итоге здесь, это не имеет смысла, что, если я хочу, чтобы присоединить обработчик movestart у меня есть для переопределения функции onmove –