缩放大小同时还要可以允许拖拽的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编辑  收藏  举报

导航