zoukankan      html  css  js  c++  java
  • as3 拖动限制 缩放放大对象

    var pre_y;
    var pre_x;
    var _stage=stage;
    /**
     * 图片 放大拖动事件 添加
     * @param	_isAdd
     */
    function addPicEvent(_isAdd: Boolean = true) {
    	if (_isAdd) {
    		moveTarget.addEventListener("mouseDown", dragHdl);
    		//moveTarget.addEventListener(MouseEvent.MOUSE_WHEEL, zoomHandler);
    	} else {
    		moveTarget.removeEventListener("mouseDown", dragHdl);
    		//moveTarget.removeEventListener(MouseEvent.MOUSE_WHEEL, zoomHandler);
    	}
    }
    
    
    function addPicUpEvent(_isAdd: Boolean) {
    	//trace("addPicUpEvent",_isAdd)
    	if (_stage) {
    		if (_isAdd) {
    			_stage.addEventListener("mouseUp", dragUpHdl);
    		} else {
    			_stage.removeEventListener("mouseUp", dragUpHdl);
    		}
    	}
    }
    function dragHdl(e) {
    	moveTarget.startDrag();
    	addPicUpEventEf(true);
    
    }
    
    
    
    
    function dragUpHdl(e=null) {
    	addPicUpEventEf(false);
    	moveTarget.stopDrag();
    }
    /**
     * 检查 图片边界  事件添加
     * @param	_isAdd
     */
    function addPicUpEventEf(_isAdd: Boolean) {
    	if (_isAdd) {
    		moveTarget.addEventListener("enterFrame", efHdl);
    	} else {
    		moveTarget.removeEventListener("enterFrame", efHdl);
    	}
    }
    
    /**
     * 检查 图片边界
     * @param	e
     */
    function efHdl(e) {
    	//trace(moveTarget.y ,( mask_mc.height - moveTarget.height),moveTarget.y <(mask_mc.height - moveTarget.height))
    	if (moveTarget.height > mask_mc.height) {
    		if (moveTarget.y < (mask_mc.height - moveTarget.height)) {
    			moveTarget.y = mask_mc.height - moveTarget.height;
    		} else if (moveTarget.y > 0) {
    			moveTarget.y = 0;
    		}
    	} else if (moveTarget.height < mask_mc.height) {
    		if (moveTarget.y + moveTarget.height > mask_mc.height) {
    			moveTarget.y = mask_mc.height - moveTarget.height;
    		} else if (moveTarget.y < 0) {
    			moveTarget.y = 0;
    		}
    	}
    
    	if (moveTarget.width > mask_mc.width) {
    		if (moveTarget.x < (mask_mc.width - moveTarget.width)) {
    			moveTarget.x = mask_mc.width - moveTarget.width;
    		} else if (moveTarget.x > 0) {
    			moveTarget.x = 0;
    		}
    	} else if (moveTarget.width < mask_mc.width) {
    		if (moveTarget.x + moveTarget.width > mask_mc.width) {
    			moveTarget.x = mask_mc.width - moveTarget.width;
    		} else if (moveTarget.x < 0) {
    			moveTarget.x = 0;
    		}
    	}
    
    	pre_x = moveTarget.x;
    	pre_y = moveTarget.y;
    
    }
    
    addPicEvent();
    
    addPicUpEvent(true);
    
    /*********************缩放*****************************/
    var zoom_y;
    var zoom_x;
    /**
     * 图片缩放
     * @param	e
     */
    function zoomHandler(e: MouseEvent) {
    	zoom_x = moveTarget.mouseX;
    	zoom_y = moveTarget.mouseY;
    	if (e.delta > 0) {
    		moveTarget.scaleX += 0.1;
    		moveTarget.scaleY += 0.1;
    	} else {
    		//trace(moveTarget.scaleY)
    		if (moveTarget.scaleY < 0.3) {
    			return;
    		}
    		moveTarget.scaleX -= 0.1;
    		moveTarget.scaleY -= 0.1;
    	}
    
    	moveTarget.x = moveTarget.parent.mouseX - zoom_x * (moveTarget.scaleX);
    	moveTarget.y = moveTarget.parent.mouseY - zoom_y * (moveTarget.scaleY);
    }
    

      

  • 相关阅读:
    LeetCode(35):Palindrome Number 分类: leetCode 2015-07-10 09:26 161人阅读 评论(0) 收藏
    在pycharm进行单元测试(unittest python)
    Django 基本操作
    Django中数据库操作相关的错误
    Question&&Answer
    ubuntu下 SVN 服务器搭建及使用
    python 在不同层级目录import 模块的方法
    Ubuntu 16.04安装PyCharm
    修改mysql中数据库存储主路径
    查看mysql的数据库物理存放位置
  • 原文地址:https://www.cnblogs.com/dt1991/p/14840932.html
Copyright © 2011-2022 走看看