zoukankan      html  css  js  c++  java
  • as(ActionScript)拖动实现

    今天用as做了过一个最简单的拖动,代码没有任何的复杂性,添加了详细的注释,只要有as基础的都能直接看懂。

    完整代码如下:

    package
    {
    	import flash.display.DisplayObject;
    	import flash.display.Sprite;
    	import flash.events.MouseEvent;
    	
    	public class drag extends Sprite
    	{
    		//拖动对象一
    		private var box:Sprite;
    		//拖动对象二
    		private var box2:Sprite;
    		
    		//鼠标在拖动对象内的偏移量
    		private var offsetX:Number;
    		private var offsetY:Number;
    		//拖动的对象
    		private var dragObject:DisplayObject;
    		
    		public function drag()
    		{
    			//实例拖动对象一
    			box = new Sprite();
    			box.graphics.beginFill(0xff0000);
    			box.graphics.drawRect(100,100,50,50);
    			box.graphics.endFill();
    			this.addChild(box);
    			//实例拖动对象二
    			box2 = new Sprite();
    			box2.graphics.beginFill(0x0000ff);
    			box2.graphics.drawRect(155,155,50,50);
    			box2.graphics.endFill();
    			this.addChild(box2);
    			//给拖动对象注册拖动事情
    			box.addEventListener(MouseEvent.MOUSE_DOWN,dragStart);
    			box2.addEventListener(MouseEvent.MOUSE_DOWN,dragStart);
    			//舞台事件,用于移除拖动对象事件
    			stage.addEventListener(MouseEvent.MOUSE_UP,dragStop);
    		}
    		//开始拖动
    		private function dragStart(e:MouseEvent):void
    		{
    			//获得拖动的目标对象
    			dragObject = e.target as DisplayObject;
    			//记录偏移量
    			offsetX = e.localX; // e.stageX - dragObject.x; 
    			offsetY = e.localY; // e.stageY - dragObject.y;
    			//把目标对象设置在舞台的最顶端
    			stage.addChild(dragObject);
    			//舞台事件,注册鼠标移动事件
    			stage.addEventListener(MouseEvent.MOUSE_MOVE,dragging);
    			
    		}
    		//拖动方法
    		private function dragging(e:MouseEvent):void
    		{
    			//设置拖动目标对象的位置
    			dragObject.x = e.stageX-offsetX;
    			dragObject.y = e.stageY-offsetY;
    		}
    		//停止拖动
    		private function dragStop(e:MouseEvent):void
    		{
    			//除多拖动事件
    			stage.removeEventListener(MouseEvent.MOUSE_MOVE,dragging);
    		}
    	}
    }
    
  • 相关阅读:
    HyperLeger Fabric开发(三)——HyperLeger Fabric架构
    WPF设计の画刷(Brush)
    WPF设计の画刷(Brush)
    WPF设计の画刷(Brush)
    Mina Basics 02-基础
    内置方法
    py-opp 类(class)
    Python 学习目录
    py-函数进阶
    py-函数基础
  • 原文地址:https://www.cnblogs.com/airy/p/1830315.html
Copyright © 2011-2022 走看看