Added delta, deltaX and deltaY for mouse wheel events Needs tests
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/0d9fe0cc Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/0d9fe0cc Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/0d9fe0cc Branch: refs/heads/develop Commit: 0d9fe0ccf79f14212d14f7ac59aa958894c45520 Parents: c166120 Author: Harbs <ha...@in-tools.com> Authored: Wed Jul 26 19:24:03 2017 +0300 Committer: Harbs <ha...@in-tools.com> Committed: Wed Jul 26 19:24:03 2017 +0300 ---------------------------------------------------------------------- .../org/apache/flex/events/KeyboardEvent.as | 9 +- .../flex/org/apache/flex/events/MouseEvent.as | 110 +++++++++++++++++-- 2 files changed, 111 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d9fe0cc/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as index 71b4dd1..b3992d4 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/KeyboardEvent.as @@ -43,10 +43,17 @@ package org.apache.flex.events COMPILE::JS private var wrappedEvent:Object; + /** + * @type {KeyboardEvent} + */ + COMPILE::JS + private var nativeEvent:Object; + COMPILE::JS public function wrapEvent(event:goog.events.BrowserEvent):void { wrappedEvent = event; + nativeEvent = event.getBrowserEvent(); } public function KeyboardEvent( @@ -194,7 +201,7 @@ package org.apache.flex.events if(wrappedEvent) { wrappedEvent.stopPropagation(); - wrappedEvent.getBrowserEvent().stopImmediatePropagation(); + nativeEvent.stopImmediatePropagation(); } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0d9fe0cc/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as index 14a3af7..d35ade7 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as @@ -151,7 +151,44 @@ package org.apache.flex.events { return cloneEvent() as flash.events.Event; } - + /** + * The horizontal scroll delta for wheel events + * In Flash this always returns 0. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.9 + */ + public function get deltaX():int + { + return 0; + } + /** + * Horizontal wheel events are not supported in Flash + */ + public function set deltaX(value:int):void + { + + } + + /** + * The vertical scroll delta for wheel events + * In Flash this just proxies to the delta + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.9 + */ + public function get deltaY():int + { + return delta + } + public function set deltaY(value:int):void + { + delta = value; + } /** * Create a copy/clone of the Event object. * @@ -261,10 +298,16 @@ package org.apache.flex.events * @type {?goog.events.BrowserEvent} */ private var wrappedEvent:Object; + + /** + * @type {MouseEvent} + */ + private var nativeEvent:Object; public function wrapEvent(event:goog.events.BrowserEvent):void { wrappedEvent = event; + nativeEvent = event.getBrowserEvent(); } public var relatedObject:Object; @@ -278,12 +321,11 @@ package org.apache.flex.events return _buttons == 1; if(!wrappedEvent) return false; - var ev:* = wrappedEvent.getBrowserEvent(); //Safari does not yet support buttons - if ('buttons' in ev) - _buttons = ev["buttons"]; + if ('buttons' in nativeEvent) + _buttons = nativeEvent["buttons"]; else - _buttons = ev["which"]; + _buttons = nativeEvent["which"]; return _buttons == 1; } public function set buttonDown(value:Boolean):void @@ -299,7 +341,61 @@ package org.apache.flex.events { _buttons = value; } - public var delta:int; + + private var _delta:int; + /** + * The vertical scroll delta for wheel events + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.9 + */ + public function get delta():int + { + return nativeEvent ? nativeEvent.deltaY : _delta; + } + public function set delta(value:int):void + { + _delta = value; + } + + private var _deltaX:int; + /** + * The horizontal scroll delta for wheel events + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.9 + */ + public function get deltaX():int + { + return nativeEvent ? nativeEvent.deltaX : _deltaX; + } + public function set deltaX(value:int):void + { + _deltaX = value; + } + + private var _deltaY:int; + /** + * The vertical scroll delta for wheel events + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.9 + */ + public function get deltaY():int + { + return nativeEvent ? nativeEvent.deltaY : _deltaY; + } + public function set deltaY(value:int):void + { + _deltaY = value; + } + public var commandKey:Boolean; public var controlKey:Boolean; public var clickCount:int; @@ -606,7 +702,7 @@ package org.apache.flex.events if(wrappedEvent) { wrappedEvent.stopPropagation(); - wrappedEvent.getBrowserEvent().stopImmediatePropagation(); + nativeEvent.stopImmediatePropagation(); } }