我正在使用Raphael Free Transform插件来启用缩放,拖动和旋转。 在这个特殊情况下,我想要一个用于调整大小的句柄和另一个用于旋转的句柄,因此仅在轴x上设置缩放选项。我想通过在函数回调上进行校正来补偿y轴上的缩放,以避免“图像”失真。 我想让用户使用一个手柄重新调整raphael集的大小,并使用另一个手柄旋转raphael集。此外,我想保留由缩放引起的所有转换,这样一旦用户尝试拖动对象,它就不会丢失。
var ft = paper.freeTransform(tmp, { scale: ['axisX'], rotate: ['axisY'] }, cbFreeTransform);
function cbFreeTransform(s, e) {
if (e.toString() == 'scale end') {
for (var i = 0, l = tmp.length; i < l; i++) {
var itm = tmp[i];
itm.scale(1, s.attrs.scale.x);
}
}
}
这是小提琴:jsFiddle
任何帮助表示感谢。
答案 0 :(得分:2)
找到以下解决方案: 在'Scale End'事件中,我已将x比例因子分配给y比例因子和无呼叫转换应用方法。这似乎有效。
var ft = paper.freeTransform(tmp,{scale:['axisX'],rotate:['axisY']},cbFreeTransform);
function cbFreeTransform(s, e) {
if (e.toString() == 'scale end') {
ft.attrs.scale.y = s.attrs.scale.x;
ft.apply();
}
}