flash as3 舞台被拖拽后如何恢复原位,比如舞台被向上拖动100,用什么代码能让它恢复拖动前的位置?
flashas3舞台被拖拽后如何恢复原位,比如舞台被向上拖动100,然后关闭拖拽侦听事件,用什么代码能让它恢复拖动前的位置?如果是元件可以用mc1.y=0;表示,舞台却不...
flash as3 舞台被拖拽后如何恢复原位,比如舞台被向上拖动100,然后关闭拖拽侦听事件,用什么代码能让它恢复拖动前的位置?如果是元件可以用mc1.y=0;表示,舞台却不行,哪位大神有解决办法拜托了
展开
1个回答
展开全部
//假设你的黑色元件是black,粉色元件是powder
//此变量指示当前鼠标左键是否按下
var down:Boolean=false;
//此变量可以保存点击黑色元件的位置
var point:Point=new Point();
//侦听事件
black.addEventListener(MouseEvent.MOUSE_DOWN,handle);
black.addEventListener(MouseEvent.MOUSE_UP,handle);
//移动事件用stage侦听,也可以侦听ENTER_FRAME事件
stage.addEventListener(MouseEvent.MOUSE_MOVE,handle);
function handle(e:MouseEvent):void
{
if (e.type==MouseEvent.MOUSE_DOWN)
{
down=true;
point.x=black.mouseX;
point.y=black.mouseY;
}
else if (e.type==MouseEvent.MOUSE_UP)
{
down=false;
}
else if (e.type==MouseEvent.MOUSE_MOVE)
{
if (down==true)
{
//黑色元件随鼠标移动
black.x=black.parent.mouseX+point.x;
//限定移动范围
//因为我不确定你的元件是怎么安排坐标的,以下这么写适合所有情况
if (black.transform.pixelBounds.left<powder.transform.pixelBounds.left)
{
black.x+=powder.transform.pixelBounds.left-black.transform.pixelBounds.left;
}
else if (black.transform.pixelBounds.right>powder.transform.pixelBounds.right)
{
black.x-=black.transform.pixelBounds.right-powder.transform.pixelBounds.right;
}
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询