动作脚本鼠标滚动/鼠标拖动
Posted
技术标签:
【中文标题】动作脚本鼠标滚动/鼠标拖动【英文标题】:Actionscript MouseScroll / MouseDrag 【发布时间】:2015-10-10 12:53:57 【问题描述】:Actionscript 中是否存在“MouseScroll”或“MouseDrag”事件,我无法正确找到某些内容。 我有这个:
resultPumpVolCalcBoxQv.addEventListener(MouseEvent.CLICK, getPumpVolumenQv);
resultPumpVolCalcBoxQn.addEventListener(MouseEvent.CLICK, getPumpVolumenn);
resultPumpVolCalcBoxQvng.addEventListener(MouseEvent.CLICK, getPumpVolumenng);
function getPumpVolumenQv(e:MouseEvent):void
pumpeVolQv = Number(pumpeVolumenstromTextFieldqv.text);
pumpeVolN = Number(pumpeVolumenstromTextFieldn.text);
pumpeVolNg = Number(pumpeVolumenstromTextFieldng.text);
if(pumpeVolumenstromTextFieldng.text != null && pumpeVolumenstromTextFieldn.text != null)
totalqv = (pumpeVolNg * pumpeVolN)/1000
pumpeVolumenstromTextFieldqv.text = " " + totalqv;
else
//
目前这适用于点击事件。 如果我拖动滚动条之类的东西,我想进行此计算。
【问题讨论】:
【参考方案1】:您必须结合使用 MouseDown 和 MouseOut 来创建拖动结果
obj.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
obj.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
function mouseDown($e:MouseEvent):void
MovieClip($e.currentTarget).startDrag();
function mouseUp($e:MouseEvent):void
MovieClip($.currentTarget).stopDrag();
如果您希望它限制在 X 或 Y 位置,请在 startDrag() 函数中添加一个矩形框参数
【讨论】:
【参考方案2】:您必须使用鼠标向上和鼠标向下事件来实现这一点。但是,请注意在不需要时添加然后删除事件侦听器。这样,您将确保事件侦听器被正确删除并且不会多次添加而导致内存问题。
private var yourObject:MovieClip;
private function addDragListeners():void
yourObject.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown, false, 0, true);
yourObject.addEventListener(MouseEvent.MOUSE_DOWN, onMouseUp, false, 0, true);
private function removeDragListeners():void
yourObject.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
yourObject.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseUp);
protected function onMouseDown(e:MouseEvent):void
yourObject.startDrag();
protected function onMouseUp(e:MouseEvent):void
yourObject.stopDrag();
您可以查看 startDrag() 方法,以防您需要为拖动添加一些边界。
【讨论】:
以上是关于动作脚本鼠标滚动/鼠标拖动的主要内容,如果未能解决你的问题,请参考以下文章