2012-02-21 138 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