Transferred from the Adobe Open Source Subversion Repository

Revision: 3939
Author:   smgilson@adobe.com
Date:     2008-10-29T14:15:08.445165Z

Log Message:
-----------
Add missing <\p> tag to ASdoc comment

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1357,7 +1357,7 @@
      *
      * storage for advanced layout and transform properties.
      */
-	private var _layoutFeatures:AdvancedLayoutFeatures;
+    private var _layoutFeatures:AdvancedLayoutFeatures;

     /**
      * @private
@@ -1504,11 +1504,11 @@
         // before we get to setting the _parent property.
         try
         {
-	        return _parent ? _parent : super.parent;
+            return _parent ? _parent : super.parent;
         }
         catch (e:SecurityError)
         {
-        	// trace("UIComponent.get parent(): " + e);
+            // trace("UIComponent.get parent(): " + e);
         }

         return null;
@@ -1538,7 +1538,7 @@
      */
     override public function get x():Number
     {
-    	return (_layoutFeatures == null)? super.x:_layoutFeatures.layoutX;
+        return (_layoutFeatures == null)? super.x:_layoutFeatures.layoutX;
     }

     /**
@@ -1551,14 +1551,14 @@

         if(_layoutFeatures == null)
         {
-	        super.x  = value;
-	        invalidateProperties();
+            super.x  = value;
+            invalidateProperties();
         }
         else
-	   	{
-	   		_layoutFeatures.layoutX = value;
-	   		invalidateTransform();
-	   	}
+        {
+            _layoutFeatures.layoutX = value;
+            invalidateTransform();
+        }

         dispatchEvent(new Event("xChanged"));
@@ -1570,7 +1570,7 @@
      */
     override public function get z():Number
     {
-    	return (_layoutFeatures == null)? super.z:_layoutFeatures.layoutZ;
+        return (_layoutFeatures == null)? super.z:_layoutFeatures.layoutZ;
     }

     /**
@@ -1580,19 +1580,19 @@
     {
         if (z == value)
             return;
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-   		_layoutFeatures.layoutZ = value;
-   		invalidateTransform();
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.layoutZ = value;
+        invalidateTransform();
         dispatchEvent(new Event("zChanged"));
     }

-	/**
-	 *
-	 */
-	public function get transformX():Number
-	{
-    	return (_layoutFeatures == null)? 0:_layoutFeatures.transformX;
-	}
+    /**
+     *
+     */
+    public function get transformX():Number
+    {
+        return (_layoutFeatures == null)? 0:_layoutFeatures.transformX;
+    }
     /**
      *  @private
      */
@@ -1600,19 +1600,19 @@
     {
         if (transformX == value)
             return;
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-   		_layoutFeatures.transformX = value;
-   		invalidateTransform();
-   		invalidateParentSizeAndDisplayList();
-    }
-
-	/**
-	 *
-	 */
-	public function get transformY():Number
-	{
-    	return (_layoutFeatures == null)? 0:_layoutFeatures.transformY;
-	}
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.transformX = value;
+        invalidateTransform();
+        invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     *
+     */
+    public function get transformY():Number
+    {
+        return (_layoutFeatures == null)? 0:_layoutFeatures.transformY;
+    }
     /**
      *  @private
      */
@@ -1620,19 +1620,19 @@
     {
         if (transformY == value)
             return;
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-   		_layoutFeatures.transformY = value;
-   		invalidateTransform();
-   		invalidateParentSizeAndDisplayList();
-    }
-
-	/**
-	 *
-	 */
-	public function get transformZ():Number
-	{
-    	return (_layoutFeatures == null)? 0:_layoutFeatures.transformZ;
-	}
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.transformY = value;
+        invalidateTransform();
+        invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     *
+     */
+    public function get transformZ():Number
+    {
+        return (_layoutFeatures == null)? 0:_layoutFeatures.transformZ;
+    }
     /**
      *  @private
      */
@@ -1640,23 +1640,23 @@
     {
         if (transformZ == value)
             return;
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-   		_layoutFeatures.transformZ = value;
-   		invalidateTransform();
-   		invalidateParentSizeAndDisplayList();
-    }
-
-	/**
-	 * @inheritDoc
-	 */
-	override public function get rotation():Number
-	{
-		return (_layoutFeatures == null)? super.rotation:_layoutFeatures.layoutRotationZ;
-	}
-
-	/**
-	 * @private
-	 */
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.transformZ = value;
+        invalidateTransform();
+        invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     * @inheritDoc
+     */
+    override public function get rotation():Number
+    {
+        return (_layoutFeatures == null)? super.rotation:_layoutFeatures.layoutRotationZ;
+    }
+
+    /**
+     * @private
+     */
     override public function set rotation(value:Number):void
     {
         if (rotation == value)
@@ -1679,43 +1679,43 @@
                     value = value + 360;
             }

-	        super.rotation = value;
-	    }
-	   	else
-	   	{
-	   		_layoutFeatures.layoutRotationZ = value;
-	   	}
-
-   		invalidateTransform();
-   		invalidateParentSizeAndDisplayList();
+            super.rotation = value;
+        }
+        else
+        {
+            _layoutFeatures.layoutRotationZ = value;
+        }
+
+        invalidateTransform();
+        invalidateParentSizeAndDisplayList();
     }

     /**
      *  @inheritDoc
      */
-	override public function get rotationZ():Number
-	{
-		return rotation;
-	}
+    override public function get rotationZ():Number
+    {
+        return rotation;
+    }
     /**
      *  @private
      */
     override public function set rotationZ(value:Number):void
     {
-    	rotation = value;
-    }
-
-	/**
-	 * Indicates the x-axis rotation of the DisplayObject instance, in degrees, from its original orientation
-	 * relative to the 3D parent container. Values from 0 to 180 represent clockwise rotation; values
-	 * from 0 to -180 represent counterclockwise rotation. Values outside this range are added to or subtracted from
-	 * 360 to obtain a value within the range.
-	 *
-	 * This property is ignored during calculation by any of Flex's 2D layouts.
-	 */
+        rotation = value;
+    }
+
+    /**
+     * Indicates the x-axis rotation of the DisplayObject instance, in degrees, from its original orientation
+     * relative to the 3D parent container. Values from 0 to 180 represent clockwise rotation; values
+     * from 0 to -180 represent counterclockwise rotation. Values outside this range are added to or subtracted from
+     * 360 to obtain a value within the range.
+     *
+     * This property is ignored during calculation by any of Flex's 2D layouts.
+     */
     override public function get rotationX():Number
     {
-    	return (_layoutFeatures == null)? super.rotationX:_layoutFeatures.layoutRotationX;
+        return (_layoutFeatures == null)? super.rotationX:_layoutFeatures.layoutRotationX;
     }

     /**
@@ -1726,23 +1726,23 @@
         if (rotationX == value)
             return;

-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-   		_layoutFeatures.layoutRotationX = value;
-   		invalidateTransform();
-   		invalidateParentSizeAndDisplayList();
-    }
-
-	/**
-	 * Indicates the y-axis rotation of the DisplayObject instance, in degrees, from its original orientation
-	 * relative to the 3D parent container. Values from 0 to 180 represent clockwise rotation; values
-	 * from 0 to -180 represent counterclockwise rotation. Values outside this range are added to or subtracted from
-	 * 360 to obtain a value within the range.
-	 *
-	 * This property is ignored during calculation by any of Flex's 2D layouts.
-	 */
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.layoutRotationX = value;
+        invalidateTransform();
+        invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     * Indicates the y-axis rotation of the DisplayObject instance, in degrees, from its original orientation
+     * relative to the 3D parent container. Values from 0 to 180 represent clockwise rotation; values
+     * from 0 to -180 represent counterclockwise rotation. Values outside this range are added to or subtracted from
+     * 360 to obtain a value within the range.
+     *
+     * This property is ignored during calculation by any of Flex's 2D layouts.
+     */
     override public function get rotationY():Number
     {
-    	return (_layoutFeatures == null)? super.rotationY:_layoutFeatures.layoutRotationY;
+        return (_layoutFeatures == null)? super.rotationY:_layoutFeatures.layoutRotationY;
     }

     /**
@@ -1753,12 +1753,12 @@
         if (rotationY == value)
             return;

-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-   		_layoutFeatures.layoutRotationY = value;
-   		invalidateTransform();
-   		invalidateParentSizeAndDisplayList();
-    }
-
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.layoutRotationY = value;
+        invalidateTransform();
+        invalidateParentSizeAndDisplayList();
+    }
+
     //----------------------------------
     //  y
     //----------------------------------
@@ -1783,7 +1783,7 @@
      */
     override public function get y():Number
     {
-    	return (_layoutFeatures == null)? super.y:_layoutFeatures.layoutY;
+        return (_layoutFeatures == null)? super.y:_layoutFeatures.layoutY;
     }

     /**
@@ -1796,14 +1796,14 @@

         if(_layoutFeatures == null)
         {
-	        invalidateProperties();
-	        super.y  = value;
-       	}
-	   	else
-	   	{
-	   		_layoutFeatures.layoutY = value;
-	   		invalidateTransform();
-	   	}
+            invalidateProperties();
+            super.y  = value;
+        }
+        else
+        {
+            _layoutFeatures.layoutY = value;
+            invalidateTransform();
+        }

         dispatchEvent(new Event("yChanged"));
@@ -1974,9 +1974,9 @@
     override public function get scaleX():Number
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-        	return _scaleX;
+            return _scaleX;
         else
-	    	return ((_layoutFeatures == null)? super.scaleX:_layoutFeatures.layoutScaleX);
+            return ((_layoutFeatures == null)? super.scaleX:_layoutFeatures.layoutScaleX);
     }

     /**
@@ -1990,37 +1990,37 @@
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {

-	        if (_scaleX == value)
-    	        return;
-
-       	 	_scaleX = value;
-
-	        invalidateProperties();
-	        invalidateSize();
-	    }
-	    else
-	    {
-
-
-	    	var prevValue:Number = (_layoutFeatures == null)? scaleX:_layoutFeatures.layoutScaleX;
-	        if (prevValue == value)
-	            return;
-
-	        // trace("set scaleX:" + this + "value = " + value);
-	        if(_layoutFeatures == null)
-		        super.scaleX = value;
-		   	else
-		   	{
-		   		_layoutFeatures.layoutScaleX = value;
-		   	}
-	   		invalidateTransform();
-
-	        // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
-	        // and scaleX is changing we need to invalidate parent size and display list
-	        // since we are not going to detect a change in measured sizes during measure.
-	    	invalidateParentSizeAndDisplayList();
-
-	    }
+            if (_scaleX == value)
+                return;
+
+            _scaleX = value;
+
+            invalidateProperties();
+            invalidateSize();
+        }
+        else
+        {
+
+
+            var prevValue:Number = (_layoutFeatures == null)? scaleX:_layoutFeatures.layoutScaleX;
+            if (prevValue == value)
+                return;
+
+            // trace("set scaleX:" + this + "value = " + value);
+            if(_layoutFeatures == null)
+                super.scaleX = value;
+            else
+            {
+                _layoutFeatures.layoutScaleX = value;
+            }
+            invalidateTransform();
+
+            // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
+            // and scaleX is changing we need to invalidate parent size and display list
+            // since we are not going to detect a change in measured sizes during measure.
+            invalidateParentSizeAndDisplayList();
+
+        }
         dispatchEvent(new Event("scaleXChanged"));
     }

@@ -2055,10 +2055,10 @@
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
-    		return _scaleY;
+            return _scaleY;
         }
         else
-	    	return ((_layoutFeatures == null)? super.scaleY:_layoutFeatures.layoutScaleY);
+            return ((_layoutFeatures == null)? super.scaleY:_layoutFeatures.layoutScaleY);
     }

     /**
@@ -2072,33 +2072,33 @@
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
-	        if (_scaleY == value)
-	            return;
-
-	        _scaleY = value;
-
-	        invalidateProperties();
-	        invalidateSize();
-
-	   }
-	   else
-	   {
-	    	var prevValue:Number = (_layoutFeatures == null)? scaleY:_layoutFeatures.layoutScaleY;
-	        if (prevValue == value)
-	            return;
-
-	        if(_layoutFeatures == null)
-		        super.scaleY = value;
-		   	else
-		   	{
-		   		_layoutFeatures.layoutScaleY = value;
-		   	}
-	   		invalidateTransform();
+            if (_scaleY == value)
+                return;
+
+            _scaleY = value;
+
+            invalidateProperties();
+            invalidateSize();
+
+       }
+       else
+       {
+            var prevValue:Number = (_layoutFeatures == null)? scaleY:_layoutFeatures.layoutScaleY;
+            if (prevValue == value)
+                return;
+
+            if(_layoutFeatures == null)
+                super.scaleY = value;
+            else
+            {
+                _layoutFeatures.layoutScaleY = value;
+            }
+            invalidateTransform();

             // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
             // and scaleX is changing we need to invalidate parent size and display list
             // since we are not going to detect a change in measured sizes during measure.
-        	invalidateParentSizeAndDisplayList();
+            invalidateParentSizeAndDisplayList();
         }

         dispatchEvent(new Event("scaleYChanged"));
@@ -2113,32 +2113,32 @@
     /**
      *  Number that specifies the scaling factor along the z axis.
      *
-     *  A scaling along the z axis will not affect a typical component, which lies flat
+     *
A scaling along the z axis will not affect a typical component, which lies flat
      *  in the z=0 plane.  components with children that have 3D transforms applied, or
-     *  components with a non-zero transformZ, will be affected.
+     *  components with a non-zero transformZ, will be affected.

      *
      *
The default value is 1.0, which means that the object
-     *  is not scaled.
+     *  is not scaled.

      *
-	 * This property is ignored during calculation by any of Flex's 2D layouts.
+     *
This property is ignored during calculation by any of Flex's 2D layouts.

      *
      *  @default 1.0
      */
     override public function get scaleZ():Number
     {
-    	return ((_layoutFeatures == null)? super.scaleZ:_layoutFeatures.layoutScaleZ);
-    }
-
-	/**
-	 * @private
-	 */
+        return ((_layoutFeatures == null)? super.scaleZ:_layoutFeatures.layoutScaleZ);
+    }
+
+    /**
+     * @private
+     */
     override public function set scaleZ(value:Number):void
     {
         if (scaleZ == value)
             return;
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-   		_layoutFeatures.layoutScaleZ = value;
-   		invalidateTransform();
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.layoutScaleZ = value;
+        invalidateTransform();
         dispatchEvent(new Event("scaleZChanged"));
     }

@@ -2805,8 +2805,8 @@
                     }
                     else if (o is ISystemManager)
                     {
-                    	_systemManager = o as ISystemManager;
-                    	break;
+                        _systemManager = o as ISystemManager;
+                        break;
                     }
                     o = o.parent;
                 }
@@ -3492,7 +3492,7 @@
         {
             removeChild(_focusPane);

-			_focusPane.mask = null;
+            _focusPane.mask = null;
             _focusPane = null;
         }
     }
@@ -5448,8 +5448,8 @@

         // systemManager getter tries to set the internal _systemManager varaible
         // if it is null. Hence a call to the getter is necessary.
-		// Stage can be null when an untrusted application is loaded by an application
-		// that isn't on stage yet.
+        // Stage can be null when an untrusted application is loaded by an application
+        // that isn't on stage yet.
         if (systemManager && (_systemManager.stage || _systemManager.useSWFBridge()))
         {
             if (methodQueue.length > 0 && !listeningForRender)
@@ -5459,8 +5459,8 @@
                 listeningForRender = true;
             }

-			if (_systemManager.stage)
-            	_systemManager.stage.invalidate();
+            if (_systemManager.stage)
+                _systemManager.stage.invalidate();
         }
     }

@@ -5472,7 +5472,7 @@
      */
     public function parentChanged(p:DisplayObjectContainer):void
     {
-   		// trace("parentChanged: " + _parent + " of " + this + " changed to ");
+        // trace("parentChanged: " + _parent + " of " + this + " changed to ");

         if (!p)
         {
@@ -5492,7 +5492,7 @@
             _parent = p.parent;
         }

-   		// trace("               " + p);
+        // trace("               " + p);

     }

@@ -5859,10 +5859,10 @@
         }
     }

-	/**
-	 *  Helper method to invalidate parent size and display list if
-	 *  this object affects its layout (includeInLayout is true).
-	 */
+    /**
+     *  Helper method to invalidate parent size and display list if
+     *  this object affects its layout (includeInLayout is true).
+     */
     protected function invalidateParentSizeAndDisplayList():void
     {
         if (!includeInLayout)
@@ -5904,38 +5904,38 @@
         }
     }

-	private function invalidateTransform(triggerPropertyInvalidation:Boolean = true):void
-	{
-		if(_layoutFeatures && _layoutFeatures.updatePending == false)
-		{
-			_layoutFeatures.updatePending = true;
-			if(isOnDisplayList() && UIComponentGlobals.layoutManager &&
-			invalidateDisplayListFlag == false)
-			{
-				UIComponentGlobals.layoutManager.invalidateDisplayList(this);
-			}
-		}
-		if(triggerPropertyInvalidation)
-			invalidateProperties();
-	}
+    private function invalidateTransform(triggerPropertyInvalidation:Boolean = true):void
+    {
+        if(_layoutFeatures && _layoutFeatures.updatePending == false)
+        {
+            _layoutFeatures.updatePending = true;
+            if(isOnDisplayList() && UIComponentGlobals.layoutManager &&
+            invalidateDisplayListFlag == false)
+            {
+                UIComponentGlobals.layoutManager.invalidateDisplayList(this);
+            }
+        }
+        if(triggerPropertyInvalidation)
+            invalidateProperties();
+    }

     private function transformOffsetsChangedHandler(e:Event):void
     {
-    	invalidateTransform(false);
+        invalidateTransform(false);
     }

     private function isOnDisplayList():Boolean
     {
-    	var p:DisplayObjectContainer;
+        var p:DisplayObjectContainer;

         try
         {
-	    	p = _parent ? _parent : super.parent;
+            p = _parent ? _parent : super.parent;
         }
         catch (e:SecurityError)
         {
-        	// trace("UIComponent.isOnDisplayList(): " + e);
-        	return true;		// we are on the display list but the parent is in another sandbox
+            // trace("UIComponent.isOnDisplayList(): " + e);
+            return true;        // we are on the display list but the parent is in another sandbox
         }

         return p ? true : false;
@@ -6072,14 +6072,14 @@
             if (!listeningForRender)
             {
                 // trace("  added");
-               	sm.addEventListener(FlexEvent.RENDER, callLaterDispatcher);
+                sm.addEventListener(FlexEvent.RENDER, callLaterDispatcher);
                 sm.addEventListener(FlexEvent.ENTER_FRAME, callLaterDispatcher);
                 listeningForRender = true;
             }

             // Force a "render" event to happen soon
             if (sm.stage)
-            	sm.stage.invalidate();
+                sm.stage.invalidate();
         }

         // trace("<<calllater " + this)
@@ -6155,9 +6155,9 @@
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
-	        if (_scaleX != oldScaleX)
-	        {
-	            var scalingFactorX:Number = Math.abs(_scaleX / oldScaleX);
+            if (_scaleX != oldScaleX)
+            {
+                var scalingFactorX:Number = Math.abs(_scaleX / oldScaleX);
                 if (!isNaN(explicitMinWidth))
                     explicitMinWidth *= scalingFactorX;
                 if (!isNaN(explicitWidth))
@@ -6167,28 +6167,28 @@

                 _width *= scalingFactorX;

-	            super.scaleX = oldScaleX = _scaleX;
-	        }
-
-	        if (_scaleY != oldScaleY)
-	        {
-	            var scalingFactorY:Number = Math.abs(_scaleY / oldScaleY);
-	            if (!isNaN(explicitMinHeight))
-	                explicitMinHeight *= scalingFactorY;
-	            if (!isNaN(explicitHeight))
-	                explicitHeight *= scalingFactorY;
-	            if (!isNaN(explicitMaxHeight))
-	                explicitMaxHeight *= scalingFactorY;
-
-	            _height *= scalingFactorY;
-
-	            super.scaleY = oldScaleY = _scaleY;
-	        }
+                super.scaleX = oldScaleX = _scaleX;
+            }
+
+            if (_scaleY != oldScaleY)
+            {
+                var scalingFactorY:Number = Math.abs(_scaleY / oldScaleY);
+                if (!isNaN(explicitMinHeight))
+                    explicitMinHeight *= scalingFactorY;
+                if (!isNaN(explicitHeight))
+                    explicitHeight *= scalingFactorY;
+                if (!isNaN(explicitMaxHeight))
+                    explicitMaxHeight *= scalingFactorY;
+
+                _height *= scalingFactorY;
+
+                super.scaleY = oldScaleY = _scaleY;
+            }
         }
         else
         {
             oldScaleX = scaleX;
-			oldScaleY = scaleY;
+            oldScaleY = scaleY;
         }

         if (x != oldX || y != oldY)
@@ -6683,17 +6683,17 @@
     {
         if(_layoutFeatures != null && _layoutFeatures.updatePending == true)
         {
-         	applyComputedTransform();
-        }
-
-		if(_maintainProjectionCenter)
-		{
-			var pmatrix:PerspectiveProjection = super.transform.perspectiveProjection;
-			if(pmatrix != null)
-			{
-				pmatrix.projectionCenter = new Point(unscaledWidth/2,unscaledHeight/2);
-			}
-		}
+            applyComputedTransform();
+        }
+
+        if(_maintainProjectionCenter)
+        {
+            var pmatrix:PerspectiveProjection = super.transform.perspectiveProjection;
+            if(pmatrix != null)
+            {
+                pmatrix.projectionCenter = new Point(unscaledWidth/2,unscaledHeight/2);
+            }
+        }
         if (invalidateDisplayListFlag)
         {
             // Check if our parent is the top level system manager
@@ -7124,27 +7124,27 @@

         if (x != this.x)
         {
-	        if(_layoutFeatures == null)
-		        super.x  = x;
-		else
-        		_layoutFeatures.layoutX = x;
+            if(_layoutFeatures == null)
+                super.x  = x;
+        else
+                _layoutFeatures.layoutX = x;
             dispatchEvent(new Event("xChanged"));
             changed = true;
         }

         if (y != this.y)
         {
-	        if(_layoutFeatures == null)
-		        super.y  = y;
-		else
-        		_layoutFeatures.layoutY = y;
+            if(_layoutFeatures == null)
+                super.y  = y;
+        else
+                _layoutFeatures.layoutY = y;
             dispatchEvent(new Event("yChanged"));
             changed = true;
         }

         if (changed)
         {
-      	    invalidateTransform(false);
+            invalidateTransform(false);
             dispatchMoveEvent();
         }
     }
@@ -7166,7 +7166,7 @@
      */
     public function setActualSize(w:Number, h:Number):void
     {
-    	// trace("setActualSize: " + this + " width = " + w + " height = " + h);
+        // trace("setActualSize: " + this + " width = " + w + " height = " + h);

         var changed:Boolean = false;

@@ -9093,18 +9093,18 @@
         if (event.eventPhase != EventPhase.AT_TARGET)
             return;

-		try
-		{
-	        if (parent is IContainer && IContainer(parent).creatingContentPane)
-	        {
-	            event.stopImmediatePropagation();
-	            return;
-	        }
-  		}
-  		catch (error:SecurityError)
-  		{
-
-  		}
+        try
+        {
+            if (parent is IContainer && IContainer(parent).creatingContentPane)
+            {
+                event.stopImmediatePropagation();
+                return;
+            }
+        }
+        catch (error:SecurityError)
+        {
+
+        }

     }

@@ -9117,18 +9117,18 @@
         if (event.eventPhase != EventPhase.AT_TARGET)
             return;

-		try
-		{
-	        if (parent is IContainer && IContainer(parent).creatingContentPane)
-	        {
-	            event.stopImmediatePropagation();
-	            return;
-	        }
-	    }
-  		catch (error:SecurityError)
-  		{
-
-  		}
+        try
+        {
+            if (parent is IContainer && IContainer(parent).creatingContentPane)
+            {
+                event.stopImmediatePropagation();
+                return;
+            }
+        }
+        catch (error:SecurityError)
+        {
+
+        }
         _systemManagerDirty = true;
     }

@@ -9319,22 +9319,22 @@
         if (childList.contains(child))
             return true;

-		try
-		{
-	        while (child && child != this)
-	        {
-	            // do a parent walk
-	            if (child is IUIComponent)
-	                child = IUIComponent(child).owner;
-	            else
-	                child = child.parent;
-	        }
-		}
-		catch (e:SecurityError)
-		{
-			// You can't own what you don't have access to.
-			return false;
-		}
+        try
+        {
+            while (child && child != this)
+            {
+                // do a parent walk
+                if (child is IUIComponent)
+                    child = IUIComponent(child).owner;
+                else
+                    child = child.parent;
+            }
+        }
+        catch (e:SecurityError)
+        {
+            // You can't own what you don't have access to.
+            return false;
+        }

         return child == this;
     }
@@ -9654,28 +9654,28 @@
     }

-	/**
-	 * Initializes the implementation and storage of some of the less frequently used
-	 * advanced layout features of a component.  Call this function before attempting to use any of the
-	 * features implemented by the AdvancedLayoutFeatures object.
-	 *
-	 */
-	protected function initAdvancedLayoutFeatures():void
-	{
-		var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();
-
-		features.layoutScaleX = scaleX;
-		features.layoutScaleY = scaleY;
-		features.layoutScaleZ = scaleZ;
-		features.layoutRotationX = rotationX;
-		features.layoutRotationY = rotationY;
-		features.layoutRotationZ = rotation;
-		features.layoutX = x;
-		features.layoutY = y;
-		features.layoutZ = z;
-		_layoutFeatures = features;
-		invalidateTransform(false);
-	}
+    /**
+     * Initializes the implementation and storage of some of the less frequently used
+     * advanced layout features of a component.  Call this function before attempting to use any of the
+     * features implemented by the AdvancedLayoutFeatures object.
+     *
+     */
+    protected function initAdvancedLayoutFeatures():void
+    {
+        var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();
+
+        features.layoutScaleX = scaleX;
+        features.layoutScaleY = scaleY;
+        features.layoutScaleZ = scaleZ;
+        features.layoutRotationX = rotationX;
+        features.layoutRotationY = rotationY;
+        features.layoutRotationZ = rotation;
+        features.layoutX = x;
+        features.layoutY = y;
+        features.layoutZ = z;
+        _layoutFeatures = features;
+        invalidateTransform(false);
+    }

@@ -9700,49 +9700,49 @@

     private function assignTransformMatrices():void
     {
-			var m:Matrix = _transform.matrix;
-			var m3:Matrix3D =  _transform.matrix3D;
-			if(m != null)
-				layoutMatrix = m.clone();
-			else if(m3 != null)
-				layoutMatrix3D = m3.clone();
-
-			invalidateSize();
-    }
-
-	/**
-	 * @private
-	 * Documentation is not currently available
-	 */
+            var m:Matrix = _transform.matrix;
+            var m3:Matrix3D =  _transform.matrix3D;
+            if(m != null)
+                layoutMatrix = m.clone();
+            else if(m3 != null)
+                layoutMatrix3D = m3.clone();
+
+            invalidateSize();
+    }
+
+    /**
+     * @private
+     * Documentation is not currently available
+     */
     mx_internal function get $transform():flash.geom.Transform
     {
-    	return super.transform;
-    }
-
-	/**
-	 * @inheritDoc
-	 */
+        return super.transform;
+    }
+
+    /**
+     * @inheritDoc
+     */
     override public function get transform():flash.geom.Transform
     {
-    	if(_transform == null)
-    	{
-    		setTransform(new mx.geom.Transform(this));
-    	}
-    	return _transform;
-    }
-
-	/**
-	 * @private
-	 */
+        if(_transform == null)
+        {
+            setTransform(new mx.geom.Transform(this));
+        }
+        return _transform;
+    }
+
+    /**
+     * @private
+     */
     override public function set transform(value:flash.geom.Transform):void
     {
-    	setTransform(value);
+        setTransform(value);

         assignTransformMatrices();
         super.transform.colorTransform = value.colorTransform;
-    	super.transform.perspectiveProjection = _transform.perspectiveProjection;
-    	if(maintainProjectionCenter)
-    		invalidateDisplayList();
+        super.transform.perspectiveProjection = _transform.perspectiveProjection;
+        if(maintainProjectionCenter)
+            invalidateDisplayList();
     }

@@ -9753,21 +9753,21 @@
         {
             if (event.property == "matrix" || event.property == "matrix3D")
             {
-            	assignTransformMatrices();
+                assignTransformMatrices();
             }
             else if (event.property == "perspectiveProjection")
             {
-            	super.transform.perspectiveProjection = _transform.perspectiveProjection;
-            	if(maintainProjectionCenter)
-            		invalidateDisplayList();
+                super.transform.perspectiveProjection = _transform.perspectiveProjection;
+                if(maintainProjectionCenter)
+                    invalidateDisplayList();
             }
             else if (event.property == "colorTransform")
             {
-            	super.transform.colorTransform = _transform.colorTransform;
+                super.transform.colorTransform = _transform.colorTransform;
             }
         }
     }
-
+
     /**
      *  Defines a set of adjustments that can be applied to the component's transform in a way that is
      *  invisible to the component's parent's layout. For example, if you want a layout to adjust
@@ -9775,127 +9775,127 @@
      *  If you want the layout to not adjust for the component being rotated, you set its offsets.rotationZ
      *  property.
      */
- 	public function set offsets(value:TransformOffsets):void
-	{
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-
-		if(_layoutFeatures.offsets != null)
-			_layoutFeatures.offsets.removeEventListener(Event.CHANGE,transformOffsetsChangedHandler);
-		_layoutFeatures.offsets = value;
-		if(_layoutFeatures.offsets != null)
-			_layoutFeatures.offsets.addEventListener(Event.CHANGE,transformOffsetsChangedHandler);
-	}
-
-	/**
-	 * @private
-	 */
-	public function get offsets():TransformOffsets
-	{
-		return (_layoutFeatures != null)? _layoutFeatures.offsets:null;
-	}
-
-
-	/**
-	 * @private
-	 */
-	private var _maintainProjectionCenter:Boolean = false;
-
-	/**
-	 * When true, the component will keep its projection matrix centered on the middle of its bounding box.  If no projection matrix is defined
-	 * on the component, one will be added automatically.
-	 */
-	public function set maintainProjectionCenter(value:Boolean):void
-	{
-		_maintainProjectionCenter = value;
-		if(value && super.transform.perspectiveProjection == null)
-		{
-			super.transform.perspectiveProjection = new PerspectiveProjection();
-		}
-		invalidateDisplayList();
-	}
-	/**
-	 * @private
-	 */
-	public function get maintainProjectionCenter():Boolean
-	{
-		return _maintainProjectionCenter;
-	}
-
-
+    public function set offsets(value:TransformOffsets):void
+    {
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+
+        if(_layoutFeatures.offsets != null)
+            _layoutFeatures.offsets.removeEventListener(Event.CHANGE,transformOffsetsChangedHandler);
+        _layoutFeatures.offsets = value;
+        if(_layoutFeatures.offsets != null)
+            _layoutFeatures.offsets.addEventListener(Event.CHANGE,transformOffsetsChangedHandler);
+    }
+
+    /**
+     * @private
+     */
+    public function get offsets():TransformOffsets
+    {
+        return (_layoutFeatures != null)? _layoutFeatures.offsets:null;
+    }
+
+
+    /**
+     * @private
+     */
+    private var _maintainProjectionCenter:Boolean = false;
+
+    /**
+     * When true, the component will keep its projection matrix centered on the middle of its bounding box.  If no projection matrix is defined
+     * on the component, one will be added automatically.
+     */
+    public function set maintainProjectionCenter(value:Boolean):void
+    {
+        _maintainProjectionCenter = value;
+        if(value && super.transform.perspectiveProjection == null)
+        {
+            super.transform.perspectiveProjection = new PerspectiveProjection();
+        }
+        invalidateDisplayList();
+    }
+    /**
+     * @private
+     */
+    public function get maintainProjectionCenter():Boolean
+    {
+        return _maintainProjectionCenter;
+    }
+
+
     /**
      *  The transform matrix that is used to calculate the component's layout relative to its siblings. This matrix
      *  is defined by the component's 2D properties such as x, y, rotation,
      *  scaleX, scaleY, transformX, and transformY.
      *
This matrix is modified by the values of the offset property to determine its final, computed matrix.

      */
-	public function get layoutMatrix():Matrix
-	{
-		if(_layoutFeatures != null)
-		{
-			return _layoutFeatures.layoutMatrix;
-		}
-		else
-		{
-			return super.transform.matrix;
-		}
-	}
-
-	/**
-	 * @private
-	 */
-	public function set layoutMatrix(value:Matrix):void
-	{
-		if(_layoutFeatures == null)
-		{
-			super.transform.matrix = value;
+    public function get layoutMatrix():Matrix
+    {
+        if(_layoutFeatures != null)
+        {
+            return _layoutFeatures.layoutMatrix;
+        }
+        else
+        {
+            return super.transform.matrix;
+        }
+    }
+
+    /**
+     * @private
+     */
+    public function set layoutMatrix(value:Matrix):void
+    {
+        if(_layoutFeatures == null)
+        {
+            super.transform.matrix = value;
             invalidateSize();
-		}
-		else
-		{
-			_layoutFeatures.layoutMatrix = value;
-	   		invalidateTransform();
-	   		invalidateParentSizeAndDisplayList();
-  		}
-	}
-
-	/**
-	 * A utility method to update the rotation and scale of the transform while keeping a particular point, specified in the component's own coordinate space,
-	 * fixed in the parent's coordinate space.  This function will assign the rotation and scale values provided, then update the x/y/z properties
-	 * as necessary to keep tx/ty/tz fixed.
-	 * @param rx,ry,rz the new values for the rotation of the transform
-	 * @param sx,sy,sz the new values for the scale of the transform
-	 * @param tx,ty,tz the point, in the component's own coordinates, to keep fixed relative to its parent.
-	 */
-	public function transformAround(rx:Number,ry:Number,rz:Number,sx:Number,sy:Number,sz:Number,tx:Number,ty:Number,tz:Number):void
-	{
-		if(_layoutFeatures == null && (
-			(!isNaN(rx) && rx != 0) ||
-			(!isNaN(ry) && ry != 0) ||
-			(!isNaN(sz) && sz != 1)
-			))
-		{
-			initAdvancedLayoutFeatures();
-		}
-		if(_layoutFeatures != null)
-		{
-			_layoutFeatures.transformAround(rx,ry,rz,sx,sy,sz,tx,ty,tz,true);
-			invalidateTransform();
-	   		invalidateParentSizeAndDisplayList();
-		}
-		else
-		{
-			var xformedPt:Point = super.transform.matrix.transformPoint(new Point(tx,ty));
-			if(!isNaN(rz))
-			rotation = rz;
-			if(!isNaN(sx))
-				scaleX = sx;
-			if(!isNaN(sx))
-				scaleY = sy;
-			var postXFormPoint:Point = super.transform.matrix.transformPoint(new Point(tx,ty));
-			x += xformedPt.x - postXFormPoint.x;
-			y += xformedPt.y - postXFormPoint.y;
-		}
-	}
+        }
+        else
+        {
+            _layoutFeatures.layoutMatrix = value;
+            invalidateTransform();
+            invalidateParentSizeAndDisplayList();
+        }
+    }
+
+    /**
+     * A utility method to update the rotation and scale of the transform while keeping a particular point, specified in the component's own coordinate space,
+     * fixed in the parent's coordinate space.  This function will assign the rotation and scale values provided, then update the x/y/z properties
+     * as necessary to keep tx/ty/tz fixed.
+     * @param rx,ry,rz the new values for the rotation of the transform
+     * @param sx,sy,sz the new values for the scale of the transform
+     * @param tx,ty,tz the point, in the component's own coordinates, to keep fixed relative to its parent.
+     */
+    public function transformAround(rx:Number,ry:Number,rz:Number,sx:Number,sy:Number,sz:Number,tx:Number,ty:Number,tz:Number):void
+    {
+        if(_layoutFeatures == null && (
+            (!isNaN(rx) && rx != 0) ||
+            (!isNaN(ry) && ry != 0) ||
+            (!isNaN(sz) && sz != 1)
+            ))
+        {
+            initAdvancedLayoutFeatures();
+        }
+        if(_layoutFeatures != null)
+        {
+            _layoutFeatures.transformAround(rx,ry,rz,sx,sy,sz,tx,ty,tz,true);
+            invalidateTransform();
+            invalidateParentSizeAndDisplayList();
+        }
+        else
+        {
+            var xformedPt:Point = super.transform.matrix.transformPoint(new Point(tx,ty));
+            if(!isNaN(rz))
+            rotation = rz;
+            if(!isNaN(sx))
+                scaleX = sx;
+            if(!isNaN(sx))
+                scaleY = sy;
+            var postXFormPoint:Point = super.transform.matrix.transformPoint(new Point(tx,ty));
+            x += xformedPt.x - postXFormPoint.x;
+            y += xformedPt.y - postXFormPoint.y;
+        }
+    }

     /**
      *  The transform matrix that is used to calculate a component's layout relative to its siblings. This matrix is defined by
@@ -9907,78 +9907,78 @@
      *
      *
This matrix is modified by the values of the offset property to determine its final, computed matrix.

      */
-	public function set layoutMatrix3D(value:Matrix3D):void
-	{
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-		_layoutFeatures.layoutMatrix3D = value;
-		invalidateTransform();
-   		invalidateParentSizeAndDisplayList();
-	}
-
-	/**
-	 * @private
-	 */
-	public function get layoutMatrix3D():Matrix3D
-	{
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-		return _layoutFeatures.layoutMatrix3D;
-	}
-
-
-	/**
-	 * Determines the order in which items inside of groups are rendered. Groups order their items based on their layer property, with the lowest layer
-	 * in the back, and the higher in the front.  items with the same layer value will appear in the order they are added to the Groups item list.
-	 *
-	 * defaults to 0
-	 *
-	 * @default 0
-	 */
-	public function get layer():Number
-	{
-		return (_layoutFeatures == null)? 0:_layoutFeatures.layer;
-	}
-
-	[Bindable("layerChange")]
-	/**
-	 * @private
-	 */
-	public function set layer(value:Number):void
-	{
-		if(value == layer)
-			return;
-		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-		_layoutFeatures.layer = value;
-		dispatchEvent(new FlexEvent("layerChange"));
-		if(parent != null && parent is UIComponent)
-			(parent as UIComponent).invalidateLayering();
-	}
-
-	/**
+    public function set layoutMatrix3D(value:Matrix3D):void
+    {
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.layoutMatrix3D = value;
+        invalidateTransform();
+        invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     * @private
+     */
+    public function get layoutMatrix3D():Matrix3D
+    {
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        return _layoutFeatures.layoutMatrix3D;
+    }
+
+
+    /**
+     * Determines the order in which items inside of groups are rendered. Groups order their items based on their layer property, with the lowest layer
+     * in the back, and the higher in the front.  items with the same layer value will appear in the order they are added to the Groups item list.
+     *
+     * defaults to 0
+     *
+     * @default 0
+     */
+    public function get layer():Number
+    {
+        return (_layoutFeatures == null)? 0:_layoutFeatures.layer;
+    }
+
+    [Bindable("layerChange")]
+    /**
+     * @private
+     */
+    public function set layer(value:Number):void
+    {
+        if(value == layer)
+            return;
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        _layoutFeatures.layer = value;
+        dispatchEvent(new FlexEvent("layerChange"));
+        if(parent != null && parent is UIComponent)
+            (parent as UIComponent).invalidateLayering();
+    }
+
+    /**
      *  Called by a component's items to indicate that their layer property has changed.
      *  Note that while this function is defined on UIComponent, it is up to subclasses
      *  to implement support for complex layering.  By default, only Groups support
      *  arbitrary layering of their children.
-	 */
+     */
     public function invalidateLayering():void
     {

     }

-	/**
-	 * Commits the computed matrix built from the combination of the layout matrix and the transform offsets to the flash displayObject's transform.
-	 */
-	protected function applyComputedTransform():void
-	{
-		_layoutFeatures.updatePending = false;
-		if(_layoutFeatures.is3D)
-		{
-			super.transform.matrix3D = _layoutFeatures.computedMatrix3D;
-		}
-		else
-		{
-			super.transform.matrix = _layoutFeatures.computedMatrix;
-		}
-	}
+    /**
+     * Commits the computed matrix built from the combination of the layout matrix and the transform offsets to the flash displayObject's transform.
+     */
+    protected function applyComputedTransform():void
+    {
+        _layoutFeatures.updatePending = false;
+        if(_layoutFeatures.is3D)
+        {
+            super.transform.matrix3D = _layoutFeatures.computedMatrix3D;
+        }
+        else
+        {
+            super.transform.matrix = _layoutFeatures.computedMatrix;
+        }
+    }

 }


DynamicTextureController is now using a data provider

--- src/aerys/minko/scene/controller/mesh/DynamicTextureController.as
+++ src/aerys/minko/scene/controller/mesh/DynamicTextureController.as
@@ -6,6 +6,7 @@
 	import aerys.minko.scene.node.ISceneNode;
 	import aerys.minko.scene.node.Scene;
 	import aerys.minko.scene.node.mesh.Mesh;
+	import aerys.minko.type.data.DataProvider;

 	import flash.display.BitmapData;
 	import flash.display.DisplayObject;
@@ -26,6 +27,8 @@
 	 */
 	public final class DynamicTextureController extends EnterFrameController
 	{
+		private var _data			: DataProvider		= null;
+
 		private var _source			: DisplayObject		= null;
 		private var _framerate		: Number			= 0.;
 		private var _mipMapping		: Boolean			= false;
@@ -59,7 +62,7 @@
 												 propertyName	: String	= 'diffuseMap',
 												 matrix			: Matrix	= null)
 		{
-			super(Mesh);
+			super();

 			_source = source;
 			_texture = new TextureResource(width, height);
@@ -67,6 +70,9 @@
 			_mipMapping = mipMapping;
 			_propertyName = propertyName;
 			_matrix = matrix;
+
+			_data = new DataProvider();
+			_data.setProperty(propertyName, _texture);
 		}

 		override protected function targetAddedHandler(ctrl		: EnterFrameController,
@@ -74,7 +80,13 @@
 		{
 			super.targetAddedHandler(ctrl, target);

-			(target as Mesh).properties.setProperty(_propertyName, _texture);
+//			(target as Mesh).properties.setProperty(_propertyName, _texture);
+			if (target is Scene)
+				(target as Scene).bindings.addProvider(_data);
+			else if (target is Mesh)
+				(target as Mesh).bindings.addProvider(_data);
+			else
+				throw new Error();
 		}

 		override protected function targetRemovedHandler(ctrl	: EnterFrameController,
@@ -82,7 +94,12 @@
 		{
 			super.targetRemovedHandler(ctrl, target);

-			(target as Mesh).properties.removeProperty(_propertyName);
+//			(target as Mesh).properties.removeProperty(_propertyName);
+
+			if (target is Scene)
+				(target as Scene).bindings.removeProvider(_data);
+			else if (target is Mesh)
+				(target as Mesh).bindings.removeProvider(_data);
 		}

 		override protected function sceneEnterFrameHandler(scene	: Scene,


Transferred from the Adobe Open Source Subversion Repository

Revision: 20360
Author:   aharui@adobe.com
Date:     2011-02-17T22:46:12.674334Z

Log Message:
-----------
Leverage REMOVED_FROM_STAGE to do clean up of the systemManager property.

QE notes: none
Doc notes:  none
Bugs: SDK-29500
Reviewer: Ryan
Tests run: checkintests mustella cyclone full run
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1694,6 +1694,7 @@

         addEventListener(Event.ADDED, addedHandler);
         addEventListener(Event.REMOVED, removedHandler);
+        addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);

         // Register for focus and keyboard events.
         if (this is IFocusManagerComponent)
@@ -12343,7 +12344,7 @@
     {
         if (event.eventPhase != EventPhase.AT_TARGET)
             return;
-
+
         try
         {
             if (parent is IContainer && IContainer(parent).creatingContentPane)
@@ -12354,9 +12355,16 @@
         }
         catch (error:SecurityError)
         {
-
-        }
-        invalidateSystemManager();
+
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function removedFromStageHandler(event:Event):void
+    {
+        _systemManagerDirty = true;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 20369
Author:   pfarland@adobe.com
Date:     2011-02-18T01:11:06.327959Z

Log Message:
-----------
Fixing ObjectUtil's clone method to not create a "uid" property on the result if the source object did not have this property.

QE notes: Please check ObjectUtil.clone() works for objects with and without a uid property, in addition to the Array scenario in the test case.
Doc notes: N/A
Bugs: SDK-29550
Reviewer: Corey
Tests run: checkintests, cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/ObjectUtil.as

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

--- frameworks/projects/framework/src/mx/utils/ObjectUtil.as
+++ frameworks/projects/framework/src/mx/utils/ObjectUtil.as
@@ -158,7 +158,9 @@
      */
     private static function cloneInternal(result:Object, value:Object):void
     {
-        result.uid = value.uid;
+		if (value && value.hasOwnProperty("uid"))
+            result.uid = value.uid;
+
         var classInfo:Object = getClassInfo(value);
         var v:Object;
         for each (var p:* in classInfo.properties)


Use ‘true’ and ‘false’ instead of ‘on’ and ‘off’.

--- src/goplayer/ConfigurationParser.as
+++ src/goplayer/ConfigurationParser.as
@@ -96,7 +96,7 @@
         { return $$getBoolean(value) }
       catch (error : Error)
         {
-          reportInvalidParameter(name, value, ["on", "off"])
+          reportInvalidParameter(name, value, ["true", "false"])
           return fallback
         }

@@ -105,9 +105,9 @@

     private function $$getBoolean(value : String) : Boolean
     {
-      if (value == "on")
+      if (value == "true")
         return true
-      else if (value == "off")
+      else if (value == "false")
         return false
       else
         throw new Error


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

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

--- frameworks/projects/mx/src/mx/controls/HorizontalList.as
+++ frameworks/projects/mx/src/mx/controls/HorizontalList.as
@@ -0,0 +1,108 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-2007 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls
+{
+
+import mx.controls.listClasses.TileBase;
+import mx.controls.listClasses.TileBaseDirection;
+import mx.core.mx_internal;
+import mx.core.ScrollPolicy;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="direction", kind="property")]
+[Exclude(name="maxColumns", kind="property")]
+[Exclude(name="maxRows", kind="property")]
+[Exclude(name="variableRowHeight", kind="property")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[DefaultBindingProperty(source="selectedItem", destination="dataProvider")]
+
+[DefaultProperty("dataProvider")]
+
+[DefaultTriggerEvent("change")]
+
+[IconFile("HorizontalList.png")]
+
+/**
+ *  The HorizontalList control displays a horizontal list of items.
+ *  If there are more items than can be displayed at once, it
+ *  can display a horizontal scroll bar so the user can access
+ *  all items in the list.
+ *
+ *
The HorizontalList control has the following default sizing
+ *     characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           Four columns, with size determined by the
+ *               cell dimensions.
+ *

+ *

+ *           Minimum size
+ *           0 pixels.
+ *

+ *

+ *           Maximum size
+ *           5000 by 5000.
+ *

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:HorizontalList> tag inherits all of the
+ *  tag attributes of its superclass and it adds no new tag attributes.

+ *
+ *

+ *  <mx:HorizontalList/&gt
+ *

+ *
+ *  @includeExample examples/HorizontalListExample.mxml
+ */
+public class HorizontalList extends TileBase
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function HorizontalList()
+	{
+		super();
+
+		_horizontalScrollPolicy = ScrollPolicy.AUTO;
+		_verticalScrollPolicy = ScrollPolicy.OFF;
+
+		direction = TileBaseDirection.VERTICAL;
+		maxRows = 1;
+		defaultRowCount = 1;
+	}
+}
+
+}


Optimized, about 50x faster when dealing with 400 static objects

--- fp9/src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
+++ fp9/src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
@@ -30,8 +30,8 @@
 package as3isolib.display.renderers
 {
 	import as3isolib.bounds.IBounds;
-	import as3isolib.core.IIsoDisplayObject;
 	import as3isolib.core.as3isolib_internal;
+	import as3isolib.core.IsoDisplayObject;
 	import as3isolib.display.scene.IIsoScene;
 	import flash.utils.Dictionary;

@@ -55,11 +55,15 @@
 		{
 			var startTime:uint = getTimer();

-			// Rewrite #2 by David Holz, naive dependency version
+			// Rewrite #2 by David Holz, dependency version (naive for now)
+
+			// TODO - screen space subdivision to limit dependency scan
+			// TODO - cache dependencies between frames, only adjust invalidated objects, keeping old ordering as best as possible

 			// IIsoDisplayObject -> [obj that should be behind the key]
 			var dependency:Dictionary = new Dictionary();

+			// For now, use the non-rearranging display list so that the dependency sort will tend to create similar output each pass
 			var children:Array = scene.displayListChildren;

 			// Full naive cartesian scan, see what objects are behind child[i]
@@ -68,24 +72,31 @@
 			{
 				var behind:Array = [];

-				var objA:IIsoDisplayObject = children[i];
-				var boundsA:IBounds = objA.isoBounds;
+				var objA:IsoDisplayObject = children[i];

+				// TODO - direct access ("public var isoX" instead of "function get x") of the object's fields is a TON faster.
+				//   Even "final function get" doesn't inline it to direct access, yielding the same speed as plain "function get".
+				//   use namespaces to provide raw access?
+				//   rename interface class = IsoDisplayObject, concrete class = IsoDisplayObject_impl with public fields?
+
+				//var rightA:Number = objA.isoX + objA.isoWidth;
+				//var frontA:Number = objA.isoY + objA.isoLength;
+				//var topA:Number = objA.isoZ + objA.isoHeight;
+
+				// TODO - getting bounds objects REALLY slows us down, too.  It creates a new one every time you ask for it!
+				var rightA:Number = objA.x + objA.width;
+				var frontA:Number = objA.y + objA.length;
+				var topA:Number = objA.z + objA.height;
+
 				for (var j:uint = 0; j < max; ++j)
 				{
-					var objB:IIsoDisplayObject = children[j];
-					var boundsB:IBounds = objB.isoBounds;
+					var objB:IsoDisplayObject = children[j];

 					// See if B should go behind A
-					if (// Behind in any axis,
-					    ((boundsB.top <= boundsA.bottom) ||
-						 (boundsB.right <= boundsA.left) ||
-						 (boundsB.front <= boundsA.back))
-						&&
-						// but not in front in any other axis
-						!((boundsB.bottom >= boundsA.top) ||
-						  (boundsB.left >= boundsA.right) ||
-						  (boundsB.back >= boundsA.front)))
+					// simplest possible check, interpenetrations also count as "behind", which does do a bit more work later, but the inner loop tradeoff for a faster check makes up for it
+					if ((objB.x < rightA) &&
+					    (objB.y < frontA) &&
+						(objB.z < topA))
 					{
 						behind.push(objB);
 					}
@@ -93,23 +104,27 @@
 				dependency[objA] = behind;
 			}

+			trace("dependency scan time", getTimer() - startTime, "ms");
+
+			// TODO - set the invalidated children first, then do a rescan to make sure everything else is where it needs to be, too?  probably need to order the invalidated children sets from low to high index
+
 			// Set the childrens' depth, using dependency ordering
 			var depth:uint = 0;
 			var visited:Dictionary = new Dictionary();
-			var place:Function = function(obj:IIsoDisplayObject):void
+			var place:Function = function(obj:IsoDisplayObject):void
 			{
 				if (visited[obj])
 					return;
 				visited[obj] = true;

-				for each(var inner:IIsoDisplayObject in dependency[obj])
+				for each(var inner:IsoDisplayObject in dependency[obj])
 					place(inner);

 				scene.setChildIndex(obj, depth);
 				++depth;
 			};

-			for each(var obj:IIsoDisplayObject in children)
+			for each(var obj:IsoDisplayObject in children)
 			{
 				place(obj);
 			}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4170
Author:   egeorgie@adobe.com
Date:     2008-11-23T21:12:27.092823Z

Log Message:
-----------
1.	mx.layout.ILayoutItem gets renamed to mx.layout.ILayoutElement
2.	get actualPosition() -> getLayoutPositionX(postTransform:Boolean=true):Number, getLayoutPositionY(postTransform:Boolean=true):Number
3.	get actualSize() -> getLayoutWidth(postTransform:Boolean=true):Number, getLayoutHeight(postTransform:Boolean=true):Number
4.	get preferredSize() -> getPreferredWidth(postTransform:Boolean=true):Number, getPreferredHeight(postTransform:Boolean=true):Number
5.	get minSize() -> getMinWidth(postTransform:Boolean=true):Number, getMinHeight(postTransform:Boolean=true):Number
6.	get maxSize() -> getMaxWidth(postTransform:Boolean=true):Number, getMaxHeight(postTransform:Boolean=true):Number
7.	setActualSize() -> setlayoutSize(width:Number=NaN, height:Number=NaN, postTransform:Boolean=true):void
8.	setActualPosition() -> setLayoutPosition(width:Number=NaN, height:Number=NaN, postTransform:Boolean=true):void
10.     Add support for custom 3D layouts by exposing access to transform matrices through the ILayoutElement interface.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Hans
tests: checkintests, mustella (gumbo/components)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/graphics/GraphicTags_checkintests.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFactory.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFactory.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFDO.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementUIC.as</path>

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

--- frameworks/projects/spark/src/spark/components/Button.as
+++ frameworks/projects/spark/src/spark/components/Button.as
@@ -739,8 +739,8 @@
         // Check if the label text is truncated
         // TODO EGeorgie: use TextGraphicElement API to check for truncated text.
         labelField.validateNow();
-        var truncated:Boolean = labelField.actualSize.x < labelField.preferredSize.x ||
-                                labelField.actualSize.y < labelField.preferredSize.y;
+        var truncated:Boolean = labelField.getLayoutWidth() < labelField.getPreferredWidth() ||
+                                labelField.getLayoutHeight() < labelField.getPreferredHeight();

         // If the label is truncated, show the whole label string as a tooltip
         super.toolTip = truncated ? labelField.text : null;


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

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

--- frameworks/projects/advancedgrids/src/mx/controls/OLAPDataGrid.as
+++ frameworks/projects/advancedgrids/src/mx/controls/OLAPDataGrid.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 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.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.controls
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2549
Author:   jszeto@adobe.com
Date:     2008-07-21T23:17:06.087224Z

Log Message:
-----------
Flex SDK Bug Fix

MXMLG-84 - noScale is an invalid value for Stroke scaleMode and should be removed from ASDocs

Updated asdoc

QA: No
Doc: Yes
Review: Deepa

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as

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

--- frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as
+++ frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as
@@ -321,13 +321,34 @@
 	[Bindable("propertyChange")]
 	[Inspectable(category="General", enumeration="normal,vertical,horizontal,none", defaultValue="normal")]

-	/**
-	 *  Specifies how to scale a stroke.
-	 *  Valid values are "normal", "none",
-	 *  "vertical", and "noScale".
-	 *
-	 *  @default "normal"
-	 */
+	 /**
+     *  A value from the LineScaleMode class
+     *  that  specifies which scale mode to use.
+     *  Value valids are:
+     *
+     *

+     *

+     *  LineScaleMode.NORMAL—
+     *  Always scale the line thickness when the object is scaled  (the default).
+     *

+     *

+     *  LineScaleMode.NONE—
+     *  Never scale the line thickness.
+     *

+     *

+     *  LineScaleMode.VERTICAL—
+     *  Do not scale the line thickness if the object is scaled vertically
+     *  only.
+     *

+     *

+     *  LineScaleMode.HORIZONTAL—
+     *  Do not scale the line thickness if the object is scaled horizontally
+     *  only.
+     *

+     *

+     *
+     *  @default LineScaleMode.NORMAL
+     */
 	public function get scaleMode():String
 	{
 		return _scaleMode;


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@1261238 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/graphics/codec/PNGEncoder.as
+++ frameworks/projects/framework/src/mx/graphics/codec/PNGEncoder.as
@@ -20,6 +20,11 @@
  *  images using Portable Network Graphics (PNG) lossless compression.
  *
  *
For the PNG specification, see http://www.w3.org/TR/PNG/
.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class PNGEncoder implements IImageEncoder
 {
@@ -45,6 +50,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function PNGEncoder()
     {
@@ -79,6 +89,11 @@
     /**
      *  The MIME type for the PNG encoded image.
      *  The value is "image/png".
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get contentType():String
     {
@@ -98,6 +113,11 @@
      *  @param bitmapData The input BitmapData object.
      *
      *  @return Returns a ByteArray object containing PNG-encoded image data.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function encode(bitmapData:BitmapData):ByteArray
     {
@@ -128,6 +148,11 @@
      *  as four bytes in ARGB format.
      *
      *  @return Returns a ByteArray object containing PNG-encoded image data.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function encodeByteArray(byteArray:ByteArray, width:int, height:int,
 									transparent:Boolean = true):ByteArray


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@1269832 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/skins/halo/MenuBarBackgroundSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/MenuBarBackgroundSkin.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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

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

--- frameworks/projects/automation/src/mx/automation/codec/AutomationObjectPropertyCodec.as
+++ frameworks/projects/automation/src/mx/automation/codec/AutomationObjectPropertyCodec.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 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.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.automation.codec
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5309
Author:   gruehle@adobe.com
Date:     2009-03-13T21:54:51.752954Z

Log Message:
-----------
Add Spark style metadata to Halo components.

baseColor - added to:
 UIComponent
 ScrollControlBase

symbolColor - added to:
 CheckBox
 ComboBase
 Container
 DateChooser
 ScrollBar
 NumericStepper
 PopUpButton
 RadioButton
 ScrollControlBase

contentBackgroundColor - added to:
 ComboBase
 Container
 DateChooser
 NumericStepper
 ScrollControlBase
 TextInput

focusColor - added to:
 Button
 ComboBase
 Container
 DateChooser
 NumericStepper
 ScrollControlBase
 Slider
 TextInput

The remaining Spark styles - alternatingItemColors, rollOverColor, and selectionColor are already defined for the Halo components.

Modified Paths:
--------------
<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/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.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/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Button.as
+++ frameworks/projects/mx/src/mx/controls/Button.as
@@ -117,6 +117,18 @@
 include "../styles/metadata/PaddingStyles.as"
 include "../styles/metadata/SkinStyles.as"
 include "../styles/metadata/TextStyles.as"
+
+/**
+ *  Color of focus ring when the component is in focus
+ *
+ *  @default 0x70B2EE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="focusColor", type="uint", format="Color", inherit="yes")]

 /**
  *  Gap between the label and icon, when the labelPlacement property


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

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

--- frameworks/projects/framework/src/mx/effects/Rotate.as
+++ frameworks/projects/framework/src/mx/effects/Rotate.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-2007 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.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.effects
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20844
Author:   jimurphy@adobe.com
Date:     2011-03-14T15:10:07.899037Z

Log Message:
-----------
block hero_private revs 20698,20699,20702 from being merged into trunk
revert 20839,20841,20842,20843

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

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

--- frameworks/projects/framework/src/mx/geom/Transform.as
+++ frameworks/projects/framework/src/mx/geom/Transform.as
@@ -25,29 +25,26 @@
 import mx.core.mx_internal;

 use namespace mx_internal;
-
+
 /**
- *  Adds synchronization support on top of the flash.geom.Transform class.
- *  The class has a target property which is the IVisualElement that the Transform has been assigned to.
- *  The IVisualElement implementations typically set the target to themselves when the Transform
- *  is assigned to their transform property.
+ *  The mx.geom.Transform class adds synchronization support on top of the flash.geom.Transform class.
+ *  The class has a target property which is the IVisualElement that the Transform has been assigned to.
+ *  The IVisualElement implementations will typically set the target to themselves when the Transform
+ *  is assigned to their transform property.
  *
- *
Changes to the Transform properties automatically get pushed to the target. Reading from the Transform
- *  properties reads directly from the target's transform.

- *
- *  @see flash.geom.Transform
+ *  Changes to the Transform properties automatically get pushed to the target. Reading from the Transform
+ *  properties reads directly from the target's transform.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
- */
+ */
 public class Transform extends flash.geom.Transform
 {
     /**
      *  Constructor.
      *
-     *  @param src The target of the transform.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -156,11 +153,6 @@
     // we will need to update
     /**
      *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
      */
     override public function set matrix3D(value:Matrix3D):*
     {
@@ -261,11 +253,6 @@

     /**
      *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
      */
     override public function getRelativeMatrix3D(relativeTo:DisplayObject):Matrix3D
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4736
Author:   chaase@adobe.com
Date:     2009-01-29T19:31:04.898445Z

Log Message:
-----------
API improvements in some of the effects classes, such as:

- PropertyValuesHolder renamed to AnimationProperty
	- Also, values[] array changed to valueFrom and valueTo Objects
	- Also, 'delta' property changed to valueBy Object property
- FxAnimate.propertyValuesList renamed to FxAnimate.animationProperties
- Constant interpolator renamed Linear (old Linear interpolator went away)
- ColorInterpolator renamed RGBInterpolator
- HSBInterpolator now exists (not used by default: FxAnimateColor uses RGBInterpolator)
- HSBColor: new data structure in mx.utils for holding HSB colors and converting from/to RGB
- various changes to *Instance classes in effects (but these are not generally used externally)

QE Notes: Mustella tests will break due to class and property renames. QE is fixing these issues and a follow-up putback to Mustella is expected
Doc Notes: None
Bugs: -
Reviewer: Gordon
tests: checkintests, Mustella: tests/Effects tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Constant.as" copyfrom-rev="4610" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ColorInterpolator.as" copyfrom-rev="4610" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/RGBInterpolator.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/HSBColor.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ColorInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateShaderTransitionInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Constant.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/IInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/EaseInOut.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AnimationProperty.as</path>

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

--- frameworks/projects/framework/src/mx/utils/HSBColor.as
+++ frameworks/projects/framework/src/mx/utils/HSBColor.as
@@ -0,0 +1,173 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.utils
+{
+/**
+ * This class holds information for a color represented in HSB (Hue, Saturation,
+ * and Brightness) space. The main use of the class is simply as storage for
+ * these values, but there are also some utility functions for converting
+ * from and to RGB representations of colors.
+ */
+public final class HSBColor
+{
+    /**
+     * Constructs an HSVColor with optional parameters
+     */
+    public function HSBColor(hue:Number = NaN, saturation:Number = NaN,
+        brightness:Number = NaN)
+    {
+        this.hue = hue;
+        this.saturation = saturation;
+        this.brightness = brightness;
+    }
+
+    private var _hue:Number;
+    /**
+     * The hue value for the HSV color. This represents an angle, in
+     * degrees, around the HSV cone. The supplied value will be modulated
+     * by 360 so that the stored value of hue will be in the range [0,360).
+     */
+    public function get hue():Number
+    {
+        return _hue;
+    }
+    public function set hue(value:Number):void
+    {
+        _hue = value % 360;
+    }
+
+    private var _saturation:Number;
+    /**
+     * The saturation parameter for this HSV color. This is a value between
+     * 0 (black) and 1 (full saturation), which represents the distance
+     * from the center in the HSV cone.
+     */
+    public function get saturation():Number
+    {
+        return _saturation;
+    }
+    public function set saturation(value:Number):void
+    {
+        _saturation = value;
+    }
+
+    private var _brightness:Number;
+    /**
+     * The brightness parameter for this HSB color. This is a value between
+     * 0 (black) and 1 (full brightness), which represents the distance
+     * from the apex of the HSB cone.
+     */
+    public function get brightness():Number
+    {
+        return _brightness;
+    }
+    public function set brightness(value:Number):void
+    {
+        _brightness = value;
+    }
+
+    /**
+     * Converts and HSB color specified by the parameters to a
+     * uint RGB color.
+     */
+    public static function HSBtoRGB(hue:Number, saturation:Number,
+        brightness:Number):uint
+    {
+        // Conversion taken from Foley, van Dam, et al
+        var r:Number, g:Number, b:Number;
+        if (saturation == 0)
+        {
+            r = g = b = brightness;
+        }
+        else
+        {
+            var h:Number = (hue % 360) / 60;
+            var i:int = int(h);
+            var f:Number = h - i;
+            var p:Number = brightness * (1 - saturation);
+            var q:Number = brightness * (1 - (saturation * f));
+            var t:Number = brightness * (1 - (saturation * (1 - f)));
+            switch (i) {
+                case 0:
+                    r = brightness;
+                    g = t;
+                    b = p;
+                    break;
+                case 1:
+                    r = q;
+                    g = brightness;
+                    b = p;
+                    break;
+                case 2:
+                    r = p;
+                    g = brightness;
+                    b = t;
+                    break;
+                case 3:
+                    r = p;
+                    g = q;
+                    b = brightness;
+                    break;
+                case 4:
+                    r = t;
+                    g = p;
+                    b = brightness;
+                    break;
+                case 5:
+                    r = brightness;
+                    g = p;
+                    b = q;
+                    break;
+            }
+        }
+        r *= 255;
+        g *= 255;
+        b *= 255;
+        return (r << 16 | g << 8 | b);
+    }
+
+    /**
+     * Converts a color from RGB format into an HSBColor
+     */
+    static public function RGBtoHSB(rgb:uint):HSBColor
+    {
+        // Conversion taken from Foley, van Dam, et al
+        var hue:Number, saturation:Number, brightness:Number;
+        var r:Number = ((rgb >> 16) & 0xff) / 255;
+        var g:Number = ((rgb >> 8) & 0xff) / 255;
+        var b:Number = (rgb & 0xff) / 255;
+        var max:Number = Math.max(r, Math.max(g, b));
+        var min:Number = Math.min(r, Math.min(g, b));
+        var delta:Number = max - min;
+        brightness = max;
+        if (max != 0)
+            saturation = delta / max;
+        else
+            saturation = 0;
+        if (saturation == 0)
+            hue = NaN;
+        else
+        {
+            if (r == max)
+                hue = (g - b) / delta;
+            else if (g == max)
+                hue = 2 + (b - r) / delta
+            else if (b == max)
+                hue = 4 + (r - g) / delta;
+            hue = hue * 60;
+            if (hue < 0)
+                hue += 360;
+        }
+        return new HSBColor(hue, saturation, brightness);
+    }
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12558
Author:   egeorgie@adobe.com
Date:     2009-12-04T23:10:43.459419Z

Log Message:
-----------
Fix http://bugs.adobe.com/jira/browse/SDK-24457 A Path does not get filled in sometimes if the Path's lines cross

Problem: There's a bug in DAPI2 that a single unconnected quadratic segment doesn't get filled.
Fix: Detect the case and draw a zero-length line segment to force correct fill.

QE notes: None
Doc notes: None
Bugs: SDK-24457
Reviewer: Deepa
Tests run: checkintests, mustella spark/primitives
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as

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

--- frameworks/projects/spark/src/spark/primitives/Path.as
+++ frameworks/projects/spark/src/spark/primitives/Path.as
@@ -1005,6 +1005,7 @@
 		var controlY:Number;
 		var control2X:Number;
 		var control2Y:Number;
+        var lastMoveSegmentIndex:int = -1;

 		_dataLength = charCount;
 		_charPos = 0;
@@ -1058,13 +1059,28 @@
 					x = getNumber(useRelative, prevX, value);
 					y = getNumber(useRelative, prevY, value);
 					newSegments.push(new MoveSegment(x, y));
-					lastMoveX = x;
-					lastMoveY = y;
 					prevX = x;
 					prevY = y;
 					// If a moveto is followed by multiple pairs of coordinates,
 					// the subsequent pairs are treated as implicit lineto commands.
 					prevIdentifier = (c == 0x6D) ? 0x6C : 0x4C; // c == 'm' ? 'l' : 'L'
+
+                    // Fix for bug SDK-24457:
+                    // If the Quadratic segment is isolated, the Player
+                    // won't draw fill correctly. We need to generate
+                    // a dummy line segment.
+                    var curSegmentIndex:int = newSegments.length - 1;
+                    if (lastMoveSegmentIndex + 2 == curSegmentIndex &&
+                        newSegments[lastMoveSegmentIndex + 1] is QuadraticBezierSegment)
+                    {
+                        // Insert a dummy LineSegment
+                        newSegments.splice(lastMoveSegmentIndex + 1, 0, new LineSegment(lastMoveX, lastMoveY));
+                        curSegmentIndex++;
+                    }
+
+                    lastMoveSegmentIndex = curSegmentIndex;
+                    lastMoveX = x;
+                    lastMoveY = y;
 					break;

 				case 0x6C:	// l
@@ -1099,7 +1115,7 @@

 				case 0x71:	// q
 				case 0x51:	// Q
-					controlX = getNumber(useRelative, prevX, value);
+                    controlX = getNumber(useRelative, prevX, value);
 					controlY = getNumber(useRelative, prevY, value);
 					x = getNumber(useRelative, prevX, value);
 					y = getNumber(useRelative, prevY, value);
@@ -1107,7 +1123,6 @@
 					prevX = x;
 					prevY = y;
 					prevIdentifier = 0x71;
-
 					break;

 				case 0x74:	// t
@@ -1175,6 +1190,20 @@
 					return;
 			}
 		}
+
+        // Fix for bug SDK-24457:
+        // If the Quadratic segment is isolated, the Player
+        // won't draw fill correctly. We need to generate
+        // a dummy line segment.
+        curSegmentIndex = newSegments.length;
+        if (lastMoveSegmentIndex + 2 == curSegmentIndex &&
+            newSegments[lastMoveSegmentIndex + 1] is QuadraticBezierSegment)
+        {
+            // Insert a dummy LineSegment
+            newSegments.splice(lastMoveSegmentIndex + 1, 0, new LineSegment(lastMoveX, lastMoveY));
+            curSegmentIndex++;
+        }
+
 		_segments = newSegments;
 	}


videoplayer now plays from the beginning if it is paused on the end, when reversesOnComplete was set to false

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@150 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/media/AbstractPlayer.as
+++ src/reprise/media/AbstractPlayer.as
@@ -46,6 +46,7 @@
 		public static const STATUS_SHOULD_PLAY:uint = 1 << 5;
 		public static const STATUS_BUFFER_FULL:uint = 1 << 6;
 		public static const STATUS_DID_AUTOPLAY:uint = 1 << 7;
+		public static const STATUS_PAUSED_AT_END:uint = 1 << 8;
 		public static const BUFFERING_RELEVANT_STATUS:uint =
 			STATUS_DURATION_KNOWN | STATUS_FILESIZE_KNOWN | STATUS_BANDWIDTH_KNOWN;

@@ -168,6 +169,11 @@

 		public function play():void
 		{
+			if (m_status & STATUS_PAUSED_AT_END)
+			{
+				stop();
+			}
+
 			load();
 			m_status |= STATUS_SHOULD_PLAY;

@@ -205,6 +211,7 @@
 			// again: what's ever happening right now, but we notice that the user wishes to
 			// stop the mediafile
 			m_status &= ~STATUS_SHOULD_PLAY;
+			m_status &= ~STATUS_PAUSED_AT_END;

 			if (m_state != STATE_PLAYING && m_state != STATE_PAUSED)
 			{
@@ -394,6 +401,7 @@
 				dispatchEvent(new CommandEvent(CommandEvent.COMPLETE));
 				return;
 			}
+			m_status |= STATUS_PAUSED_AT_END
 			pause();
 			dispatchEvent(new CommandEvent(CommandEvent.COMPLETE));
 		}


Added FromEventFixture

Added FromEventFixture

Removed IScheduler argument from IObservable.subscribe
Update Observable.fromEvent to support subscription schedulers
Added a known-failing test to empty fixture

--- source/RxAsTests/src/rx/tests/operators/OperatorSuite.as
+++ source/RxAsTests/src/rx/tests/operators/OperatorSuite.as
@@ -6,5 +6,6 @@
 	{
 		public var empty : EmptyFixture;
 		public var never : NeverFixture;
+		public var fromEvent : FromEventFixture;
 	}
 }