ActionScript拖动元件

来源:互联网 发布:用手机发布淘宝宝贝 编辑:程序博客网 时间:2024/04/30 12:21

方法1:需要计算坐标

package {import flash.display.Sprite;import flash.display.MovieClip;import flash.events.MouseEvent;public class Main extends Sprite{private var white:uint = 0xffffff;private var black:uint = 0x000000;//鼠标在拖动对象内的偏移量private var offsetX:Number;private var offsetY:Number;//拖动元件private var mc:MovieClip;public function Main(){mc=new MovieClip();mc.graphics.lineStyle(2,black);mc.graphics.beginFill(white);mc.graphics.drawRect(100,100,30,30);mc.graphics.endFill();mc.addEventListener(MouseEvent.MOUSE_DOWN, dragStart);stage.addChild(mc);stage.addEventListener(MouseEvent.MOUSE_UP, dragStop);}//按下鼠标,开始拖动对象private function dragStart(e:MouseEvent):void{offsetX = e.localX;offsetY = e.localY;stage.addEventListener(MouseEvent.MOUSE_MOVE, dragging);}//拖动鼠标private function dragging(e:MouseEvent):void{mc.x = e.stageX - offsetX;mc.y = e.stageY - offsetY;}//停止拖动private function dragStop(e:MouseEvent):void{stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragging);}}}

方法2:非常简单

package {import flash.display.Sprite;import flash.display.MovieClip;import flash.events.MouseEvent;public class Main extends Sprite{private var white:uint = 0xffffff;private var black:uint = 0x000000;//拖动元件private var mc:MovieClip;public function Main(){mc=new MovieClip();mc.graphics.lineStyle(2,black);mc.graphics.beginFill(white);mc.graphics.drawRect(100,100,30,30);mc.graphics.endFill();mc.addEventListener(MouseEvent.MOUSE_DOWN, dragStart);mc.addEventListener(MouseEvent.MOUSE_UP, dragStop);mc.addEventListener(MouseEvent.MOUSE_MOVE,dragging);stage.addChild(mc);}//按下鼠标,开始拖动对象private function dragStart(e:MouseEvent):void{e.target.startDrag();}//拖动鼠标private function dragging(e:MouseEvent):void{e.updateAfterEvent();}//停止拖动private function dragStop(e:MouseEvent):void{e.target.stopDrag();}}}


0 0
原创粉丝点击