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);
    }
    

      

  • 相关阅读:
    Kaldi的data目录解析
    Kaldi的nnet3
    Kaldi中的Chain模型
    Karel版本的nnet1
    Dan版本的nnet2
    MFCC/Filter Bank的提取流程
    【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结
    App 设计技巧
    js判断是否在微信浏览器中打开
    WebApi 跨域
  • 原文地址:https://www.cnblogs.com/dt1991/p/14840932.html
Copyright © 2011-2022 走看看