我正在使用缩放工具并且在Sprite.setAttributes({scale:{...})中遇到一些问题; 以画布中心为中心......
http://teempla.com/sites/all/themes/teamplan/d2d/ - 就是这样。
尝试用铅笔绘制两条或更多条线并按Zoom +,您将看到有浮动。这是不对的。奇怪的是,“他们将相对中心定位在一起。”
点击事件代码:
click: function( e, t, eOpts ){
d2dModel.set('zoom',d2dModel.get('zoom')+0.1);
var draw = Ext.ComponentManager.get(Ext.select('.d2d-draw-panel',true).elements[0].id);
for (var i in draw.surface.items.map){
draw.surface.items.map[i].setAttributes({
scale: {
cx: d2dModel.get('width')/2,
cy: d2dModel.get('height')/2,
x: d2dModel.get('zoom'),
y: d2dModel.get('zoom')
}
}, true);
}
}
在Raphael.JS中,我用
制作了它el.transform('s'+zoom+','+zoom+','+w/2+','+h/2);
它运作正常。
感谢任何想法!
答案 0 :(得分:1)
使用setViewBox
尝试缩放曲面http://docs.sencha.com/ext-js/4-1/source/Surface.html#Ext-draw-Surface-method-setViewBox
我在项目中所做的是:
var bbox = draw.surface.items.getBBox();
draw.surface.setViewBox(bbox.x, bbox.y, draw.getSize().width / zoomValue, draw.getSize().height / zoomValue);
请注意,这是在ext 4 beta期间,但现在应该几乎相同了。