缩放大小同时还要可以允许拖拽的sp效果
写点留给自己看的。。。缩放大小同时还要可以允许拖拽的sp效果
如果 需要把一个sp放大或缩小.需要提前定制一个点 这个点事由你来定的
但是要注意的是 要把缩放点的x和y 要和你初始化时候的sp的中心点.一样 也就是sp的宽和高除以2的那个点;
如下:
//设置 放大缩小的变形点
var x1 = 275;
var y1 = 200;
//设置mc初始的坐标点 其实 也就是275,200因为上下一定要对应
mc.x = x1 - mc.width/2;
mc.y = y1 - mc.height/2;
//放大的时候
mc.x = x1 - mc.width/2;
mc.y = y1 - mc.height/2;
//缩小的时候
mc.x = x1 - mc.width/2;
mc.y = y1 - mc.height/2;
// 以下是实例
import flash.events.MouseEvent;
var x1 = 275;
var y1 = 200;
mc.x = x1 - mc.width/2;
mc.y = y1 - mc.height/2;
btn0.addEventListener(MouseEvent.CLICK, scaleD);
btn1.addEventListener(MouseEvent.CLICK, scaleU);
function scaleD(e:MouseEvent)
{
mc.scaleX-=0.1;
mc.scaleY-=0.1;
mc.x = x1 - mc.width/2;
mc.y = y1 - mc.height/2;
}
function scaleU(e:MouseEvent)
{
mc.scaleX+=0.1;
mc.scaleY+=0.1;
mc.x = x1 - mc.width/2;
mc.y = y1 - mc.height/2;
}
mc.addEventListener(MouseEvent.MOUSE_DOWN, pressMC);
var sx;
var sy;
function pressMC(e:MouseEvent)
{
trace("press");
sx = mc.mouseX*scaleX;
sy = mc.mouseY*scaleY;
stage.removeEventListener(MouseEvent.MOUSE_DOWN, pressMC);
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMC);
stage.addEventListener(MouseEvent.MOUSE_UP, releaseMC);
}
function moveMC(e:MouseEvent)
{
trace("move");
trace(mouseX +" "+mc.mouseX);
mc.x = mouseX - sx;
mc.y = mouseY - sy;
}
function releaseMC(e:MouseEvent)
{
trace("release");
stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveMC);
stage.removeEventListener(MouseEvent.MOUSE_UP, releaseMC);
x1 = mc.x + mc.width/2;
y1 = mc.y + mc.height/2;
}
posted on 2012-10-06 21:12 God is a girl 阅读(208) 评论(0) 编辑 收藏 举报