flash AS3.0 怎么设置元件在舞台的拖动范围。只能x轴左右移动。
2个回答
展开全部
很简单,侦听鼠标事件再做处理就可以了,下面是代码:
//假设你的黑色元件是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也可以,但是这个方法会导致在某些情况下一不小心按下右键会导致释放左键的效果失效,所以最好的方法还是用事件侦听~
希望能帮到你~
深圳市容大彩晶科技有限公司
2024-11-20 广告
2024-11-20 广告
作为深圳市容大彩晶科技有限公司的工作人员,对于公司广告机的功能有一定的了解。公司的广告机是否支持多语言显示,具体需根据产品型号和功能配置来确定。但一般而言,现代广告机通常具备多语言显示的功能,以适应不同国家和地区的需求。建议直接查阅产品说明...
点击进入详情页
本回答由深圳市容大彩晶科技有限公司提供
展开全部
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.
方法
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.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询