AS3实现对对象(DisplayObject)的鼠标拖动(Drag)跟随

来源:互联网 发布:array python 编辑:程序博客网 时间:2024/05/16 11:51
flash中对对象的鼠标拖动跟随是很常用的效果,下面是简单的AS3代码实现一下代码与大家常用的方法有所不同的是,在鼠标拖动显示对象的时候flash对象的动画播放是不会被打断的和空白,相比flash自带的Drag方法比较符合用户需要,通过在对象移动时记录位移之后再赋值给复制后的新对象实现图像的唯一的实现。







//私有变量

private class ObjectDragging

{

private var offsetX:Number;

private var offsetY:Number;

private var draggedObject:*;



public function ObjectDragging(Obj:*)

{

addObjectDrag(Obj);

}



priavte function addObjectDrag(Obj:*):void {

Obj.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);

Obj.addEventListener(MouseEvent.MOUSE_UP, stopDragging);

}

//开始移动

private function startDragging(event:MouseEvent):void {

//记录被拖动的对象

draggedObject = DisplayObject(event.target);

//记录鼠标偏移

offsetX = event.stageX - draggedObject.x;

offsetY = event.stageY - draggedObject.y;

//添加新的对象

stage.addChild(draggedObject);

//监听鼠标移动事件

stage.addEventListener(MouseEvent.MOUSE_MOVE, dragObject);

}

//停止拖动

private function stopDragging(event:MouseEvent):void {

//移除鼠标移动事件

stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragObject);

}

private function dragObject(event:MouseEvent):void {

//设置新的坐标

draggedObject.x = event.stageX - offsetX;

draggedObject.y = event.stageY - offsetY;

//更新事件

event.updateAfterEvent();

}

}


--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题:[AS]Flash AS3实现对对象(DisplayObject)的鼠标拖动(Drag)跟随
- 独立博客:李大仁博客
- 永久链接:http://www.lidaren.com/archives/518
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
0 0
原创粉丝点击