2012-02-21 119 views
0

有没有什么方法可以检测鼠标滚轮是否被按下?我需要平移我的场景,同时按下中间按钮或鼠标滚轮(我认为按住鼠标滚轮与鼠标中键一样,但不起作用)。AS3 - MouseWheelDown监听器

谢谢!

回答

0

如何尝试这样的:

this.onEnterFrame = function() { 
if (ASnative(800, 2)(1)) { 
trace ("You have pressed or depressed the left mouse button"); 
} 
} 

此检测鼠标左...如果你替换参数(1)和(2)你的鼠标右键所以...

this.onEnterFrame = function() { 
if (ASnative(800, 2)(2)) { 
trace("You have pressed or depressed the right mouse button"); 
} 
} 

如果你把在(4)你的鼠标或经常滚轮按钮...

this.onEnterFrame = function() { 
if (ASnative(800, 2)(4)) { 
trace("You have pressed or depressed the middle mouse or wheel button"); 
} 
} 

来源:http://www.actionscript.org/forums/showthread.php3?t=68209

PS:我会建议不要使用鼠标中键或滚轮按钮,因为不是每个人都有一个鼠标中键。所以如果你仍然想要鼠标中键的可用性,请相应地调整你的功能,这样没有鼠标中键的人仍然可以平移画布。

编辑:

好的,我做了一个booboo!没有捕获它必须是AS 3.0。 AS 3.0中不再支持鼠标中键/点击按钮。 至少不是直接。

其中一种方法是使用JS来检测正在按下的鼠标按钮,然后将该变量作为字符串输入到Flash中。

如何检测JS鼠标点击: http://www.quirksmode.org/js/events_properties.html

如何把这个变量到Flash:(ExternalInterface的) http://learn.adobe.com/wiki/display/Flex/External+Interface

或者你也可以直接在AS 3.0做它通过一个黑客:(有限浏览器& OS支持) http://flashpunk.net/forums/index.php?topic=2549.0

DEMO:http://www.shinyhappypixels.com/punk-forums/clicky-hook/

+0

感谢。 我在Flash Builder中编程。 我需要包含一些平移视图的方法。第一个功能已经开始工作,那就是当您按住Shift键并按住鼠标左键并拖动时。但是我们有另一个软件,他们使用鼠标中键,所以我也想包括它。如果他们没有鼠标中键,他们可以使用移位拖动方法。=) – 2012-02-21 10:38:23

+0

不幸的是,这是AS1 – 2012-02-21 11:03:33

1

虽然我从来没有使用它,但只有在AIR应用程序中才有效的MIDDLE_CLICK事件。您的应用程序是否在浏览器或桌面上运行?

此外,只是我的2美分,它是如此该死的使用应用程序中的滚轮按钮不方便。每次我被迫在一些3D建模工具中这样做时,我想粉碎我的显示器。我只使用shift/alt/ctrl + mouse1/mouse2。

+0

谢谢,我试过MIDDLE_CLICK,但它没有在这里工作。猜猜我会留下它然后.. =)Shift + M1已经实现为泛。我只是想让用户有更多的选择:) – 2012-02-22 08:44:23

+0

好东西它只是2美分。希望你没有粉碎你的显示器。我都赞成使用鼠标中键(按下时)来放大3D。左:旋转,右:平移,中间:缩放。修改键可调整速度或限制某些方向。但那些是我的分。 – Bart 2015-09-15 08:52:30

0

这是可能的AS3,遇到了这个所以在这里,它是:

import flash.events.MouseEvent; 

function handleMouseWheel(event:MouseEvent):void { 

if ((event.delta > 0 && box_mc.y < 270) || (event.delta < 0 && box_mc.y > 0)) { 

box_mc.y = box_mc.y + (event.delta * 3); 

} 

} 

stage.addEventListener(MouseEvent.MOUSE_WHEEL, handleMouseWheel); 
+0

这个应该做什么? box_mc应该是什么?.......... – 2015-05-11 17:31:11

+0

box_mc是一个movieclip – joshua 2015-05-20 02:11:49