flash AS3.0 怎么设置元件在舞台的拖动范围。只能x轴左右移动。

黑色的元件能在粉色元件上面左右拖动不得上下拖动且不能超过粉色元件区域... 黑色的元件能在粉色元件上面左右拖动 不得上下拖动
且不能超过粉色元件区域
展开
 我来答
gjsgdhr
推荐于2016-04-24 · TA获得超过1800个赞
知道小有建树答主
回答量:665
采纳率:77%
帮助的人:463万
展开全部

很简单,侦听鼠标事件再做处理就可以了,下面是代码:

//假设你的黑色元件是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;
            }
        }
    }
}

其实按照第一个回答者的方法用startDrag也可以,但是这个方法会导致在某些情况下一不小心按下右键会导致释放左键的效果失效,所以最好的方法还是用事件侦听~

希望能帮到你~

朴实又可爱的小桃花n
2014-03-17 · TA获得超过824个赞
知道小有建树答主
回答量:278
采纳率:0%
帮助的人:257万
展开全部
startDrag ()
方法

public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void

后面的bounds参数就是它的移动位置的限制,是一个矩形。
var bounds:Rectangle=new Rectangle(0,0,100,1)
Rectangle(x:Number = 0,
y:Number = 0, width:Number = 0, height:Number = 0)
例如mc.startDrag(false,new Rectangle(0,0,100,1).
表示mc这个元件在一个矩形内移动,这个矩形有左上角坐标在(0,0)位置。移动的长度为100,高度为1.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式