缩放大小同时还要可以允许拖拽的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;
}

转载于:https://www.cnblogs.com/sunmmbk/archive/2012/10/06/2736349.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值