拖拽类

来源:互联网 发布:淘宝福利图2000张下载 编辑:程序博客网 时间:2024/06/06 20:28

package game.help
{
 public class DragUtil
 {
  public function DragUtil()
  {
  }
        /** 
         * 开始拖拽 
         * */ 
        public static function dragHandler(event:MouseEvent):void 
        {  
            // 定义拖拽挂载数据源  
            var dsragSource:DragSource = new DragSource();  
            // 定义拖拽图标  
            var copy:Image = new Image();  
            // 拖拽对象  
            var target:Image = event.currentTarget as Image;  
      
            // 添加拖拽数据源数据  
            dsragSource.addData(target, "img");  
            dsragSource.addData(event.localX, "x");  
            dsragSource.addData(event.localY, "y");  
      
            // 拖拽图标  
            copy.source = new Bitmap(getBitmapData(target.content));  
            // 执行拖拽  
            DragManager.doDrag(target, dsragSource, event, copy);  
        }  
        /** 
         * 进入拖放区域 
         * */ 
        public static function dragEnterHandler(event:DragEvent):void 
        {  
            // 进入区域, 设置状态为允许拖放  
            if (event.dragSource.hasFormat("img"))  
                DragManager.acceptDragDrop(event.target as UIComponent);  
        }  
        /** 
         * 释放拖拽 
         * */ 
        public static function dragDropHandler(event:DragEvent):void 
        {  
            var img:Image = event.dragSource.dataForFormat("img") as Image;  
            // 处理图片放置位置  
            img.x = event.currentTarget.mouseX - (event.dragSource.dataForFormat("x") as Number);  
            img.y = event.currentTarget.mouseY - (event.dragSource.dataForFormat("y") as Number);  
        }  
        /** 
         * 获取图片信息 
         * */ 
        private static function getBitmapData(target:DisplayObject):BitmapData  
        {  
            var res:BitmapData = new BitmapData(target.width, target.height);  
            res.draw(target);  
            return res;  
        }
 }
}