需要做一个平面图,图片可以进行以鼠标的滚轮的方式进行缩放。但是用的matrix.scale
图片总是以左上角的方式缩放。我想要的是以鼠标位置为中心来进行缩放的,就像百度地图那样。困扰好几天了。以下是代码,求大神们解救啊。
var p:Point =frm3.globalToLocal(new Point(event.stageX,event.stageY));
//指定以鼠标的所在位置 为中心 放大
var tempMatrix:Matrix = frm3.transform.matrix;
tempMatrix.translate(-p.x,-p.y);//1,限制放大缩小的上边框
if (event.delta < 0)
{
tempMatrix.scale(0.9, 0.9); //向下滚动缩小
}
else
{
tempMatrix.scale(1.1, 1.1); //向上滚动放大
}
tempMatrix.translate(p.x,p.y);//1,限制放大缩小的下边框
frm3.transform.matrix = tempMatrix;
rotateDeg = frm3.rotation;
我用C语言实现这个,读取鼠标上报的input事件,如果是滚轮事件,然后放大或者缩小图片,然后刷到现实设备上