From f021c4e070714e1dde2e9e5058142b19bcc47f24 Mon Sep 17 00:00:00 2001 From: Albul Date: Tue, 12 Jun 2012 11:10:24 +0400 Subject: [PATCH] Added events for FP 11.2: RIGHT_CLICK, RIGHT_MOUSE_DOWN, RIGHT_MOUSE_UP, MIDDLE_CLICK, MIDDLE_MOUSE_DOWN, MIDDLE_MOUSE_UP --- src/alternativa/engine3d/core/View.as | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/alternativa/engine3d/core/View.as b/src/alternativa/engine3d/core/View.as index 96748ad..bf35f39 100644 --- a/src/alternativa/engine3d/core/View.as +++ b/src/alternativa/engine3d/core/View.as @@ -295,6 +295,10 @@ package alternativa.engine3d.core { // Listeners addEventListener(MouseEvent.MOUSE_DOWN, onMouse); addEventListener(MouseEvent.CLICK, onMouse); + addEventListener(MouseEvent.RIGHT_MOUSE_DOWN, onMouse); + addEventListener(MouseEvent.RIGHT_CLICK, onMouse); + addEventListener(MouseEvent.MIDDLE_MOUSE_DOWN, onMouse); + addEventListener(MouseEvent.MIDDLE_CLICK, onMouse); addEventListener(MouseEvent.DOUBLE_CLICK, onMouse); addEventListener(MouseEvent.MOUSE_MOVE, onMouse); addEventListener(MouseEvent.MOUSE_OVER, onMouse); @@ -595,6 +599,42 @@ package alternativa.engine3d.core { } pressedTarget = null; break; + case "middleMouseDown": + defineTarget(index); + if (target != null) { + propagateEvent(MouseEvent3D.MIDDLE_MOUSE_DOWN, mouseEvent, camera, target, targetSurface, branchToVector(target, branch)); + } + pressedTarget = target; + break; + case "middleClick": + defineTarget(index); + if (target != null) { + propagateEvent(MouseEvent3D.MIDDLE_MOUSE_UP, mouseEvent, camera, target, targetSurface, branchToVector(target, branch)); + if (pressedTarget == target) { + clickedTarget = target; + propagateEvent(MouseEvent3D.MIDDLE_CLICK, mouseEvent, camera, target, targetSurface, branchToVector(target, branch)); + } + } + pressedTarget = null; + break; + case "rightMouseDown": + defineTarget(index); + if (target != null) { + propagateEvent(MouseEvent3D.RIGHT_MOUSE_DOWN, mouseEvent, camera, target, targetSurface, branchToVector(target, branch)); + } + pressedTarget = target; + break; + case "rightClick": + defineTarget(index); + if (target != null) { + propagateEvent(MouseEvent3D.RIGHT_MOUSE_UP, mouseEvent, camera, target, targetSurface, branchToVector(target, branch)); + if (pressedTarget == target) { + clickedTarget = target; + propagateEvent(MouseEvent3D.RIGHT_CLICK, mouseEvent, camera, target, targetSurface, branchToVector(target, branch)); + } + } + pressedTarget = null; + break; case "doubleClick": defineTarget(index); if (target != null) {