Mouse move relative event for Flash and HTML5

This commit is contained in:
Christian Afonso Ferreira
2016-04-05 19:16:52 -03:00
committed by Joshua Granick
parent 6d0f726574
commit 629c14c9e6
2 changed files with 23 additions and 7 deletions

View File

@@ -25,6 +25,8 @@ import lime.ui.Window;
class FlashApplication {
private var cacheMouseX:Float;
private var cacheMouseY:Float;
private var cacheTime:Int;
private var currentTouches = new Map<Int, Touch> ();
private var mouseLeft:Bool;
@@ -38,6 +40,9 @@ class FlashApplication {
Lib.current.stage.frameRate = 60;
cacheMouseX = 0;
cacheMouseY = 0;
AudioManager.init ();
}
@@ -247,8 +252,15 @@ class FlashApplication {
}
parent.window.onMouseMove.dispatch (event.stageX, event.stageY);
var mouseX = event.stageX;
var mouseY = event.stageY;
parent.window.onMouseMove.dispatch (mouseX, y);
parent.window.onMouseMoveRelative.dispatch (mouseX - cacheMouseX, mouseY - cacheMouseY);
cacheMouseX = mouseX;
cacheMouseY = mouseY;
case "mouseUp", "middleMouseUp", "rightMouseUp":
parent.window.onMouseUp.dispatch (event.stageX, event.stageY, button);

View File

@@ -49,10 +49,10 @@ class HTML5Window {
public var stats:Dynamic;
#end
private var cacheMouseX:Float;
private var cacheMouseY:Float;
private var currentTouches = new Map<Int, Touch> ();
private var enableTextEvents:Bool;
private var lastMouseX:Float;
private var lastMouseY:Float;
private var parent:Window;
private var primaryTouch:Touch;
private var setHeight:Int;
@@ -70,6 +70,9 @@ class HTML5Window {
}
cacheMouseX = 0;
cacheMouseY = 0;
}
@@ -343,9 +346,10 @@ class HTML5Window {
case "mousemove":
if (x != lastMouseX || y != lastMouseY) {
if (x != cacheMouseX || y != cacheMouseY) {
parent.onMouseMove.dispatch (x, y);
parent.onMouseMoveRelative.dispatch (x - cacheMouseX, y - cacheMouseY);
}
@@ -353,8 +357,8 @@ class HTML5Window {
}
lastMouseX = x;
lastMouseY = y;
cacheMouseX = x;
cacheMouseY = y;
} else {