flash as3 舞台被拖拽后如何恢复原位,比如舞台被向上拖动100,用什么代码能让它恢复拖动前的位置?

flashas3舞台被拖拽后如何恢复原位,比如舞台被向上拖动100,然后关闭拖拽侦听事件,用什么代码能让它恢复拖动前的位置?如果是元件可以用mc1.y=0;表示,舞台却不... flash as3 舞台被拖拽后如何恢复原位,比如舞台被向上拖动100,然后关闭拖拽侦听事件,用什么代码能让它恢复拖动前的位置?如果是元件可以用mc1.y=0;表示,舞台却不行,哪位大神有解决办法拜托了 展开
 我来答
碧血玉叶花
推荐于2016-11-19 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1737万
展开全部
//假设你的黑色元件是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;
            }
        }
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式