You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/01/11 21:55:47 UTC
[03/20] git commit: [flex-asjs] [refs/heads/mavenfolders] -
rename/restructure folders for maven
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/BrowserEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/BrowserEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/BrowserEvent.as
new file mode 100644
index 0000000..71b45c6
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/BrowserEvent.as
@@ -0,0 +1,475 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.flex.events
+{
+
+ COMPILE::JS {
+ import goog.events.BrowserEvent;
+ }
+
+ /**
+ * @fileoverview A patched, standardized event object for browser events.
+ *
+ * <pre>
+ * The patched event object contains the following members:
+ * - type {string} Event type, e.g. 'click'
+ * - timestamp {Date} A date object for when the event was fired
+ * - target {Object} The element that actually triggered the event
+ * - currentTarget {Object} The element the listener is attached to
+ * - relatedTarget {Object} For mouseover and mouseout, the previous object
+ * - offsetX {number} X-coordinate relative to target
+ * - offsetY {number} Y-coordinate relative to target
+ * - clientX {number} X-coordinate relative to viewport
+ * - clientY {number} Y-coordinate relative to viewport
+ * - screenX {number} X-coordinate relative to the edge of the screen
+ * - screenY {number} Y-coordinate relative to the edge of the screen
+ * - button {number} Mouse button. Use isButton() to test.
+ * - keyCode {number} Key-code
+ * - ctrlKey {boolean} Was ctrl key depressed
+ * - altKey {boolean} Was alt key depressed
+ * - shiftKey {boolean} Was shift key depressed
+ * - metaKey {boolean} Was meta key depressed
+ * - defaultPrevented {boolean} Whether the default action has been prevented
+ * - state {Object} History state object
+ *
+ * NOTE: The keyCode member contains the raw browser keyCode. For normalized
+ * key and character code use {@link goog.events.KeyHandler}.
+ * </pre>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ COMPILE::JS
+ public class BrowserEvent
+ {
+
+ //--------------------------------------
+ // Property
+ //--------------------------------------
+
+ /**
+ * @type {?goog.events.BrowserEvent}
+ */
+ public var wrappedEvent:Object;
+
+ //--------------------------------------
+ // Function
+ //--------------------------------------
+
+ /**
+ * Was altKey key depressed.
+ * @type {boolean}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get altKey():Boolean
+ {
+ return wrappedEvent.altKey;
+ }
+
+ /**
+ * Which mouse button was pressed.
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get button():uint
+ {
+ return wrappedEvent.button;
+ }
+
+ /**
+ * CharCode of key press.
+ * Native browser event.charCode || (type == 'keypress' ? event.keyCode : 0);
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get charCode():uint
+ {
+ return wrappedEvent.charCode;
+ }
+
+ /**
+ * X-coordinate relative to the window.
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get clientX():Number
+ {
+ return wrappedEvent.clientX;
+ }
+
+ /**
+ * Y-coordinate relative to the window.
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get clientY():Number
+ {
+ return wrappedEvent.clientY;
+ }
+
+ /**
+ * Was ctrl key depressed.
+ * @type {boolean}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get ctrlKey():Boolean
+ {
+ return wrappedEvent.ctrlKey;
+ }
+
+ /**
+ * The element the listener is attached to.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get currentTarget():Object
+ {
+ var o:Object = wrappedEvent.currentTarget;
+
+ if (o && o.flexjs_wrapper)
+ return o.flexjs_wrapper;
+ return o;
+ }
+
+ /**
+ * Whether the default action has been prevented.
+ * @type {boolean}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get defaultPrevented():Boolean
+ {
+ return wrappedEvent.defaultPrevented;
+ }
+
+ /**
+ * The underlying browser event object.
+ * (for debugging purposes)
+ *
+ * @return The underlying browser event object.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function getBrowserEvent():Object
+ {
+ return wrappedEvent.getBrowserEvent();
+ }
+
+ /**
+ * Tests to see which button was pressed during the event. This is really only
+ * useful in IE and Gecko browsers. And in IE, it's only useful for
+ * mousedown/mouseup events, because click only fires for the left mouse button.
+ *
+ * Safari 2 only reports the left button being clicked, and uses the value '1'
+ * instead of 0. Opera only reports a mousedown event for the middle button, and
+ * no mouse events for the right button. Opera has default behavior for left and
+ * middle click that can only be overridden via a configuration setting.
+ *
+ * There's a nice table of this mess at http://www.unixpapa.com/js/mouse.html.
+ *
+ * @param button The button to test for.
+ * @return True if button was pressed.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function isButton(button:int):Boolean
+ {
+ return wrappedEvent.isButton(button);
+ }
+
+ /**
+ * Whether this has an "action"-producing mouse button.
+ *
+ * By definition, this includes left-click on windows/linux, and left-click
+ * without the ctrl key on Macs.
+ *
+ * @return The result.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function isMouseActionButton():Boolean
+ {
+ return wrappedEvent.isMouseActionButton();
+ }
+
+ /**
+ * Keycode of key press.
+ * Native browser event.keyCode || 0;
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get keyCode():uint
+ {
+ return wrappedEvent.keyCode;
+ }
+
+ /**
+ * Whether the meta key was pressed at time of event.
+ * @type {boolean}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get metaKey():Boolean
+ {
+ return wrappedEvent.metaKey;
+ }
+
+ /**
+ * X-coordinate relative to target.
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get offsetX():Number
+ {
+ return wrappedEvent.offsetX;
+ }
+
+ /**
+ * Y-coordinate relative to target.
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get offsetY():Number
+ {
+ return wrappedEvent.offsetY;
+ }
+
+ /**
+ * Whether the default platform modifier key was pressed at time of event.
+ * (This is control for all platforms except Mac, where it's Meta.)
+ * @type {boolean}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get platformModifierKey():Boolean
+ {
+ return platformModifierKey;
+ }
+
+ /**
+ * Whether the default action has been prevented.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function preventDefault():void
+ {
+ wrappedEvent.preventDefault();
+ }
+
+ /**
+ * For mouseover and mouseout, the previous object.
+ * @type {object}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get relatedTarget():Object
+ {
+ var o:Object = wrappedEvent.relatedTarget;
+
+ if (o && o.flexjs_wrapper)
+ return o.flexjs_wrapper;
+ return o;
+ }
+
+ /**
+ * X-coordinate relative to the monitor.
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get screenX():Number
+ {
+ return wrappedEvent.screenX;
+ }
+
+ /**
+ * Y-coordinate relative to the monitor.
+ * @type {number}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get screenY():Number
+ {
+ return wrappedEvent.screenY;
+ }
+
+ /**
+ * Was shiftKey key depressed.
+ * @type {boolean}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get shiftKey():Boolean
+ {
+ return wrappedEvent.shiftKey;
+ }
+
+ /**
+ * History state object, only set for PopState events where it's a copy of the
+ * state object provided to pushState or replaceState.
+ * @type {Object}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get state():Object
+ {
+ return wrappedEvent.state;
+ }
+
+ /**
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function stopImmediatePropagation():void
+ {
+ //wrappedEvent.stopImmediatePropagation(); // not in goog.events.BrowserEvent
+ wrappedEvent.stopPropagation();
+ }
+
+ /**
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function stopPropagation():void
+ {
+ wrappedEvent.stopPropagation();
+ }
+
+ /**
+ * The element that actually triggered the event.
+ * @type {object}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get target():Object
+ {
+ var o:Object = wrappedEvent.target;
+
+ if (o && o.flexjs_wrapper)
+ return o.flexjs_wrapper;
+ return o;
+ }
+
+ /**
+ * A date object for when the event was fired.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get timestamp():Date
+ {
+ return wrappedEvent.timestamp;
+ }
+
+ /**
+ * Event type, e.g. 'click'.
+ * @type {string}
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get type():String
+ {
+ return wrappedEvent.type;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as
new file mode 100644
index 0000000..a7921df
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+
+ /**
+ * MXML auto-imports flash.events.Event which then requires
+ * full qualification to use org.apache.flex.events.Event.
+ * Use CustomEvent to skip all that extra typing.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class CustomEvent extends Event
+ {
+
+ //--------------------------------------
+ // Constructor
+ //--------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param type The name of the event.
+ * @param bubbles Whether the event bubbles.
+ * @param cancelable Whether the event can be canceled.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function CustomEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+ {
+ COMPILE::AS3
+ {
+ super(type, bubbles, cancelable);
+ }
+ COMPILE::JS
+ {
+ super(type);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ElementEvents.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ElementEvents.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ElementEvents.as
new file mode 100644
index 0000000..e79762a
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ElementEvents.as
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+
+ [ExcludeClass]
+ COMPILE::AS3
+ public class ElementEvents
+ {
+ }
+
+ COMPILE::JS
+ public class ElementEvents
+ {
+
+ //--------------------------------------
+ // Static Property
+ //--------------------------------------
+
+ static public const elementEvents:Object = {
+ 'click': 1,
+ 'change': 1,
+ 'keyup': 1,
+ 'keydown': 1,
+ 'load': 1,
+ 'mouseover': 1,
+ 'mouseout': 1,
+ 'mouseup': 1,
+ 'mousedown': 1,
+ 'mousemove': 1,
+ 'rollover': 1,
+ 'rollout': 1
+ };
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
new file mode 100644
index 0000000..765db3d
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
@@ -0,0 +1,128 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+ COMPILE::AS3 {
+ import flash.events.Event;
+ }
+
+ COMPILE::JS {
+ import goog.events.Event;
+ }
+
+ /**
+ * This class simply wraps flash.events.Event so that
+ * no flash packages are needed on the JS side.
+ * At runtime, this class is not always the event object
+ * that is dispatched. In most cases we are dispatching
+ * DOMEvents instead, so as long as you don't actually
+ * check the typeof(event) it will work
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ COMPILE::AS3
+ public class Event extends flash.events.Event
+ {
+
+ //--------------------------------------
+ // Static Property
+ //--------------------------------------
+
+ static public const CHANGE:String = "change";
+
+ //--------------------------------------
+ // Constructor
+ //--------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param type The name of the event.
+ * @param bubbles Whether the event bubbles.
+ * @param cancelable Whether the event can be canceled.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
+ {
+ super(type, bubbles, cancelable);
+ }
+
+ //--------------------------------------
+ // Property
+ //--------------------------------------
+
+ //--------------------------------------
+ // Function
+ //--------------------------------------
+
+ /**
+ * @private
+ */
+ public override function clone():flash.events.Event
+ {
+ return cloneEvent();
+ }
+
+ /**
+ * Create a copy/clone of the Event object.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function cloneEvent():org.apache.flex.events.Event
+ {
+ return new org.apache.flex.events.Event(type, bubbles, cancelable);
+ }
+ }
+
+ COMPILE::JS
+ public class Event extends goog.events.Event {
+
+ public static const CHANGE:String = "change";
+
+ public function Event(type:String, target:Object = null) {
+ super(type, target);
+ }
+
+ public function init(type:String):void {
+ this.type = type;
+ }
+
+ /**
+ * Google Closure doesn't seem to support stopImmediatePropagation, but
+ * actually the HTMLElementWrapper fireListener override sends a
+ * BrowserEvent in most/all cases where folks need stopImmediatePropagation
+ * so we put this in here for compile time since it will exist in
+ * the BrowserEvent that does get sent around.
+ */
+ public function stopImmediatePropagation():void
+ {
+ // do nothing
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
new file mode 100644
index 0000000..ceec8ee
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+ COMPILE::JS
+ {
+ import goog.events;
+ import goog.events.EventTarget;
+ }
+
+ COMPILE::AS3
+ {
+ import flash.events.EventDispatcher;
+ }
+
+ /**
+ * This class simply wraps flash.events.EventDispatcher so that
+ * no flash packages are needed on the JS side.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ COMPILE::AS3
+ public class EventDispatcher extends flash.events.EventDispatcher implements IEventDispatcher
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function EventDispatcher()
+ {
+ super();
+ }
+ }
+
+ COMPILE::JS
+ public class EventDispatcher extends goog.events.EventTarget implements IEventDispatcher
+ {
+ public function hasEventListener(type:String):Boolean
+ {
+ return goog.events.hasListener(this, type);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as
new file mode 100644
index 0000000..6d8c684
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as
@@ -0,0 +1,49 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+ COMPILE::AS3
+ {
+ import flash.events.IEventDispatcher;
+ }
+
+ /**
+ * This class simply wraps flash.events.EventDispatcher so that
+ * no flash packages are needed on the JS side.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ COMPILE::AS3
+ public interface IEventDispatcher extends flash.events.IEventDispatcher
+ {
+
+ }
+
+ COMPILE::JS
+ public interface IEventDispatcher
+ {
+ function addEventListener(type:String, handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object = null):void;
+ function removeEventListener(type:String, handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object = null):void;
+ //function hasEventListener(type:String):Boolean;
+ function dispatchEvent(event:Object):Boolean;
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/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
new file mode 100644
index 0000000..756438f
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
@@ -0,0 +1,290 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+ COMPILE::AS3
+ {
+ import flash.events.MouseEvent;
+ }
+ COMPILE::JS
+ {
+ import window.MouseEvent;
+ }
+
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.geom.Point;
+ import org.apache.flex.utils.PointUtils;
+
+
+ /**
+ * Mouse events
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class MouseEvent extends Event
+ {
+ private static function platformConstant(s:String):String
+ {
+ COMPILE::AS3
+ {
+ return s;
+ }
+ COMPILE::JS
+ {
+ return s.toLowerCase();
+ }
+ }
+
+ public static const MOUSE_DOWN:String = platformConstant("mouseDown");
+ public static const MOUSE_MOVE:String = platformConstant("mouseMove");
+ public static const MOUSE_UP:String = platformConstant("mouseUp");
+ public static const MOUSE_OUT:String = platformConstant("mouseOut");
+ public static const MOUSE_OVER:String = platformConstant("mouseOver");
+ public static const ROLL_OVER:String = platformConstant("rollOver");
+ public static const ROLL_OUT:String = platformConstant("rollOut");
+ public static const CLICK:String = "click";
+
+ /**
+ * Constructor.
+ *
+ * @param type The name of the event.
+ * @param bubbles Whether the event bubbles.
+ * @param cancelable Whether the event can be canceled.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function MouseEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,
+ localX:Number = NaN, localY:Number = NaN,
+ relatedObject:Object = null,
+ ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false,
+ buttonDown:Boolean = false, delta:int = 0,
+ commandKey:Boolean = false, controlKey:Boolean = false,
+ clickCount:int = 0)
+ {
+ COMPILE::AS3
+ {
+ super(type, bubbles, cancelable);
+ }
+ COMPILE::JS
+ {
+ super(type);
+ }
+ this.localX = localX;
+ this.localY = localY;
+ this.relatedObject = relatedObject;
+ this.ctrlKey = ctrlKey;
+ this.altKey = altKey;
+ this.shiftKey = shiftKey;
+ this.buttonDown = buttonDown;
+ this.delta = delta;
+ this.commandKey = commandKey;
+ this.controlKey = controlKey;
+ this.clickCount = clickCount;
+ }
+
+ private var _localX:Number;
+ public function get localX():Number
+ {
+ return _localX;
+ }
+ public function set localX(value:Number):void
+ {
+ _localX = value;
+ _stagePoint = null;
+ }
+
+ private var _localY:Number;
+ public function get localY():Number
+ {
+ return _localY;
+ }
+ public function set localY(value:Number):void
+ {
+ _localY = value;
+ _stagePoint = null;
+ }
+
+ public var relatedObject:Object;
+ public var ctrlKey:Boolean;
+ public var altKey:Boolean;
+ public var shiftKey:Boolean;
+ public var buttonDown:Boolean;
+ public var delta:int;
+ public var commandKey:Boolean;
+ public var controlKey:Boolean;
+ public var clickCount:int;
+
+ // these map directly to JS MouseEvent fields.
+ public function get clientX():Number
+ {
+ return screenX;
+ }
+ public function set clientX(value:Number):void
+ {
+ localX = value;
+ }
+ public function get clientY():Number
+ {
+ return screenY;
+ }
+ public function set clientY(value:Number):void
+ {
+ localY = value;
+ }
+
+ private var _stagePoint:Point;
+
+ public function get screenX():Number
+ {
+ if (!target) return localX;
+ if (!_stagePoint)
+ {
+ var localPoint:Point = new Point(localX, localY);
+ _stagePoint = PointUtils.localToGlobal(localPoint, target);
+ }
+ return _stagePoint.x;
+ }
+
+ public function get screenY():Number
+ {
+ if (!target) return localY;
+ if (!_stagePoint)
+ {
+ var localPoint:Point = new Point(localX, localY);
+ _stagePoint = PointUtils.localToGlobal(localPoint, target);
+ }
+ return _stagePoint.y;
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::JS
+ private static function installRollOverMixin():Boolean
+ {
+ window.addEventListener(MOUSE_OVER,
+ mouseOverHandler, false);
+ return true;
+ }
+
+
+ /**
+ * @param e The event.
+ * RollOver/RollOut is entirely implemented in mouseOver because
+ * when a parent and child share an edge, you only get a mouseout
+ * for the child and not the parent and you need to send rollout
+ * to both. A similar issue exists for rollover.
+ */
+ COMPILE::JS
+ private static function mouseOverHandler(e:MouseEvent):void
+ {
+ var j:int;
+ var m:int;
+ var outs:Array;
+ var me:window.MouseEvent;
+ var parent:Object;
+ var target:Object = e.target.flexjs_wrapper;
+ if (target == null)
+ return; // probably over the html tag
+ var targets:Array = MouseEvent.targets;
+ var index:int = targets.indexOf(target);
+ if (index != -1) {
+ // get all children
+ outs = targets.slice(index + 1);
+ m = outs.length;
+ for (j = 0; j < m; j++) {
+ me = makeMouseEvent(
+ ROLL_OUT, e);
+ outs[j].element.dispatchEvent(me);
+ }
+ MouseEvent.targets = targets.slice(0, index + 1);
+ }
+ else {
+ var newTargets:Array = [target];
+ if (!('parent' in target))
+ parent = null;
+ else
+ parent = target.parent;
+ while (parent) {
+ index = targets.indexOf(parent);
+ if (index == -1) {
+ newTargets.unshift(parent);
+ if (!('parent' in parent))
+ break;
+ parent = parent.parent;
+ }
+ else {
+ outs = targets.slice(index + 1);
+ m = outs.length;
+ for (j = 0; j < m; j++) {
+ me = makeMouseEvent(
+ ROLL_OUT, e);
+ outs[j].element.dispatchEvent(me);
+ }
+ targets = targets.slice(0, index + 1);
+ break;
+ }
+ }
+ var n:int = newTargets.length;
+ for (var i:int = 0; i < n; i++) {
+ me = makeMouseEvent(
+ ROLL_OVER, e);
+ newTargets[i].element.dispatchEvent(me);
+ }
+ MouseEvent.targets = targets.concat(newTargets);
+ }
+ }
+
+
+ /**
+ */
+ COMPILE::JS
+ private static var rollOverMixin:Boolean =
+ installRollOverMixin();
+
+
+ /**
+ */
+ COMPILE::JS
+ private static var targets:Array = [];
+
+ /**
+ * @param {string} type The event type.
+ * @param {Event} e The mouse event.
+ * @return {MouseEvent} The new event.
+ */
+ COMPILE::JS
+ private static function makeMouseEvent(type:String, e:window.MouseEvent):window.MouseEvent
+ {
+ var out:window.MouseEvent = new window.MouseEvent(type);
+ out.initMouseEvent(type, false, false,
+ e.view, e.detail, e.screenX, e.screenY,
+ e.clientX, e.clientY, e.ctrlKey, e.altKey,
+ e.shiftKey, e.metaKey, e.button, e.relatedTarget);
+ return out;
+ };
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as
new file mode 100644
index 0000000..45fabbd
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as
@@ -0,0 +1,129 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+
+ /**
+ * The ValueChangeEvent class replaces the PropertyChangeEvent as
+ * the default event for property changes used in the databinding
+ * subsystem.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ValueChangeEvent extends Event
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ValueChangeEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,
+ oldValue:Object = null, newValue:Object = null)
+ {
+ COMPILE::AS3
+ {
+ super(type, bubbles, cancelable);
+ }
+ COMPILE::JS
+ {
+ super(type);
+ }
+ this.oldValue = oldValue;
+ this.newValue = newValue;
+ }
+
+ /**
+ * The value of the property before it was changed.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var oldValue:Object;
+
+ /**
+ * The value of the property after it was changed.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var newValue:Object;
+
+ /**
+ * The name of the property.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var propertyName:String;
+
+ /**
+ * The object that owns the property.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var source:Object;
+
+ /**
+ * The default event type.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static const VALUE_CHANGE:String = "valueChange";
+
+ /**
+ * A convenience method to create an instance of the ValueChangeEvent.
+ *
+ * @param source The source of the object.
+ * @param name The name of the event.
+ * @param oldValue The value before it was changed.
+ * @param newValue The value after it was changed.
+ * @return An instance of the ValueChangeEvent.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static function createUpdateEvent(source:Object, name:String, oldValue:Object, newValue:Object):ValueChangeEvent
+ {
+ var event:ValueChangeEvent = new ValueChangeEvent(VALUE_CHANGE, false, false, oldValue, newValue);
+ event.propertyName = name;
+ event.source = source;
+ return event;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as
new file mode 100644
index 0000000..6088680
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as
@@ -0,0 +1,68 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events
+{
+
+ /**
+ * The ValueEvent class is used for dispatching an event
+ * that has one useful value
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ValueEvent extends Event
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ValueEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,
+ value:Object = null)
+ {
+ COMPILE::AS3
+ {
+ super(type, bubbles, cancelable);
+ }
+
+ COMPILE::JS
+ {
+ super(type);
+ }
+
+ this.value = value;
+ }
+
+ /**
+ * The value.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public var value:Object;
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseEventConverter.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseEventConverter.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseEventConverter.as
new file mode 100644
index 0000000..a969a44
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseEventConverter.as
@@ -0,0 +1,166 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events.utils
+{
+ import flash.events.Event;
+ import flash.events.IEventDispatcher;
+ import flash.events.MouseEvent;
+
+ import org.apache.flex.events.MouseEvent;
+
+ /**
+ * Mouse events conversion.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ COMPILE::AS3
+ public class MouseEventConverter
+ {
+ /**
+ * A map of events that are not converted, because there is no
+ * JS equivalent.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static const UNCONVERTED_EVENTS:Object = { mouseWheel: 1 };
+
+ /**
+ * A method used to copy properties from flash.events.MouseEvent to
+ * org.apache.flex.events.Event. The set of properties can be
+ * different based on platform and runtime.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static var convert:Function = flashConvert;
+
+ private static function flashConvert(event:flash.events.MouseEvent):org.apache.flex.events.MouseEvent
+ {
+ if (UNCONVERTED_EVENTS[event.type])
+ return null;
+
+ var newEvent:org.apache.flex.events.MouseEvent =
+ new org.apache.flex.events.MouseEvent(event.type, event.bubbles, event.cancelable,
+ event.localX, event.localY, event.relatedObject,
+ event.ctrlKey, event.altKey, event.shiftKey,
+ event.buttonDown, event.delta);
+
+ return newEvent;
+ }
+
+ private static function mouseEventConverter(event:flash.events.Event):void
+ {
+ if (event is flash.events.MouseEvent && (!(event is org.apache.flex.events.MouseEvent)))
+ {
+ var newEvent:org.apache.flex.events.MouseEvent =
+ convert(flash.events.MouseEvent(event));
+ if (newEvent)
+ {
+ // some events are not converted if there are no JS equivalents
+ event.stopImmediatePropagation();
+ event.target.dispatchEvent(newEvent);
+ }
+ else
+ trace("did not convert", event.type);
+ }
+ }
+
+ /**
+ * The list of events to convert.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static var allConvertedEvents:Array = [
+ flash.events.MouseEvent.CLICK,
+ flash.events.MouseEvent.MOUSE_DOWN,
+ flash.events.MouseEvent.MOUSE_UP,
+ flash.events.MouseEvent.ROLL_OVER,
+ flash.events.MouseEvent.ROLL_OUT,
+ flash.events.MouseEvent.MOUSE_OVER,
+ flash.events.MouseEvent.MOUSE_OUT,
+ flash.events.MouseEvent.MOUSE_MOVE
+ ];
+
+ /**
+ * The list of events to convert on each instance.
+ * Per-instance killers are needed for "out" events because
+ * they can be sent after the instance is removed from the
+ * display list so the main converter can't intercept them
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static var perInstanceConvertedEvents:Array = [
+ flash.events.MouseEvent.MOUSE_UP,
+ flash.events.MouseEvent.ROLL_OUT,
+ flash.events.MouseEvent.MOUSE_OUT
+ ];
+
+ /**
+ * The event handler that converts the events.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static var eventHandler:Function = mouseEventConverter;
+
+ /**
+ * Set up the top level converter.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static function setupAllConverters(target:IEventDispatcher):void
+ {
+ for each (var eventType:String in allConvertedEvents)
+ target.addEventListener(eventType, eventHandler, true, 9999);
+ }
+
+ /**
+ * Set up some event handlers on each instance.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static function setupInstanceConverters(target:IEventDispatcher):void
+ {
+ for each (var eventType:String in perInstanceConvertedEvents)
+ target.addEventListener(eventType, eventHandler, false, 9999);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseUtils.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseUtils.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseUtils.as
new file mode 100644
index 0000000..5dbc934
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/utils/MouseUtils.as
@@ -0,0 +1,103 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.events.utils
+{
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.MouseEvent;
+
+ /**
+ * This class maps common event functions for MouseEvent
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class MouseUtils
+ {
+ public function MouseUtils()
+ {
+ }
+
+ /**
+ * Returns the event target.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ static public function eventTarget(event:Event):Object
+ {
+ return event.target;
+ }
+
+ /**
+ * Returns the localX value.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ static public function localX(event:MouseEvent):Number
+ {
+ return event.localX;
+ }
+
+ /**
+ * Returns the localY value.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ static public function localY(event:MouseEvent):Number
+ {
+ return event.localY;
+ }
+
+ /**
+ * Returns the globel X value.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ static public function globalX(event:MouseEvent):Number
+ {
+ return event.screenX;
+ }
+
+ /**
+ * Returns the global Y value.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ static public function globalY(event:MouseEvent):Number
+ {
+ return event.screenY;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Point.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Point.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Point.as
new file mode 100644
index 0000000..46d4464
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Point.as
@@ -0,0 +1,72 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.geom
+{
+COMPILE::AS3
+{
+ import flash.geom.Point;
+}
+
+/**
+ * The Point class is a utility class for holding x and y values, not that you
+ * can't use it to hold a width and height value.
+ *
+ * The ActionScript version simply wraps flash.geom.Point to enable cross
+ * compilation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+COMPILE::AS3
+public class Point extends flash.geom.Point
+{
+ public function Point(x:Number = 0, y:Number = 0)
+ {
+ super(x, y);
+ }
+}
+
+/**
+ * The Point class is a utility class for holding x and y values, not that you
+ * can't use it to hold a width and height value.
+ *
+ * The ActionScript version simply wraps flash.geom.Point to enable cross
+ * compilation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+COMPILE::JS
+public class Point
+{
+ public function Point(x:Number = 0, y:Number = 0)
+ {
+ this.x = x;
+ this.y = y;
+ }
+
+ public var x:Number;
+ public var y:Number;
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
new file mode 100644
index 0000000..a68c080
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
@@ -0,0 +1,95 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.geom
+{
+COMPILE::AS3
+{
+ import flash.geom.Rectangle;
+}
+
+/**
+ * The Rectangle class is a utility class for holding four coordinates of
+ * a rectangle
+ *
+ * The ActionScript version simply wraps flash.geom.Rectangle to enable cross
+ * compilation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+COMPILE::AS3
+public class Rectangle extends flash.geom.Rectangle
+{
+ public function Rectangle(x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0)
+ {
+ super(x, y, width, height);
+ }
+}
+
+/**
+ * The Rectangle class is a utility class for holding four coordinates of
+ * a rectangle
+ *
+ * The ActionScript version simply wraps flash.geom.Rectangle to enable cross
+ * compilation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+COMPILE::JS
+public class Rectangle
+{
+ public function Rectangle(x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0)
+ {
+ left = x;
+ top = y;
+ this.width = width;
+ this.height = height;
+ }
+
+ public var left:Number;
+ public var top:Number;
+ public var width:Number;
+ public var height:Number;
+
+ public function get right():Number
+ {
+ return left + width;
+ }
+ public function set right(value:Number):void
+ {
+ width = value - left;
+ }
+
+ public function get bottom():Number
+ {
+ return top + height;
+ }
+ public function set bottom(value:Number):void
+ {
+ height = value - top;
+ }
+}
+
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Size.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Size.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Size.as
new file mode 100644
index 0000000..4c02934
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Size.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.geom
+{
+
+/**
+ * The Size class is a utility class for holding width and height values.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public class Size
+{
+ public function Size(width:Number = 0, height:Number = 0)
+ {
+ this.width = width;
+ this.height = height;
+ }
+
+ public var width:Number;
+ public var height:Number;
+}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/states/AddItems.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/states/AddItems.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/AddItems.as
new file mode 100644
index 0000000..7f780fa
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/AddItems.as
@@ -0,0 +1,101 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// shim the mx classes for states. Be careful about updates to the main SDK's
+// version as that will move the timestamp ahead of this one and then it will
+// take precedence over this one at link time.
+package org.apache.flex.states
+{
+ import org.apache.flex.core.IDocument;
+
+ [ExcludeClass]
+
+ /**
+ * The AddItems class is one of the classes in the
+ * view states subsystem. Note that the FlexJS
+ * versions are simply data structures interpreted
+ * by a central States implementation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class AddItems implements IDocument
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function AddItems()
+ {
+ super();
+ }
+
+ public var items:Array;
+
+ public var itemsDescriptorIndex:int;
+
+ public var itemsDescriptor:ItemAndDescriptor;
+
+ public var destination:String;
+
+ public var propertyName:String;
+
+ public var position:String;
+
+ public var relativeTo:String;
+
+ public var document:Object;
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ var data:Object = document.mxmlsd[itemsDescriptorIndex];
+ if (data is Array)
+ {
+ itemsDescriptor = new ItemAndDescriptor();
+ itemsDescriptor.descriptor = data as Array;
+ // replace the entry in the document so subsequent
+ // addItems know it is shared
+ document.mxmlsd[itemsDescriptorIndex] = itemsDescriptor;
+ }
+ else
+ itemsDescriptor = data as ItemAndDescriptor;
+ }
+
+ /**
+ * @private
+ * Initialize this object from a descriptor.
+ */
+ public function initializeFromObject(properties:Object):Object
+ {
+ for (var p:String in properties)
+ {
+ this[p] = properties[p];
+ }
+
+ return Object(this);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/states/ItemAndDescriptor.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/states/ItemAndDescriptor.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/ItemAndDescriptor.as
new file mode 100644
index 0000000..308c86e
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/ItemAndDescriptor.as
@@ -0,0 +1,70 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package org.apache.flex.states
+{
+
+ [ExcludeClass]
+
+ /**
+ * A data structure to store an instance
+ * and its descriptor array.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ItemAndDescriptor
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function ItemAndDescriptor()
+ {
+ super();
+ }
+
+ /**
+ * The item or items created from the descriptor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var items:Object;
+
+ /**
+ * The descriptor used to create the item(s).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var descriptor:Array;
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetEventHandler.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetEventHandler.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetEventHandler.as
new file mode 100644
index 0000000..f3b9ae1
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetEventHandler.as
@@ -0,0 +1,79 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+// shim the mx classes for states
+package org.apache.flex.states
+{
+ import org.apache.flex.core.IDocument;
+
+ [ExcludeClass]
+
+ /**
+ * The SetEventHandler class is one of the classes in the
+ * view states subsystem. Note that the FlexJS
+ * versions are simply data structures interpreted
+ * by a central States implementation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class SetEventHandler implements IDocument
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function SetEventHandler()
+ {
+ super();
+ }
+
+ public var target:String;
+
+ public var name:String;
+
+ public var handlerFunction:Function;
+
+ public var document:Object;
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ }
+
+ /**
+ * @private
+ * Initialize this object from a descriptor.
+ */
+ public function initializeFromObject(properties:Object):Object
+ {
+ for (var p:String in properties)
+ {
+ this[p] = properties[p];
+ }
+
+ return Object(this);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetProperty.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetProperty.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetProperty.as
new file mode 100644
index 0000000..b6c2e1a
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/SetProperty.as
@@ -0,0 +1,81 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+// shim the mx classes for states
+package org.apache.flex.states
+{
+ import org.apache.flex.core.IDocument;
+
+ [ExcludeClass]
+
+ /**
+ * The SetProperty class is one of the classes in the
+ * view states subsystem. Note that the FlexJS
+ * versions are simply data structures interpreted
+ * by a central States implementation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class SetProperty implements IDocument
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function SetProperty()
+ {
+ super();
+ }
+
+ public var target:String;
+
+ public var name:String;
+
+ public var value:*;
+
+ public var previousValue:*;
+
+ public var document:Object;
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ }
+
+ /**
+ * @private
+ * Initialize this object from a descriptor.
+ */
+ public function initializeFromObject(properties:Object):Object
+ {
+ for (var p:String in properties)
+ {
+ this[p] = properties[p];
+ }
+
+ return Object(this);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a903508e/frameworks/projects/Core/src/main/flex/org/apache/flex/states/State.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/states/State.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/State.as
new file mode 100644
index 0000000..271e837
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/states/State.as
@@ -0,0 +1,83 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// shim the mx classes for states
+package org.apache.flex.states
+{
+ /**
+ * The State class is one of the classes in the
+ * view states subsystem. It is used to declare a
+ * view state in an MXML document. This is one of the
+ * few classes in FlexJS that use the same name as
+ * a Flex SDK class because some of the IDEs and
+ * compilers are hard-coded to assume this name.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class State
+ {
+ /**
+ * Constructor.
+ *
+ * @param properties This parameter is not used in FlexJS and exists to make legacy compilers happy.
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function State(properties:Object = null)
+ {
+ super();
+ }
+
+ /**
+ * The name of the state.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var name:String;
+
+ /**
+ * Comma-delimited list of state groups of the state.
+ * It is not an array so don't use square brackets [].
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var stateGroups:String;
+
+ /**
+ * The array of overrides. This is normally set by the compiler.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var overrides:Array;
+ }
+}