Properly parsed auto gamepad info into instances, and used it to map values

--- com/zehfernando/input/binding/KeyActionBinder.as
+++ com/zehfernando/input/binding/KeyActionBinder.as
@@ -5,6 +5,7 @@
 	import flash.events.Event;
 	import flash.events.GameInputEvent;
 	import flash.events.KeyboardEvent;
+	import flash.system.Capabilities;
 	import flash.ui.GameInput;
 	import flash.ui.GameInputControl;
 	import flash.ui.GameInputDevice;
@@ -39,6 +40,9 @@
 		// Constants
 		public static const VERSION:String = "1.0.0";

+		// List of all auto-configurable gamepads
+		private static var knownGamepadPlatforms:Vector.<AutoPlatformInfo>;
+
 		private static var stage:Stage;

 		// Properties
@@ -54,11 +58,15 @@
 		private var _onSensitiveActionChanged:SimpleSignal;				// Receives: action:String, value:Number (0-1)

 		private var gameInputDevices:Vector.<GameInputDevice>;
+		private var gameInputDeviceDefinitions:Vector.<AutoGamepadInfo>;

 		private static var gameInput:GameInput;

 		private var ii:int;												// Internal i, for speed
 		private var it:int;												// Internal t, for speed
+
+		// Properties to avoid allocations
+		private var mi:Number;											// Used in map()

 		// ================================================================================================================
 		// STATIC CONSTRUCTOR ---------------------------------------------------------------------------------------------
@@ -259,6 +267,62 @@
 					}
 				}
 			};
+
+			// Parse the platformObj into a proper AutoPlatformInfo list
+
+			knownGamepadPlatforms = new Vector.<AutoPlatformInfo>();
+
+			var platformInfo:AutoPlatformInfo, gamepadInfo:AutoGamepadInfo, controlInfo:AutoGamepadControlInfo;
+			var iis:String, jjs:String, kks:String;
+			var platformObj:Object, gamepadObj:Object, controlObj:Object;
+			var manufacturerFilter:String, osFilter:String, versionFilter:String;
+
+			for (iis in platformsObj) {
+				platformObj = platformsObj[iis];
+
+				manufacturerFilter	= platformObj["filters"]["manufacturer"];
+				osFilter			= platformObj["filters"]["os"];
+				versionFilter		= platformObj["filters"]["version"];
+
+				// Only keep items in memory if the version passes the filters
+				if ((manufacturerFilter == null	|| Capabilities.manufacturer.indexOf(manufacturerFilter) > -1) &&
+					(osFilter == null 			|| Capabilities.os.indexOf(osFilter) > -1) &&
+					(versionFilter == null		|| Capabilities.version.indexOf(versionFilter) > -1)) {
+					// Add this platform (same as currentl platform)
+
+					platformInfo = new AutoPlatformInfo();
+					platformInfo.id					= iis;
+					platformInfo.manufacturerFilter	= manufacturerFilter;
+					platformInfo.osFilter			= osFilter;
+					platformInfo.versionFilter		= versionFilter;
+
+					knownGamepadPlatforms.push(platformInfo);
+
+					// Add possible gamepads
+					for (jjs in platformObj["gamepads"]) {
+						gamepadObj = platformObj["gamepads"][jjs];
+
+						gamepadInfo = new AutoGamepadInfo();
+						gamepadInfo.id			= jjs;
+						gamepadInfo.nameFilter	= gamepadObj["filters"]["name"];
+
+						platformInfo.gamepads.push(gamepadInfo);
+
+						// Add possible controls
+						for (kks in gamepadObj["controls"]) {
+							controlObj = gamepadObj["controls"][kks];
+
+							// TODO: parse complex split items
+							controlInfo = new AutoGamepadControlInfo();
+							controlInfo.id	= controlObj[0];
+							controlInfo.min	= controlObj[1];
+							controlInfo.max	= controlObj[2];
+
+							gamepadInfo.controls[kks] = controlInfo;
+						}
+					}
+				}
+			}
 		}

 		// ================================================================================================================
@@ -317,10 +381,33 @@
 			addGameInputDeviceEvents();

 			// Create a list of devices for easy identification
+			var i:int;
+
 			gameInputDevices = new Vector.<GameInputDevice>();
-			for (var i:int = 0; i < GameInput.numDevices; i++) {
+			gameInputDeviceDefinitions = new Vector.<AutoGamepadInfo>();
+			for (i = 0; i < GameInput.numDevices; i++) {
 				gameInputDevices.push(GameInput.getDeviceAt(i));
-			}
+				gameInputDeviceDefinitions.push(findGamepadInfo(gameInputDevices[i]));
+			}
+
+//			log("Game input devices changed; new list:");
+//			for (i = 0; i < gameInputDevices.length; i++) {
+//				log("  " + i + " => device.name is [" + gameInputDevices[i].name + "], identified as [" + gameInputDeviceDefinitions[i].id + "]");
+//			}
+		}
+
+		private function findGamepadInfo(__gameInputDevice:GameInputDevice):AutoGamepadInfo {
+			// Based on a Game InputDevice, find the internal GamepadInfo that describes this Gamepad
+			var i:int, j:int;
+			for (i = 0; i < knownGamepadPlatforms.length; i++) {
+				for (j = 0; j < knownGamepadPlatforms[i].gamepads.length; j++) {
+					if (knownGamepadPlatforms[i].gamepads[j].nameFilter == null || gameInputDevices[i].name.indexOf(knownGamepadPlatforms[i].gamepads[j].nameFilter) > -1) {
+						return knownGamepadPlatforms[i].gamepads[j];
+					}
+				}
+			}
+			trace("Error! Gamepad definition not found for GameInputDevice " + __gameInputDevice.name + "!!");
+			return null;
 		}

 		private function addGameInputDeviceEvents():void {
@@ -365,6 +452,17 @@
 			}
 		}

+		private function map(__value:Number, __oldMin:Number, __oldMax:Number, __newMin:Number = 0, __newMax:Number = 1, __clamp:Boolean = false):Number {
+			// Same as map, but without allocations
+			if (__oldMin == __oldMax) return __newMin;
+			mi = ((__value-__oldMin) / (__oldMax-__oldMin) * (__newMax-__newMin)) + __newMin;
+			if (__clamp) mi = __newMin < __newMax ? clamp(mi, __newMin, __newMax) : clamp(mi, __newMax, __newMin);
+			return mi;
+		}
+
+		private function clamp(__value:Number, __min:Number = 0, __max:Number = 1):Number {
+			return __value < __min ? __min : __value > __max ? __max : __value;
+		}

 		// ================================================================================================================
 		// EVENT INTERFACE ------------------------------------------------------------------------------------------------
@@ -428,46 +526,53 @@
 		private function onGameInputDeviceChanged(__e:Event):void {
 			var control:GameInputControl = __e.target as GameInputControl;

-//			debug("onGameInputDeviceChanged: " + control.id + " = " + control.value + " (of " + control.minValue + " => " + control.maxValue + ")");
-
-			var filteredControls:Vector.<BindingInfo> = filterGamepadControls(control.id, gameInputDevices.indexOf(control.device));
-			var idx:int;
-			var activations:Vector.<BindingInfo>;
-			var isActivated:Boolean = control.value > control.minValue + (control.maxValue - control.minValue) / 2;
-
-			for (var i:int = 0; i < filteredControls.length; i++) {
-
-				if (filteredControls[i].binding is GamepadSensitiveBinding) {
-					// A sensitive binding, send changed value signals instead
-
-					// Dispatches signal
-					(actionsActivations[filteredControls[i].action] as ActivationInfo).sensitiveValues[filteredControls[i].action] = (control.value - control.minValue) / (control.maxValue - control.minValue) * ((filteredControls[i].binding as GamepadSensitiveBinding).maxValue - (filteredControls[i].binding as GamepadSensitiveBinding).minValue) + (filteredControls[i].binding as GamepadSensitiveBinding).minValue;
-					_onSensitiveActionChanged.dispatch(filteredControls[i].action, (actionsActivations[filteredControls[i].action] as ActivationInfo).value);
-				} else {
-					// A standard action binding, send activated/deactivated signals
-
-					if (filteredControls[i].isActivated != isActivated) {
-						// Value changed
-						filteredControls[i].isActivated = isActivated;
-						if (isActivated) {
-							// Marks as pressed
-							filteredControls[i].lastActivatedTime = getTimer();
-
-							// Add this activation to the list of current activations
-							(actionsActivations[filteredControls[i].action] as ActivationInfo).activations.push(filteredControls[i]);
-
-							// Dispatches signal
-							if ((actionsActivations[filteredControls[i].action] as ActivationInfo).activations.length == 1) _onActionActivated.dispatch(filteredControls[i].action);
-						} else {
-							// Marks as released
-
-							// Removes this activation from the list of current activations
-							activations = (actionsActivations[filteredControls[i].action] as ActivationInfo).activations;
-							idx = activations.indexOf(filteredControls[i]);
-							if (idx > -1) activations.splice(idx, 1);
-
-							// Dispatches signal
-							if (activations.length == 0) _onActionDeactivated.dispatch(filteredControls[i].action);
+			// Find the re-mapped control id
+			var deviceIndex:int = gameInputDevices.indexOf(control.device);
+			var deviceControlInfo:AutoGamepadControlInfo = gameInputDeviceDefinitions[deviceIndex].controls.hasOwnProperty(control.id) ? gameInputDeviceDefinitions[deviceIndex].controls[control.id] as AutoGamepadControlInfo : null;
+
+			if (deviceControlInfo != null) {
+
+				//debug("onGameInputControlChanged: " + control.id + " [" + metaControlId + "] = " + control.value + " (of " + control.minValue + " => " + control.maxValue + ")");
+
+				var filteredControls:Vector.<BindingInfo> = filterGamepadControls(deviceControlInfo.id, deviceIndex);
+				var idx:int;
+				var activations:Vector.<BindingInfo>;
+				var isActivated:Boolean = control.value > control.minValue + (control.maxValue - control.minValue) / 2;
+
+				for (var i:int = 0; i < filteredControls.length; i++) {
+
+					if (filteredControls[i].binding is GamepadSensitiveBinding) {
+						// A sensitive binding, send changed value signals instead
+
+						// Dispatches signal
+						(actionsActivations[filteredControls[i].action] as ActivationInfo).sensitiveValues[filteredControls[i].action] = map(control.value, control.minValue, control.maxValue, deviceControlInfo.min, deviceControlInfo.max, true);
+						_onSensitiveActionChanged.dispatch(filteredControls[i].action, (actionsActivations[filteredControls[i].action] as ActivationInfo).value);
+					} else {
+						// A standard action binding, send activated/deactivated signals
+
+						if (filteredControls[i].isActivated != isActivated) {
+							// Value changed
+							filteredControls[i].isActivated = isActivated;
+							if (isActivated) {
+								// Marks as pressed
+								filteredControls[i].lastActivatedTime = getTimer();
+
+								// Add this activation to the list of current activations
+								(actionsActivations[filteredControls[i].action] as ActivationInfo).activations.push(filteredControls[i]);
+
+								// Dispatches signal
+								if ((actionsActivations[filteredControls[i].action] as ActivationInfo).activations.length == 1) _onActionActivated.dispatch(filteredControls[i].action);
+							} else {
+								// Marks as released
+
+								// Removes this activation from the list of current activations
+								activations = (actionsActivations[filteredControls[i].action] as ActivationInfo).activations;
+								idx = activations.indexOf(filteredControls[i]);
+								if (idx > -1) activations.splice(idx, 1);
+
+								// Dispatches signal
+								if (activations.length == 0) _onActionDeactivated.dispatch(filteredControls[i].action);
+							}
 						}
 					}
 				}
@@ -535,6 +640,7 @@
 				}

 				gameInputDevices = null;
+				gameInputDeviceDefinitions = null;
 				removeGameInputDeviceEvents();

 				_isRunning = false;
@@ -586,7 +692,7 @@
 		 * @param action		An arbritrary String id identifying the action that should be dispatched once this
 		 *						input combination is detected.
 		 * @param controlId		The id code of a GameInput contol, as an String. Use one of the constants from
-		 *						GamepadControls, or a string related to the control you're expecting.
+		 *						GamepadControls.
 		 * @param gamepadIndex	The int of the gamepad that you want to restrict this action to. Use 0 for the
 		 *						first gamepad (player 1), 1 for the second one, and so on. If a value of -1 or
 		 *						NaN is passed, the gamepad index is never taken into consideration
@@ -616,9 +722,9 @@
 			prepareAction(__action);
 		}

-		public function addGamepadSensitiveActionBinding(__action:String, __controlId:String, __gamepadIndex:int = -1, __minValue:Number = 0, __maxValue:Number = 1):void {
+		public function addGamepadSensitiveActionBinding(__action:String, __controlId:String, __gamepadIndex:int = -1):void {
 			// Create a binding to be verified later
-			bindings.push(new BindingInfo(__action, new GamepadSensitiveBinding(__controlId, __gamepadIndex >= 0 ? __gamepadIndex : GamepadBinding.GAMEPAD_INDEX_ANY, __minValue, __maxValue)));
+			bindings.push(new BindingInfo(__action, new GamepadSensitiveBinding(__controlId, __gamepadIndex >= 0 ? __gamepadIndex : GamepadBinding.GAMEPAD_INDEX_ANY)));
 			prepareAction(__action);
 		}

@@ -834,17 +940,73 @@
  */
 class GamepadSensitiveBinding extends GamepadBinding {

-	// Properties
-	public var minValue:Number;
-	public var maxValue:Number;
-
 	// ================================================================================================================
 	// CONSTRUCTOR ----------------------------------------------------------------------------------------------------

-	public function GamepadSensitiveBinding(__controlId:String, __gamepadIndex:uint, __minValue:Number, __maxValue:Number) {
+	public function GamepadSensitiveBinding(__controlId:String, __gamepadIndex:uint) {
 		super(__controlId, __gamepadIndex);
-
-		minValue = __minValue;
-		maxValue = __maxValue;
-	}
-}+	}
+}
+
+/**
+ * Information on platforms that are automatically mapped
+ */
+class AutoPlatformInfo {
+
+	// Properties
+	public var id:String;
+
+	public var manufacturerFilter:String;		// Filter for Capabilities.manufacturer
+	public var osFilter:String;					// Filter for Capabilities.os
+	public var versionFilter:String;			// Filter for Capabilities.version
+
+	public var gamepads:Vector.<AutoGamepadInfo>;
+
+
+	// ================================================================================================================
+	// CONSTRUCTOR ----------------------------------------------------------------------------------------------------
+
+	public function AutoPlatformInfo() {
+		gamepads = new Vector.<AutoGamepadInfo>();
+	}
+}
+
+/**
+ * Information on gamepads that are automatically mapped
+ */
+class AutoGamepadInfo {
+
+	// Properties
+	public var id:String;
+
+	public var nameFilter:String;				// Filter for device.name
+
+	public var controls:Object;					// AutoGamepadControlInfo, key is the control.id
+
+
+	// ================================================================================================================
+	// CONSTRUCTOR ----------------------------------------------------------------------------------------------------
+
+	public function AutoGamepadInfo() {
+		controls = {};
+	}
+}
+
+/**
+ * Information on gamepads controls that are automatically mapped
+ */
+class AutoGamepadControlInfo {
+
+	// Properties
+	public var id:String;
+	public var min:Number;
+	public var max:Number;
+
+
+	// ================================================================================================================
+	// CONSTRUCTOR ----------------------------------------------------------------------------------------------------
+
+	public function AutoGamepadControlInfo() {
+	}
+}
+


Transferred from the Adobe Open Source Subversion Repository

Revision: 15021
Author:   smgilson@adobe.com
Date:     2010-03-25T14:35:43.815117Z

Log Message:
-----------
merge 15020: update ASDoc for execute() to use FaultEvent instead of ErrorMessage in the fault handler

QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/olap/IOLAPCube.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1248674 13f79535-47bb-0310-9956-ffa450edef68


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262374 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/states/RemoveChild.as
+++ frameworks/projects/framework/src/mx/states/RemoveChild.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//  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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Send our auth request directly instead of running it through the queue. Also
log our boot groups to make it easier to distinguish which "server" we're
logging onto.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5675 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/presents/client/Communicator.as
+++ src/as/com/threerings/presents/client/Communicator.as
@@ -114,7 +114,7 @@
         var ppidx :int = Math.max(0, ports.indexOf(pport));
         var port :int = (ports[(_portIdx + ppidx) % ports.length] as int);

-        log.info("Connecting [host=" + host + ", port=" + port + "].");
+        log.info("Connecting", "host", host, "port", port, "svcs", _client.getBootGroups());
         _socket.connect(host, port);

         return true;
@@ -277,6 +277,11 @@
             }
         }

+        // send our authentication request (do so directly rather than putting it on the outgoing
+        // write queue)
+        sendMessage(new AuthRequest(_client.getCredentials(), _client.getVersion(),
+                                    _client.getBootGroups()));
+
         // kick off our writer thread now that we know we're ready to write
         _writer = new Timer(1);
         _writer.addEventListener(TimerEvent.TIMER, sendPendingMessages);
@@ -284,10 +289,6 @@

         // clear the queue, the server doesn't like anything sent prior to auth
         _outq.length = 0;
-
-        // well that's great! let's logon
-        postMessage(new AuthRequest(_client.getCredentials(), _client.getVersion(),
-                                    _client.getBootGroups()));
     }

     /**


Fix for handling ArrayCollections declared directly

--- as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
@@ -115,6 +115,9 @@
             var isArray:Boolean = false;
             var result:Object = {typeName: null, isArray: false, isArrayCollection: false};

+            if (propName == "label")
+                trace("stop");
+
             if (className == "Object" || className == "mx.utils::ObjectProxy")
                 return result;

@@ -148,7 +151,7 @@
                     result.isArray = true;
                     result.typeName = null; // assume generic object unless told otherwise
                 }
-                else if (result.typeName == "ArrayCollection")
+                else if (result.typeName == "mx.collections.ArrayCollection")
                 {
                     result.isArrayCollection = true;
                     result.typeName = null; // assume generic object unless told otherwise


Transferred from the Adobe Open Source Subversion Repository

Revision: 5019
Author:   smgilson@adobe.com
Date:     2009-02-19T21:17:21.579153Z

Log Message:
-----------
ASDoc updates to indicate that some Halo containers do not work with the Spark equiv (ControlBar does not work with Spark Panel/AppControlBar does not work with Spark Application), and indicate that Canvas, Box, Tile, Panel have Spark equivs

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Box.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Canvas.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Tile.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/VBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/HBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ControlBar.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1267751 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/containers/VBox.as
+++ frameworks/projects/mx/src/mx/containers/VBox.as
@@ -35,11 +35,14 @@
 [IconFile("VBox.png")]

 /**
- *  The VBox container lays out its children in a single vertical column.
+ *  The Halo VBox container lays out its children in a single vertical column.
  *  You use the <mx:VBox> tag instead of the
  *  <mx:Box> tag as a shortcut to avoid having to
  *  set the direction property to "vertical".
- *
+ *
+ *
Note: Adobe recommends that, when possible, you use the Spark containers
+ *  with VerticalLayout instead of the Halo VBox container.

+ *
  *
An VBox container has the following default sizing characteristics:

  *

  *

@@ -67,48 +70,49 @@
  *
  *  @includeExample examples/VBoxExample.mxml
  *
+ *  @see mx.components.Container
  *  @see mx.containers.Box
  *  @see mx.containers.HBox
  */
 public class VBox extends Box
 {
-	include "../core/Version.as";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  Constructor.
-	 */
-	public function VBox()
-	{
-		super();
-
-		mx_internal::layoutObject.direction = BoxDirection.VERTICAL;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden properties
-	//
-	//--------------------------------------------------------------------------
+    /**
+     *  Constructor.
+     */
+    public function VBox()
+    {
+        super();
+
+        mx_internal::layoutObject.direction = BoxDirection.VERTICAL;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------

-	//----------------------------------
-	//  direction
-	//----------------------------------
-
-	[Inspectable(environment="none")]
+    //----------------------------------
+    //  direction
+    //----------------------------------
+
+    [Inspectable(environment="none")]

-	/**
-	 *  @private
-	 *  Don't allow user to change the direction
-	 */
-	override public function set direction(value:String):void
-	{
-	}
+    /**
+     *  @private
+     *  Don't allow user to change the direction
+     */
+    override public function set direction(value:String):void
+    {
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 1098
Author:   jimurphy@adobe.com
Date:     2008-04-03T21:50:39.896200Z

Log Message:
-----------
Merge 3.0.x -- 362:394, 427:429, 603:608, 644:645, 651:663, 672:676, 755:756, 763:766, 785:790, 812:814, 854:861, 862:866, 866:933,971:1009, 1050:1056 --> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/DefaultDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IRepeaterClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/Locale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/SOAPMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IBrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ComponentDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IViewCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/IMenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ILayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Spacer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Fault.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/XMLListCollection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SliderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ScrollEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/CuePointManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/NumericStepperEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/CursorBookmark.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/LoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/FlexClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/SubscriptionInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/LogLogger.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/HeaderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/ITreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1261782 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -2102,7 +2102,7 @@
 	 *  Returns true if the given DisplayObject is the
 	 *  top-level window.
 	 *
-	 *  @param object
+	 *  @param object The DisplayObject to test.
 	 *
 	 *  @return true if the given DisplayObject is the
 	 *  top-level window.


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262378 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/states/SetEventHandler.as
+++ frameworks/projects/framework/src/mx/states/SetEventHandler.as
@@ -32,6 +32,11 @@
  *  When you use the handler handler attribute, you can specify a
  *  method that takes multiple parameters, not just the Event object;
  *  also, you can specify the handler code in-line in the MXML tag.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="handler", type="Object")]

@@ -63,6 +68,11 @@
  *  @see mx.states.State
  *  @see mx.states.SetProperty
  *  @see mx.states.SetStyle
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class SetEventHandler extends OverrideBase implements IOverride
 {
@@ -81,6 +91,11 @@
      *  By default, Flex uses the immediate parent of the State object.
      *
      *  @param event The event type for which to set the handler.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function SetEventHandler(
             target:EventDispatcher = null,
@@ -127,6 +142,11 @@
      *  You must set this property, either in
      *  the SetEventHandler constructor or by setting
      *  the property value directly.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var name:String;

@@ -138,6 +158,11 @@
      *  event attribute; do not use both in a single MXML tag.
      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var handlerFunction:Function;

@@ -153,6 +178,11 @@
      *  immediate parent of the <mx:states> tag.
      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var target:Object;

@@ -188,6 +218,11 @@
      *  IOverride interface method; this class implements it as an empty method.
      *
      *  @copy IOverride#initialize()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function initialize():void
     {
@@ -195,6 +230,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function apply(parent:UIComponent):void
     {
@@ -241,6 +281,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function remove(parent:UIComponent):void
     {