Transferred from the Adobe Open Source Subversion Repository

Revision: 11574
Author:   egeorgie@adobe.com
Date:     2009-11-09T18:53:35.299310Z

Log Message:
-----------
Drag and Drop - Bug fixes:
- Added slight delay before drag-scrolling start.
- Single selection ctrl+drag fixed.
- Default drop indicator for List that doesn't have drop indicator specified in its skin. The default DI is specified through the new dropIndicatorSkin List style.
- Memory leak for the drop indicator dynamic skin part.
- ListItemDragProxy incorrectly listed in spark-manifest.xml moved to SparkClassess.

QE notes: None
Doc notes: None
Bugs: SDK-24047, SDK-23999, SDK-23871
Reviewer: Glenn, Deepa
Tests run: checkintests, mustella (List, ListDragDrop)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListDropIndicator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/DropLocation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -1,4 +1,4 @@
-    ////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////
 //
 //  ADOBE SYSTEMS INCORPORATED
 //  Copyright 2008 Adobe Systems Incorporated
@@ -138,6 +138,21 @@
  *  @productversion Flex 4
  */
 [Style(name="dragIndicatorClass", type="Class", inherit="no")]
+
+/**
+ *  If a dropIndicator skin part is not specified in the List skin,
+ *  then an instance of this class is created and used for the default drop
+ *  indicator during drag and drop operations where the List is a potential
+ *  drop target.
+ *
+ *  @default spark.skins.spark.ListDropIndicator
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="dropIndicatorSkin", type="Class", inherit="no")]

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:rollOverColor
@@ -1235,12 +1250,17 @@
     }

     /**
-     *  @private
-     *
-     *  Gets an instance of a class that displays the visuals
-     *  during a drag and drop operation.
-     */
-    private function createDragIndicator():IFlexDisplayObject
+     *  Creates an instance of a class that is used to display the visuals
+     *  of the dragged items during a drag and drop operation.
+	 *  The default DragEvent.DRAG_START handler passes the
+	 *  instance to the DragManager.doDrag() method.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function createDragIndicator():IFlexDisplayObject
     {
         var dragIndicator:IFlexDisplayObject;
         var dragIndicatorClass:Class = Class(getStyle("dragIndicatorClass"));
@@ -1253,7 +1273,7 @@

         return dragIndicator;
     }
-
+
     /**
      *  Adds the selected items to the DragSource object as part of
      *  a drag-and-drop operation.
@@ -1315,9 +1335,9 @@
      *  @param event The MouseEvent object.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function item_mouseDownHandler(event:MouseEvent):void
     {
@@ -1341,8 +1361,11 @@

             // Check to see if we're deselecting the currently selected item
             if (event.ctrlKey && selectedIndex == newIndex)
-                selectedIndex = NO_SELECTION;
-                // Otherwise, select the new item
+			{
+				pendingSelectionOnMouseUp = true;
+				pendingSelectionCtrlKey = true;
+				pendingSelectionShiftKey = event.shiftKey;
+			}
             else
                 selectedIndex = newIndex;
         }
@@ -1399,9 +1422,9 @@
      *  @param event The MouseEvent object.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function mouseMoveHandler(event:MouseEvent):void
     {
@@ -1439,8 +1462,16 @@
         // If dragging failed, but we had a pending selection, commit it here
         if (pendingSelectionOnMouseUp && !DragManager.isDragging)
         {
-            selectedIndices = calculateSelectedIndicesInterval(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey);
-        }
+			if (allowMultipleSelection)
+			{
+            	selectedIndices = calculateSelectedIndicesInterval(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey);
+	        }
+			else
+			{
+				// Must be deselecting the current selected item.
+				selectedIndex = NO_SELECTION;
+			}
+		}

         // Always clean up the flag, even if currently dragging.
         pendingSelectionOnMouseUp = false;
@@ -1463,9 +1494,9 @@
      *  @param event The MouseEvent object.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function mouseUpHandler(event:Event):void
     {
@@ -1488,6 +1519,81 @@
         return layout.calculateDropLocation(event);
     }

+	/**
+	 *  Creates and instance of the dropIndicator class that is used to
+	 *  display the visuals of the drop location during a drag and dorp
+	 *  operation. The instance is set in the layout's
+	 *  dropIndicator property.
+	 *
+	 *  @return Returns the dropIndicator that was set in the layout.
+	 *
+	 *  @see #destroyDropIndicator
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+	 */
+	public function createDropIndicator():DisplayObject
+	{
+		// Do we have a drop indicator already?
+		if (layout.dropIndicator)
+			return layout.dropIndicator;
+
+		var dropIndicatorInstance:DisplayObject;
+		if (dropIndicator)
+		{
+			dropIndicatorInstance = DisplayObject(createDynamicPartInstance("dropIndicator"));
+		}
+		else
+		{
+			var dropIndicatorClass:Class = Class(getStyle("dropIndicatorSkin"));
+			if (dropIndicatorClass)
+				dropIndicatorInstance = new dropIndicatorClass();
+		}
+		if (dropIndicatorInstance is IVisualElement)
+			IVisualElement(dropIndicatorInstance).owner = this;
+
+		// Set it in the layout
+		layout.dropIndicator = dropIndicatorInstance;
+		return dropIndicatorInstance;
+	}
+
+	/**
+	 *  Releases the dropIndicator instance that is currently set in the layout.
+	 *
+	 *  @return Returns the dropIndicator that was removed.
+	 *
+	 *  @see #createDropIndicator
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+	 */
+	public function destroyDropIndicator():DisplayObject
+	{
+		var dropIndicatorInstance:DisplayObject = layout.dropIndicator;
+		if (!dropIndicatorInstance)
+			return null;
+
+		// Release the reference from the layout
+		layout.dropIndicator = null;
+
+		// Release it if it's a dynamic skin part
+		var count:int = numDynamicParts("dropIndicator");
+		for (var i:int = 0; i < count; i++)
+		{
+			if (dropIndicatorInstance == getDynamicPartAt("dropIndicator", i))
+			{
+				// This was a dynamic part, remove it now:
+				removeDynamicPartInstance("dropIndicator", dropIndicatorInstance);
+				break;
+			}
+		}
+		return dropIndicatorInstance;
+	}
+
     /**
      *  @private
      *  Handles DragEvent.DRAG_ENTER events.  This method
@@ -1518,11 +1624,7 @@

             // Create the dropIndicator instance. The layout will take care of
             // parenting, sizing, positioning and validating the dropIndicator.
-            if (dropIndicator)
-                layout.dropIndicator = DisplayObject(createDynamicPartInstance("dropIndicator"));
-
-            // Show drop indicator
-            layout.showDropIndicator(dropLocation);
+			createDropIndicator();

             // Show focus
             drawFocusAnyway = true;
@@ -1530,6 +1632,9 @@

             // Notify manager we can drop
             DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+
+			// Show drop indicator
+			layout.showDropIndicator(dropLocation);
         }
         else
         {
@@ -1563,15 +1668,15 @@
         var dropLocation:DropLocation = calculateDropLocation(event);
         if (dropLocation)
         {
-            // Show drop indicator
-            layout.showDropIndicator(dropLocation);
-
             // Show focus
             drawFocusAnyway = true;
             drawFocus(true);

             // Notify manager we can drop
             DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+
+			// Show drop indicator
+			layout.showDropIndicator(dropLocation);
         }
         else
         {
@@ -1617,7 +1722,7 @@
         drawFocusAnyway = false;

         // Destroy the dropIndicator instance
-        layout.dropIndicator = null;
+		destroyDropIndicator();
     }

     /**
@@ -1648,6 +1753,7 @@

         // Hide the drop indicator
         layout.hideDropIndicator();
+		destroyDropIndicator();

         // Hide focus
         drawFocus(false);


Added method to get canvas reference from GraffitiCanvas

--- graffiti/src/com/nocircleno/graffiti/GraffitiCanvas.as
+++ graffiti/src/com/nocircleno/graffiti/GraffitiCanvas.as
@@ -289,6 +289,17 @@
       }

       /**
+       * The getDrawingLayer method will return a direct reference to the drawing layer.
+       * This is meant to give developers an outside way to use the drawing layer directly.
+       *
+       * @return A BitmapData object for the drawing layer.
+       */
+      public function getDrawingLayer():BitmapData
+      {
+         return _bmp;
+      }
+
+      /**
        * The drawToCanvas method will draw a display object or bitmapdata object to the canvas.
        * This allows you to add an image that will be editable by the drawing engine.
        *


Fix to allow old buffers to be freed once used

--- SoundMain.as
+++ SoundMain.as
@@ -75,7 +75,7 @@
     private function create(id:int):void {
         sounds[id] = {
             instance: new Sound(),
-            buffer: new ByteArray(),
+            buffer: [],
             channel: null
         };
         sounds[id].instance.addEventListener(SampleDataEvent.SAMPLE_DATA,
@@ -90,23 +90,19 @@
     private function handleSampleData(id:int):Function {
         var cursor:Number = 0;
         return function(event:SampleDataEvent):void {
-            var buffer:ByteArray = sounds[id].buffer;
-            var available:int = buffer.length - cursor;
-            if (available < MIN_SAMPLE_SIZE) {
-                if (available > 0) {
-                    event.data.writeBytes(buffer, cursor, available);
-                }
-                var pad:int = MIN_SAMPLE_SIZE - available;
-                var reps:int = Math.ceil(pad / silence.length);
-                for (var i:int = 0; i < reps; i++) {
-                    event.data.writeBytes(silence, 0, silence.length);
-                }
-                buffer.clear();
-                cursor = 0;
-            } else {
-                var len:int = Math.min(MAX_SAMPLE_SIZE, available);
-                event.data.writeBytes(buffer, cursor, len);
-                cursor += len;
+            var bytesWritten:int = 0;
+            while (bytesWritten < MAX_SAMPLE_SIZE
+                && sounds[id].buffer.length > 0
+            ) {
+                var frame:ByteArray = sounds[id].buffer.shift();
+                event.data.writeBytes(frame, 0, frame.length);
+                bytesWritten += frame.length;
+                frame.clear();
+            }
+            var pad:int = MIN_SAMPLE_SIZE - bytesWritten;
+            var reps:int = Math.ceil(pad / silence.length);
+            for (var i:int = 0; i < reps; i++) {
+                event.data.writeBytes(silence, 0, silence.length);
             }
         };
     }
@@ -115,11 +111,17 @@
      * Buffers some audio
      */
     private function buffer(id:int, bytes:String):void {
+        var frame:ByteArray = new ByteArray();
         for (var i:Number = 0; i < bytes.length; i++) {
             var sample:Number = (bytes.charCodeAt(i) - 32767) / 32767;
-            sounds[id].buffer.writeFloat(sample);
-            sounds[id].buffer.writeFloat(sample);
+            frame.writeFloat(sample);
+            frame.writeFloat(sample);
+            if (frame.length >= MAX_SAMPLE_SIZE) {
+                sounds[id].buffer.push(frame);
+                frame = new ByteArray();
+            }
         }
+        sounds[id].buffer.push(frame);
     }

     /**


Add a clone method to AnimationGroup

Add a clone method to AnimationGroup

--- src/aerys/minko/scene/node/group/AnimationGroup.as
+++ src/aerys/minko/scene/node/group/AnimationGroup.as
@@ -178,5 +178,16 @@

 			return timeValue;
 		}
+
+		public function clone() : AnimationGroup
+		{
+			var clone		: AnimationGroup = new AnimationGroup(_timelines, _labels);
+			var numChildren	: uint = this.numChildren;
+
+			for (var childId : uint = 0; childId < numChildren; ++childId)
+				clone.addChild(getChildAt(childId));
+
+			return clone;
+		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 2462
Author:   jimurphy@adobe.com
Date:     2008-07-14T19:13:06.620116Z

Log Message:
-----------
gumbo push to trunk

Modified Paths:
--------------
214 paths were modified

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

--- frameworks/projects/framework/src/mx/graphics/Stroke.as
+++ frameworks/projects/framework/src/mx/graphics/Stroke.as
@@ -12,11 +12,7 @@
 package mx.graphics
 {

-import flash.display.Graphics;
-import flash.events.EventDispatcher;
-import flash.events.Event;
-import mx.events.PropertyChangeEvent;
-
+[Deprecated(replacement="SolidColorStroke", since="4.0")]
 /**
  *  The Stroke class defines the properties for a line.
  *
@@ -31,12 +27,12 @@
  *  <mx:Stroke id="mticks" color="0x0000FF" weight="1"/>
  *
  *  <mx:LineChart id="mychart" dataProvider="{ndxa}">
- *  	<mx:horizontalAxisRenderer>
- *  		<mx:AxisRenderer placement="bottom" canDropLabels="true">
- *  			<mx:tickStroke>{ticks}</mx:tickStroke>
- *  			<mx:minorTickStroke>{mticks}</mx:minorTickStroke>
- *  		</mx:AxisRenderer>
- *  	</mx:horizontalAxisRenderer>
+ *      <mx:horizontalAxisRenderer>
+ *          <mx:AxisRenderer placement="bottom" canDropLabels="true">
+ *              <mx:tickStroke>{ticks}</mx:tickStroke>
+ *              <mx:minorTickStroke>{mticks}</mx:minorTickStroke>
+ *          </mx:AxisRenderer>
+ *      </mx:horizontalAxisRenderer>
  *  </LineChart>
  *  ...
  *

@@ -62,345 +58,66 @@
  *
  *  @see flash.display.Graphics
  */
-public class Stroke extends EventDispatcher implements IStroke
+public class Stroke extends SolidColorStroke
 {
-	include "../core/Version.as";
+    include "../core/Version.as";

-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  Constructor.
-	 *
-	 *  @param color Specifies the line color.
-	 *  The default value is 0x000000 (black).
-	 *
-	 *  @param weight Specifies the line weight, in pixels.
-	 *  The default value is 0.
-	 *
-	 *  @param alpha Specifies the alpha value in the range 0.0 to 1.0.
-	 *  The default value is 1.0 (opaque).
-	 *
-	 *  @param pixelHinting Specifies whether to hint strokes to full pixels.
-	 *  This value affects both the position of anchors of a curve
-	 *  and the line stroke size itself.
-	 *  The default value is false.
-	 *
-	 *  @param scaleMode Specifies how to scale a stroke.
-	 *  Valid values are "normal", "none",
-	 *  "vertical", and "noScale".
-	 *  The default value is "normal".
-	 *
-	 *  @param caps Specifies the type of caps at the end of lines.
-	 *  Valid values are "round", "square",
-	 *  and "none".
-	 *  The default value is null.
-	 *
-	 *  @param joints Specifies the type of joint appearance used at angles.
-	 *  Valid values are "round", "miter",
-	 *  and "bevel".
-	 *  The default value is null.
-	 *
-	 *  @param miterLimit Indicates the limit at which a miter is cut off.
-	 *  Valid values range from 0 to 255.
-	 *  The default value is 0.
-	 */
-	public function Stroke(color:uint = 0x000000, weight:Number = 0,
-						   alpha:Number = 1.0, pixelHinting:Boolean = false,
-						   scaleMode:String = "normal", caps:String = null,
-						   joints:String = null, miterLimit:Number = 0)
-	{
-		super();
+    /**
+     *  Constructor.
+     *
+     *  @param color Specifies the line color.
+     *  The default value is 0x000000 (black).
+     *
+     *  @param weight Specifies the line weight, in pixels.
+     *  The default value is 0.
+     *
+     *  @param alpha Specifies the alpha value in the range 0.0 to 1.0.
+     *  The default value is 1.0 (opaque).
+     *
+     *  @param pixelHinting Specifies whether to hint strokes to full pixels.
+     *  This value affects both the position of anchors of a curve
+     *  and the line stroke size itself.
+     *  The default value is false.
+     *
+     *  @param scaleMode A value from the LineScaleMode class
+     *  that specifies which scale mode to use.
+     *  Valid values are LineScaleMode.HORIZONTAL,
+     *  LineScaleMode.NONE, LineScaleMode.NORMAL,
+     *  and LineScaleMode.VERTICAL.
+     *  This parameter is optional,
+     *  with a default value of LineScaleMode.NONE.
+     *
+     *  @param caps Specifies the type of caps at the end of lines.
+     *  Valid values are "round", "square",
+     *  and "none".
+     *  The default value is null.
+     *
+     *  @param joints Specifies the type of joint appearance used at angles.
+     *  Valid values are "round", "miter",
+     *  and "bevel".
+     *  The default value is null.
+     *
+     *  @param miterLimit Indicates the limit at which a miter is cut off.
+     *  Valid values range from 0 to 255.
+     *  The default value is 0.
+     */
+    public function Stroke(color:uint = 0x000000, weight:Number = 0,
+                           alpha:Number = 1.0, pixelHinting:Boolean = false,
+                           scaleMode:String = "none", caps:String = null,
+                           joints:String = null, miterLimit:Number = 0)
+    {
+        super(color, weight, alpha, pixelHinting,
+              scaleMode, caps, joints, miterLimit);

-		this.color = color;
-		this._weight = weight;
-		this.alpha = alpha;
-		this.pixelHinting = pixelHinting;
-		this.scaleMode = scaleMode;
-		this.caps = caps;
-		this.joints = joints;
-		this.miterLimit = miterLimit;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
+
+    }

-	//----------------------------------
-	//  alpha
-	//----------------------------------
-
-	private var _alpha:Number = 0.0;
-
-	[Bindable("propertyChange")]
-    [Inspectable(category="General")]
-
-	/**
-	 *  The transparency of a line.
-	 *  Possible values are 0.0 (invisible) through 1.0 (opaque).
-	 *
-	 *  @default 1.0.
-	 */
-	public function get alpha():Number
-	{
-		return _alpha;
-	}
-
-	public function set alpha(value:Number):void
-	{
-		var oldValue:Number = _alpha;
-		if (value != oldValue)
-		{
-			_alpha = value;
-			dispatchStrokeChangedEvent("alpha", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  caps
-	//----------------------------------
-
-	private var _caps:String = null;
-
-	[Bindable("propertyChange")]
-	[Inspectable(category="General", enumeration="round,square,none", defaultValue="round")]
-
-	/**
-	 *  Specifies the type of caps at the end of lines.
-	 *  Valid values are: "round", "square",
-	 *  and "none".
-	 */
-	public function get caps():String
-	{
-		return _caps;
-	}
-
-	public function set caps(value:String):void
-	{
-		var oldValue:String = _caps;
-		if (value != oldValue)
-		{
-			_caps = value;
-			dispatchStrokeChangedEvent("caps", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  color
-	//----------------------------------
-
-	private var _color:uint = 0x000000;
-
-	[Bindable("propertyChange")]
-    [Inspectable(category="General", format="Color")]
-
-	/**
-	 *  The line color.
-	 *
-	 *  @default 0x000000 (black).
-	 */
-	public function get color():uint
-	{
-		return _color;
-	}
-
-	public function set color(value:uint):void
-	{
-		var oldValue:uint = _color;
-		if (value != oldValue)
-		{
-			_color = value;
-			dispatchStrokeChangedEvent("color", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  joints
-	//----------------------------------
-
-	private var _joints:String = null;
-
-	[Bindable("propertyChange")]
-	[Inspectable(category="General", enumeration="round,bevel,miter", defaultValue="round")]
-
-	/**
-	 *  Specifies the type of joint appearance used at angles.
-	 *  Valid values are "round", "miter",
-	 *  and "bevel".
-	 */
-	public function get joints():String
-	{
-		return _joints;
-	}
-
-	public function set joints(value:String):void
-	{
-		var oldValue:String = _joints;
-		if (value != oldValue)
-		{
-			_joints = value;
-			dispatchStrokeChangedEvent("joints", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  miterLimit
-	//----------------------------------
-
-	private var _miterLimit:Number = 0;
-
-	[Bindable("propertyChange")]
-	[Inspectable(category="General")]
-
-	/**
-	 *  Indicates the limit at which a miter is cut off.
-	 *  Valid values range from 0 to 255.
-	 *
-	 *  @default 0
-	 */
-	public function get miterLimit():Number
-	{
-		return _miterLimit;
-	}
-
-	public function set miterLimit(value:Number):void
-	{
-		var oldValue:Number = _miterLimit;
-		if (value != oldValue)
-		{
-			_miterLimit = value;
-			dispatchStrokeChangedEvent("miterLimit", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  pixelHinting
-	//----------------------------------
-
-	private var _pixelHinting:Boolean = false;
-
-	[Bindable("propertyChange")]
-    [Inspectable(category="General")]
-
-	/**
-	 *  Specifies whether to hint strokes to full pixels.
-	 *  This value affects both the position of anchors of a curve
-	 *  and the line stroke size itself.
-	 *
-	 *  @default false
-	 */
-	public function get pixelHinting():Boolean
-	{
-		return _pixelHinting;
-	}
-
-	public function set pixelHinting(value:Boolean):void
-	{
-		var oldValue:Boolean = _pixelHinting;
-		if (value != oldValue)
-		{
-			_pixelHinting = value;
-			dispatchStrokeChangedEvent("pixelHinting", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  scaleMode
-	//----------------------------------
-
-	private var _scaleMode:String = "normal";
-
-	[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"
-	 */
-	public function get scaleMode():String
-	{
-		return _scaleMode;
-	}
-
-	public function set scaleMode(value:String):void
-	{
-		var oldValue:String = _scaleMode;
-		if (value != oldValue)
-		{
-			_scaleMode = value;
-			dispatchStrokeChangedEvent("scaleMode", oldValue, value);
-		}
-	}
-
-	//----------------------------------
-	//  weight
-	//----------------------------------
-
-	/**
-	 *  @private
-	 *  Storage for the weight property.
-	 */
-	private var _weight:Number;
-
-	[Bindable("propertyChange")]
-    [Inspectable(category="General")]
-
-	/**
-	 *  The line weight, in pixels.
-	 *  For many charts, the default value is 1 pixel.
-	 */
-	public function get weight():Number
-	{
-		return _weight;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set weight(value:Number):void
-	{
-		var oldValue:Number = _weight;
-		if (value != oldValue)
-		{
-			_weight = value;
-			dispatchStrokeChangedEvent("weight", oldValue, value);
-		}
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Applies the properties to the specified Graphics object.
-	 *
-	 *  @param g The Graphics object to which the Stroke's styles are applied.
-	 */
-	public function apply(g:Graphics):void
-	{
-		g.lineStyle(weight, color, alpha, pixelHinting,
-					scaleMode, caps, joints, miterLimit);
-	}
-
-	/**
-	 *  @private
-	 */
-	private function dispatchStrokeChangedEvent(prop:String, oldValue:*,
-												value:*):void
-	{
-        dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, prop,
-															oldValue, value));
-	}
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 16757
Author:   pdehaan@adobe.com
Date:     2010-07-01T01:24:39.759081Z

Log Message:
-----------
Changed @see mx.primitives.BitmapImage to @see spark.primitives.BitmapImage. I'm in yer source!

QE notes: Nope.
Doc notes: None.
Bugs: SDK-26820
Reviewer: Corey
Tests run: Submit-n-run.
Is noteworthy for integration: No.

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as

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

--- frameworks/projects/spark/src/spark/components/Image.as
+++ frameworks/projects/spark/src/spark/components/Image.as
@@ -408,7 +408,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#bitmapData
+     *  @copy spark.primitives.BitmapImage#bitmapData
      *  @default null
      */
     public function get bitmapData():BitmapData
@@ -421,7 +421,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#bytesLoaded
+     *  @copy spark.primitives.BitmapImage#bytesLoaded
      *  @default NaN
      */
     public function get bytesLoaded():Number
@@ -434,7 +434,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#bytesTotal
+     *  @copy spark.primitives.BitmapImage#bytesTotal
      *  @default NaN
      */
     public function get bytesTotal():Number
@@ -447,7 +447,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#clearOnLoad
+     *  @copy spark.primitives.BitmapImage#clearOnLoad
      *  @default true
      */
     public function get clearOnLoad():Boolean
@@ -478,7 +478,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#contentLoader
+     *  @copy spark.primitives.BitmapImage#contentLoader
      *  @default null
      */
     public function get contentLoader():IContentLoader
@@ -509,7 +509,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#contentLoaderGrouping
+     *  @copy spark.primitives.BitmapImage#contentLoaderGrouping
      *  @default null
      */
     public function get contentLoaderGrouping():String
@@ -542,7 +542,7 @@
     [Inspectable(category="General", enumeration="clip,repeat,scale", defaultValue="scale")]

     /**
-     *  @copy mx.primitives.BitmapImage#fillMode
+     *  @copy spark.primitives.BitmapImage#fillMode
      *  @default BitmapFillMode.SCALE
      */
     public function get fillMode():String
@@ -575,7 +575,7 @@
     [Inspectable(category="General", enumeration="left,right,center", defaultValue="center")]

     /**
-     *  @copy mx.primitives.BitmapImage#horizontalAlign
+     *  @copy spark.primitives.BitmapImage#horizontalAlign
      *  @default HorizontalAlign.CENTER
      */
     public function get horizontalAlign():String
@@ -606,7 +606,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#preliminaryHeight
+     *  @copy spark.primitives.BitmapImage#preliminaryHeight
      *  @default NaN
      */
     public function get preliminaryHeight():Number
@@ -637,7 +637,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#preliminaryWidth
+     *  @copy spark.primitives.BitmapImage#preliminaryWidth
      *  @default NaN
      */
     public function get preliminaryWidth():Number
@@ -670,7 +670,7 @@
     [Inspectable(category="General", enumeration="stretch,letterbox", defaultValue="letterbox")]

     /**
-     *  @copy mx.primitives.BitmapImage#scaleMode
+     *  @copy spark.primitives.BitmapImage#scaleMode
      *  @default BitmapScaleMode.LETTERBOX
      */
     public function get scaleMode():String
@@ -701,7 +701,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#smooth
+     *  @copy spark.primitives.BitmapImage#smooth
      */
     public function set smooth(value:Boolean):void
     {
@@ -745,7 +745,7 @@
     }

     /**
-     *  @copy mx.primitives.BitmapImage#source
+     *  @copy spark.primitives.BitmapImage#source
      */
     public function set source(value:Object):void
     {
@@ -774,7 +774,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#sourceHeight
+     *  @copy spark.primitives.BitmapImage#sourceHeight
      *  @default NaN
      */
     public function get sourceHeight():Number
@@ -790,7 +790,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#sourceWidth
+     *  @copy spark.primitives.BitmapImage#sourceWidth
      *  @default NaN
      */
     public function get sourceWidth():Number
@@ -806,7 +806,7 @@
     //----------------------------------

     /**
-     *  @copy mx.primitives.BitmapImage#trustedSource
+     *  @copy spark.primitives.BitmapImage#trustedSource
      *  @default true
      */
     public function get trustedSource():Boolean
@@ -824,7 +824,7 @@
     [Inspectable(category="General", enumeration="top,bottom,middle", defaultValue="middle")]

     /**
-     *  @copy mx.primitives.BitmapImage#verticalAlign
+     *  @copy spark.primitives.BitmapImage#verticalAlign
      *  @default HorizontalAlign.MIDDLE
      */
     public function get verticalAlign():String


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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/SortInfo.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/SortInfo.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.advancedDataGridClasses
 {


Added dispose() call for lo-res gradient bitmap.

--- src/org/zozuar/volumetrics/VolumetricPointLight.as
+++ src/org/zozuar/volumetrics/VolumetricPointLight.as
@@ -110,5 +110,12 @@
 			_lastColorIntegrity = colorIntegrity;
 			super.render(e);
 		}
+
+		/** @inheritDoc */
+		override public function dispose():void {
+			super.dispose();
+			if(_gradientLoResBmd) _gradientLoResBmd.dispose();
+			_gradientLoResBmd = null;
+		}
 	}
 }


modified Hello.as

modified Hello.as

--- src/Hello.as
+++ src/Hello.as
@@ -1,10 +1,7 @@
 package {
-    import flash.display.*;
-
-    public class Hello extends Sprite {
+    public class Hello {
         public function Hello() {
             trace("hello, world");
         }
     }
 }
-


added Weave.prototype.stringifyState() for testing

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -706,5 +706,19 @@
 			for (var i:int = 0; i < undef.length; i++)
 				copyState(def[i % def.length], undef[i]);
 		}
+
+		/**
+		 * For testing purposes.
+		 */
+		public function stringifyState(...pathOrType):String
+		{
+			var object:ILinkableObject;
+			if (JS.isClass(pathOrType[0]))
+				object = root.getObjects(pathOrType[0])[0];
+			else
+				object = getObject(pathOrType);
+			var state:Object = getState(object);
+			return stringify(state, null, '\t');
+		}
 	}
 }


fixed error in typings

fixed error in typings

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -377,7 +377,7 @@
 		 * @see weave.api.core.ISessionManager#newDisposableChild()
 		 * @see weave.api.core.ISessionManager#registerDisposableChild()
 		 */
-		public static function disposableChild/*/T/*/(disposableParent:Object, disposableChildOrType:/*/(new()=>T) | T/*/Object):/*/T/*/*
+		public static function disposableChild/*/<T>/*/(disposableParent:Object, disposableChildOrType:/*/(new()=>T) | T/*/Object):/*/T/*/*
 		{
 			if (JS.isClass(disposableChildOrType))
 				return WeaveAPI.SessionManager.newDisposableChild(disposableParent, JS.asClass(disposableChildOrType));


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

--- frameworks/projects/framework/src/mx/collections/ArrayList.as
+++ frameworks/projects/framework/src/mx/collections/ArrayList.as
@@ -0,0 +1,593 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-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.collections
+{
+
+import flash.events.EventDispatcher;
+import flash.events.IEventDispatcher;
+import flash.utils.IDataInput;
+import flash.utils.IDataOutput;
+import flash.utils.IExternalizable;
+import flash.utils.getQualifiedClassName;
+import mx.core.IPropertyChangeNotifier;
+import mx.core.mx_internal;
+import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind;
+import mx.events.PropertyChangeEvent;
+import mx.events.PropertyChangeEventKind;
+import mx.managers.ISystemManager;
+import mx.managers.SystemManager;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+import mx.utils.ArrayUtil;
+import mx.utils.UIDUtil;
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  Dispatched when the IList has been updated in some way.
+ *
+ *  @eventType mx.events.CollectionEvent.COLLECTION_CHANGE
+ */
+[Event(name="collectionChange", type="mx.events.CollectionEvent")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[ExcludeClass]
+
+[RemoteClass(alias="flex.messaging.io.ArrayList")]
+
+[ResourceBundle("collections")]
+
+/**
+ *  @private
+ *  A simple implementation of IList that uses a backing Array.
+ *  This base class will not throw ItemPendingErrors but it
+ *  is possible that a subclass might.
+ */
+public class ArrayList extends EventDispatcher
+	   implements IList, IExternalizable, IPropertyChangeNotifier
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Construct a new ArrayList using the specified array as its source.
+     *  If no source is specified an empty array will be used.
+     */
+    public function ArrayList(source:Array = null)
+    {
+		super();
+
+        disableEvents();
+        this.source = source;
+        enableEvents();
+        _uid = UIDUtil.createUID();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Used for accessing localized Error messages.
+	 */
+	private var resourceManager:IResourceManager =
+									ResourceManager.getInstance();
+
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    // length
+    //----------------------------------
+
+    /**
+     *  Get the number of items in the list.  An ArrayList should always
+     *  know its length so it shouldn't return -1, though a subclass may
+     *  override that behavior.
+     *
+     *  @return int representing the length of the source.
+     */
+    public function get length():int
+    {
+    	if (source)
+        	return source.length;
+        else
+        	return 0;
+    }
+
+    //----------------------------------
+    // source
+    //----------------------------------
+
+    /**
+     *  The source array for this ArrayList.
+     *  Any changes done through the IList interface will be reflected in the
+     *  source array.
+     *  If no source array was supplied the ArrayList will create one internally.
+     *  Changes made directly to the underlying Array (e.g., calling
+     *  theList.source.pop() will not cause CollectionEvents
+     *  to be dispatched.
+     *
+	 *  @return An Array that represents the underlying source.
+     */
+    public function get source():Array
+    {
+        return _source;
+    }
+
+    public function set source(s:Array):void
+    {
+        var i:int;
+        var len:int;
+        if (_source && _source.length)
+        {
+            len = _source.length;
+            for (i = 0; i < len; i++)
+            {
+                stopTrackUpdates(_source[i]);
+            }
+        }
+        _source  = s ? s : [];
+        len = _source.length;
+        for (i = 0; i < len; i++)
+        {
+            startTrackUpdates(_source[i]);
+        }
+
+        if (_dispatchEvents == 0)
+        {
+           var event:CollectionEvent =
+			new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);
+           event.kind = CollectionEventKind.RESET;
+           dispatchEvent(event);
+        }
+    }
+
+    //----------------------------------
+    // uid -- mx.core.IPropertyChangeNotifier
+    //----------------------------------
+
+    /**
+     *  Provides access to the unique id for this list.
+     *
+     *  @return String representing the internal uid.
+     */
+    public function get uid():String
+    {
+    	return _uid;
+    }
+
+    public function set uid(value:String):void
+    {
+    	_uid = value;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Get the item at the specified index.
+     *
+     *  @param 	index the index in the list from which to retrieve the item
+     *  @param	prefetch int indicating both the direction and amount of items
+     *			to fetch during the request should the item not be local.
+     *  @return the item at that index, null if there is none
+     *  @throws ItemPendingError if the data for that index needs to be
+     *                           loaded from a remote location
+     *  @throws RangeError if the index < 0 or index >= length
+     */
+    public function getItemAt(index:int, prefetch:int = 0):Object
+    {
+        if (index < 0 || index >= length)
+		{
+			var message:String = resourceManager.getString(
+				"collections", "outOfBounds", [ index ]);
+        	throw new RangeError(message);
+		}
+
+        return source[index];
+    }
+
+    /**
+     *  Place the item at the specified index.
+     *  If an item was already at that index the new item will replace it and it
+     *  will be returned.
+     *
+     *  @param 	item the new value for the index
+     *  @param 	index the index at which to place the item
+     *  @return the item that was replaced, null if none
+     *  @throws RangeError if index is less than 0 or greater than or equal to length
+     */
+    public function setItemAt(item:Object, index:int):Object
+    {
+        if (index < 0 || index >= length)
+		{
+			var message:String = resourceManager.getString(
+				"collections", "outOfBounds", [ index ]);
+        	throw new RangeError(message);
+		}
+
+        var oldItem:Object = source[index];
+        source[index] = item;
+        stopTrackUpdates(oldItem);
+        startTrackUpdates(item);
+
+        //dispatch the appropriate events
+        if (_dispatchEvents == 0)
+        {
+        	var hasCollectionListener:Boolean =
+        		hasEventListener(CollectionEvent.COLLECTION_CHANGE);
+        	var hasPropertyListener:Boolean =
+        		hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE);
+        	var updateInfo:PropertyChangeEvent;
+
+        	if (hasCollectionListener || hasPropertyListener)
+        	{
+        		updateInfo = new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE);
+        		updateInfo.kind = PropertyChangeEventKind.UPDATE;
+            	updateInfo.oldValue = oldItem;
+            	updateInfo.newValue = item;
+            	updateInfo.property = index;
+        	}
+
+        	if (hasCollectionListener)
+        	{
+           		var event:CollectionEvent =
+					new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);
+            	event.kind = CollectionEventKind.REPLACE;
+            	event.location = index;
+            	event.items.push(updateInfo);
+            	dispatchEvent(event);
+         	}
+
+         	if (hasPropertyListener)
+         	{
+            	dispatchEvent(updateInfo);
+          	}
+        }
+        return oldItem;
+    }
+
+    /**
+     *  Add the specified item to the end of the list.
+     *  Equivalent to addItemAt(item, length);
+     *
+     *  @param item the item to add
+     */
+    public function addItem(item:Object):void
+    {
+        addItemAt(item, length);
+    }
+
+    /**
+     *  Add the item at the specified index.
+     *  Any item that was after this index is moved out by one.
+     *
+     *  @param item the item to place at the index
+     *  @param index the index at which to place the item
+     *  @throws RangeError if index is less than 0 or greater than the length
+     */
+    public function addItemAt(item:Object, index:int):void
+    {
+        if (index < 0 || index > length)
+		{
+			var message:String = resourceManager.getString(
+				"collections", "outOfBounds", [ index ]);
+        	throw new RangeError(message);
+		}
+
+        source.splice(index, 0, item);
+
+        startTrackUpdates(item);
+        internalDispatchEvent(CollectionEventKind.ADD, item, index);
+    }
+
+    /**
+     *  Return the index of the item if it is in the list such that
+     *  getItemAt(index) == item.
+     *  Note that in this implementation the search is linear and is therefore
+     *  O(n).
+     *
+     *  @param item the item to find
+     *  @return the index of the item, -1 if the item is not in the list.
+     */
+    public function getItemIndex(item:Object):int
+    {
+    	return ArrayUtil.getItemIndex(item, source);
+    }
+
+    /**
+     *  Removes the specified item from this list, should it exist.
+     *
+     *	@param	item Object reference to the item that should be removed.
+     *  @return	Boolean indicating if the item was removed.
+     */
+    public function removeItem(item:Object):Boolean
+    {
+    	var index:int = getItemIndex(item);
+    	var result:Boolean = index >= 0;
+    	if (result)
+    		removeItemAt(index);
+
+    	return result;
+    }
+
+    /**
+     *  Remove the item at the specified index and return it.
+     *  Any items that were after this index are now one index earlier.
+     *
+     *  @param index the index from which to remove the item
+     *  @return the item that was removed
+     *  @throws RangeError is index < 0 or index >= length
+     */
+    public function removeItemAt(index:int):Object
+    {
+        if (index < 0 || index >= length)
+		{
+			var message:String = resourceManager.getString(
+				"collections", "outOfBounds", [ index ]);
+        	throw new RangeError(message);
+		}
+
+        var removed:Object = source.splice(index, 1)[0];
+        stopTrackUpdates(removed);
+        internalDispatchEvent(CollectionEventKind.REMOVE, removed, index);
+        return removed;
+    }
+
+    /**
+     *  Remove all items from the list.
+     */
+    public function removeAll():void
+    {
+        if (length > 0)
+        {
+            var len:int = length;
+            for (var i:int = 0; i < len; i++)
+            {
+                stopTrackUpdates(source[i]);
+            }
+
+            source.splice(0, length);
+			internalDispatchEvent(CollectionEventKind.RESET);
+        }
+    }
+
+    /**
+     *  Notify the view that an item has been updated.
+     *  This is useful if the contents of the view do not implement
+     *  IEventDispatcher.
+     *  If a property is specified the view may be able to optimize its
+     *  notification mechanism.
+     *  Otherwise it may choose to simply refresh the whole view.
+     *
+     *  @param item The item within the view that was updated.
+	 *
+     *  @param property A String, QName, or int
+	 *  specifying the property that was updated.
+	 *
+     *  @param oldValue The old value of that property.
+	 *  (If property was null, this can be the old value of the item.)
+	 *
+     *  @param newValue The new value of that property.
+	 *  (If property was null, there's no need to specify this
+	 *  as the item is assumed to be the new value.)
+     *
+     *  @see mx.events.CollectionEvent
+     *  @see mx.core.IPropertyChangeNotifier
+     *  @see mx.events.PropertyChangeEvent
+     */
+     public function itemUpdated(item:Object, property:Object = null,
+                                 oldValue:Object = null,
+                                 newValue:Object = null):void
+    {
+        var event:PropertyChangeEvent =
+			new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE);
+
+		event.kind = PropertyChangeEventKind.UPDATE;
+        event.source = item;
+        event.property = property;
+        event.oldValue = oldValue;
+        event.newValue = newValue;
+
+		itemUpdateHandler(event);
+    }
+
+    /**
+     *  Return an Array that is populated in the same order as the IList
+     *  implementation.
+     *
+     *  @throws ItemPendingError if the data is not yet completely loaded
+     *  from a remote location
+     */
+    public function toArray():Array
+    {
+        return source.concat();
+    }
+
+    /**
+     *  Ensures that only the source property is seralized.
+     *  @private
+     */
+    public function readExternal(input:IDataInput):void
+    {
+    	source = input.readObject();
+    }
+
+    /**
+     *  Ensures that only the source property is serialized.
+     *  @private
+     */
+    public function writeExternal(output:IDataOutput):void
+    {
+    	output.writeObject(_source);
+    }
+
+	/**
+     *  Pretty prints the contents of this ArrayList to a string and returns it.
+     */
+    override public function toString():String
+	{
+		if (source)
+			return source.toString();
+		else
+			return getQualifiedClassName(this);
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    // Internal Methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Enables event dispatch for this list.
+	 */
+	private function enableEvents():void
+	{
+		_dispatchEvents++;
+		if (_dispatchEvents > 0)
+			_dispatchEvents = 0;
+	}
+
+	/**
+	 *  Disables event dispatch for this list.
+	 *  To re-enable events call enableEvents(), enableEvents() must be called
+	 *  a matching number of times as disableEvents().
+	 */
+	private function disableEvents():void
+	{
+		_dispatchEvents--;
+	}
+
+	/**
+	 *  Dispatches a collection event with the specified information.
+	 *
+	 *  @param kind String indicates what the kind property of the event should be
+	 *  @param item Object reference to the item that was added or removed
+	 *  @param location int indicating where in the source the item was added.
+	 */
+	private function internalDispatchEvent(kind:String, item:Object = null, location:int = -1):void
+	{
+    	if (_dispatchEvents == 0)
+    	{
+    		if (hasEventListener(CollectionEvent.COLLECTION_CHANGE))
+    		{
+		        var event:CollectionEvent =
+					new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);
+		        event.kind = kind;
+		        event.items.push(item);
+		        event.location = location;
+		        dispatchEvent(event);
+		    }
+
+	    	// now dispatch a complementary PropertyChangeEvent
+	    	if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE) &&
+	    	   (kind == CollectionEventKind.ADD || kind == CollectionEventKind.REMOVE))
+	    	{
+	    		var objEvent:PropertyChangeEvent =
+					new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE);
+	    		objEvent.property = location;
+	    		if (kind == CollectionEventKind.ADD)
+	    			objEvent.newValue = item;
+	    		else
+	    			objEvent.oldValue = item;
+	    		dispatchEvent(objEvent);
+	    	}
+	    }
+	}
+
+    /**
+     *  Called whenever any of the contained items in the list fire an
+     *  ObjectChange event.
+     *  Wraps it in a CollectionEventKind.UPDATE.
+     */
+    protected function itemUpdateHandler(event:PropertyChangeEvent):void
+    {
+		internalDispatchEvent(CollectionEventKind.UPDATE, event);
+		// need to dispatch object event now
+    	if (_dispatchEvents == 0 && hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+    	{
+    		var objEvent:PropertyChangeEvent = PropertyChangeEvent(event.clone());
+    		var index:uint = getItemIndex(event.target);
+    		objEvent.property = index.toString() + "." + event.property;
+    		dispatchEvent(objEvent);
+    	}
+    }
+
+    /**
+     *  If the item is an IEventDispatcher watch it for updates.
+     *  This is called by addItemAt and when the source is initially
+     *  assigned.
+     */
+    protected function startTrackUpdates(item:Object):void
+    {
+        if (item && (item is IEventDispatcher))
+        {
+            IEventDispatcher(item).addEventListener(
+				                        PropertyChangeEvent.PROPERTY_CHANGE,
+                                        itemUpdateHandler, false, 0, true);
+        }
+    }
+
+    /**
+     *  If the item is an IEventDispatcher stop watching it for updates.
+     *  This is called by removeItemAt, removeAll, and before a new
+     *  source is assigned.
+     */
+    protected function stopTrackUpdates(item:Object):void
+    {
+        if (item && item is IEventDispatcher)
+        {
+            IEventDispatcher(item).removeEventListener(
+				                        PropertyChangeEvent.PROPERTY_CHANGE,
+                                        itemUpdateHandler);
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  indicates if events should be dispatched.
+	 *  calls to enableEvents() and disableEvents() effect the value when == 0
+	 *  events should be dispatched.
+	 */
+	private var _dispatchEvents:int = 0;
+    private var _source:Array;
+    private var _uid:String;
+}
+
+}


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

--- frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as
+++ frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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: 7256
Author:   aharui@adobe.com
Date:     2009-05-23T20:25:20.378550Z

Log Message:
-----------
Fix various Mustella failures due to frame1 cleanup

QE Notes: None
Doc Notes: None
Bugs: SDK-21372, SDK-21373, SDK-21374
Reviewer: Joan tested a cyclone
tests: checkintests mustella/components mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>

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

--- frameworks/projects/framework/src/mx/managers/FocusManager.as
+++ frameworks/projects/framework/src/mx/managers/FocusManager.as
@@ -724,8 +724,8 @@
             return;
         }

-        //trace("FocusManager activating = " + this._form.systemManager.loaderInfo.url);
-        //trace("FocusManager activating " + this);
+        // trace("FocusManager activating = " + this._form.systemManager.loaderInfo.url);
+        // trace("FocusManager activating " + this);

         // listen for focus changes, use weak references for the stage
 		// form.systemManager can be null if the form is created in a sandbox and
@@ -761,7 +761,7 @@
         if (_lastFocus)
             setFocus(_lastFocus);

-		dispatchEvent(new Event(Event.ACTIVATE));
+		dispatchEvent(new Event("activateFM"));

     }

@@ -785,7 +785,7 @@
     public function deactivate():void
     {
         // trace("FocusManager deactivating " + this);
-        //trace("FocusManager deactivating = " + this._form.systemManager.loaderInfo.url);
+        // trace("FocusManager deactivating = " + this._form.systemManager.loaderInfo.url);

         // listen for focus changes
 		var sm:ISystemManager = form.systemManager;
@@ -816,7 +816,7 @@

         activated = false;

-		dispatchEvent(new Event(Event.DEACTIVATE));
+		dispatchEvent(new Event("deactivateFM"));
     }

     /**
@@ -918,7 +918,7 @@
      */
     private function sortFocusableObjectsTabIndex():void
     {
-        //trace("FocusableObjectsTabIndex");
+        // trace("FocusableObjectsTabIndex");

         focusableCandidates = [];

@@ -1262,7 +1262,7 @@
             return;

 		var focusInfo:FocusInfo = getNextFocusManagerComponent2(event.shiftKey, fauxFocus);
-		// trace("winner = ", o);
+		// trace("winner = ", focusInfo.displayObject);

 		// If we are about to wrap focus around, send focus back to the parent.
 		if (!popup && (focusInfo.wrapped || !focusInfo.displayObject))


Transferred from the Adobe Open Source Subversion Repository

Revision: 5383
Author:   jimurphy@adobe.com
Date:     2009-03-18T13:08:33.865663Z

Log Message:
-----------
Merge 3.x revisions 5326-5327,5329,5343 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>

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

--- frameworks/projects/framework/src/mx/modules/ModuleManager.as
+++ frameworks/projects/framework/src/mx/modules/ModuleManager.as
@@ -772,9 +772,13 @@

         factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal;

+        var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.READY);
+        moduleEvent.bytesLoaded = loader.contentLoaderInfo.bytesLoaded;
+        moduleEvent.bytesTotal = loader.contentLoaderInfo.bytesTotal;
+
         clearLoader();

-        dispatchEvent(new ModuleEvent(ModuleEvent.READY));
+        dispatchEvent(moduleEvent);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 10050
Author:   dloverin@adobe.com
Date:     2009-09-08T14:43:16.690474Z

Log Message:
-----------
Per-Module Style Management: Create a style manager for each application/module.

The singleton StyleManager is still the only style manager that is currently used.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex
Tests run: checkintests, Managers/StyleManager
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/IModuleInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.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/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.as</path>

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

--- frameworks/projects/framework/src/mx/modules/ModuleManager.as
+++ frameworks/projects/framework/src/mx/modules/ModuleManager.as
@@ -14,6 +14,7 @@

 import flash.utils.ByteArray;
 import mx.core.IFlexModuleFactory;
+import mx.events.Request;

 /**
  *  The ModuleManager class centrally manages dynamically loaded modules.
@@ -119,6 +120,7 @@
 //  Helper class: ModuleManagerImpl
 //
 ////////////////////////////////////////////////////////////////////////////////
+import mx.events.Request;

 /**
  *  @private
@@ -216,6 +218,7 @@
 //  Helper class: ModuleInfo
 //
 ////////////////////////////////////////////////////////////////////////////////
+

 /**
  *  @private
@@ -276,7 +279,11 @@
      */
     private var numReferences:int = 0;

-
+    /**
+     *  @private
+     */
+    private var parentModuleFactory:IFlexModuleFactory;
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -420,7 +427,8 @@
      */
     public function load(applicationDomain:ApplicationDomain = null,
                          securityDomain:SecurityDomain = null,
-                         bytes:ByteArray = null):void
+                         bytes:ByteArray = null,
+                         moduleFactory:IFlexModuleFactory = null):void
     {
         if (_loaded)
             return;
@@ -428,7 +436,8 @@
         _loaded = true;

         limbo = null;
-
+        parentModuleFactory = moduleFactory;
+
         // If bytes are supplied, then load the bytes instead of loading
         // from the url.
         if (bytes)
@@ -464,7 +473,7 @@
             IOErrorEvent.IO_ERROR, errorHandler);
         loader.contentLoaderInfo.addEventListener(
             SecurityErrorEvent.SECURITY_ERROR, errorHandler);
-
+
         loader.load(r, c);
     }

@@ -577,6 +586,8 @@
                 {
                     loader.content.removeEventListener("ready", readyHandler);
                     loader.content.removeEventListener("error", moduleErrorHandler);
+                    loader.content.removeEventListener(Request.GET_FLEX_MODULE_FACTORY_REQUEST,
+                                                       getFlexModuleFactoryRequestHandler);
                 }
             }
             catch(error:Error)
@@ -704,6 +715,8 @@

         loader.content.addEventListener("ready", readyHandler);
         loader.content.addEventListener("error", moduleErrorHandler);
+        loader.content.addEventListener(Request.GET_FLEX_MODULE_FACTORY_REQUEST,
+                                        getFlexModuleFactoryRequestHandler);

         try
         {
@@ -761,6 +774,14 @@
         //trace("child load of " + _url + " generated an error " + event);
     }

+    /**
+     *  @private
+     */
+    public function getFlexModuleFactoryRequestHandler(request:Request):void
+    {
+        request.value = parentModuleFactory;
+    }
+
     /**
      *  @private
      */
@@ -1050,7 +1071,8 @@
      */
     public function load(applicationDomain:ApplicationDomain = null,
                          securityDomain:SecurityDomain = null,
-                         bytes:ByteArray = null):void
+                         bytes:ByteArray = null,
+                         moduleFactory:IFlexModuleFactory = null):void
     {
         info.resurrect();

@@ -1092,7 +1114,7 @@
         }
         else
         {
-            info.load(applicationDomain, securityDomain, bytes);
+            info.load(applicationDomain, securityDomain, bytes, moduleFactory);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11247
Author:   klin@adobe.com
Date:     2009-10-28T21:59:11.963883Z

Log Message:
-----------
Fix for https://bugs.adobe.com/jira/browse/SDK-23184.

Updated a bunch of Style metadata ASDocs to describe different defaults between the Halo and Spark themes. Also, fixed a few typos along the way.

defaults.css - rearranged a few styles to be in alphabetical order
Button.as - removed extra emphasizedSkin style metadata
Panel.as - added spark theme to borderAlpha metadata

QE notes: None
Doc notes: None
Bugs: SDK-23184
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.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/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerNative.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SkinStyles.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/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.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/styles/metadata/TextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuItemRenderer.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/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PopUpMenuIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/PaddingStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerDynamicStream.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/FocusStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -1087,7 +1087,7 @@
         // nothing to init
         if (flexContextMenu != null)
         {
-            // make sure we set it back on systemManager b/c it may have been overriden by now
+            // make sure we set it back on systemManager b/c it may have been overridden by now
             if (systemManager is InteractiveObject)
                 InteractiveObject(systemManager).contextMenu = contextMenu;
             return;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4142
Author:   cframpto@adobe.com
Date:     2008-11-19T22:32:48.335847Z

Log Message:
-----------
Implement FxRadioButtonGroup.  Fix spelling in ASDOC in RadioButtonGroup.as.

QE Notes: none
Doc Notes: example code for FxRadioButton and FxRadioButtonGroup
Reviewer: Glenn and Paul
tests: checkintests

Modified Paths:
--------------
<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/modules/compiler/src/java/flex2/compiler/mxml/builder/ComponentBuilder.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButtonGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButtonGroup.png</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.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/framework/bundles/en_US/controls.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/builder/DocumentBuilder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButtonGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/RadioButton.as
+++ frameworks/projects/spark/src/spark/components/RadioButton.as
@@ -11,16 +11,83 @@

 package mx.components
 {
+import flash.events.Event;
+import flash.events.KeyboardEvent;
+import flash.events.MouseEvent;
+import flash.ui.Keyboard;
+import mx.core.IFlexDisplayObject;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.core.FlexVersion;
+import mx.events.ItemClickEvent;
+import mx.managers.IFocusManager;
+import mx.managers.IFocusManagerGroup;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------

 [IconFile("FxRadioButton.png")]

 /**
- *  Documentation is not currently available.
+ *  The FxRadioButton control lets the user make a single choice
+ *  within a set of mutually exclusive choices.
+ *  A FxRadioButton group is composed of two or more FxRadioButton controls
+ *  with the same groupName property.
+ *  The FxRadioButton group can refer to a group created by the
+ *  <mx:FxRadioButtonGroup> tag.
+ *  The user selects only one member of the group at a time.
+ *  Selecting an unselected group member deselects the currently selected
+ *  FxRadioButton control within that group.
+ *
+ *
The FxRadioButton control has the following default characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           Wide enough to display the text label of the control
+ *

+ *

+ *           Minimum size
+ *           0 pixels
+ *

+ *

+ *           Maximum size
+ *           Undefined
+ *

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:FxRadioButton> tag inherits all of the tag
+ *  attributes of its superclass, and adds the following tag attributes:

+ *
+ *

+ *  <mx:FxRadioButton
+ *    Properties
+ *    groupName=""
+ *  />
+ *

+ *
+ *  @see mx.components.FxRadioButtonGroup
  */
-public class FxRadioButton extends FxToggleButton
+public class FxRadioButton extends FxToggleButton implements IFocusManagerGroup
 {
     include "../core/Version.as";
-
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -28,12 +95,512 @@
     //--------------------------------------------------------------------------

     /**
-     *  Constructor.
-     */
-	public function FxRadioButton()
-	{
-		super();
-	}
+     *  Constructor.
+     */
+    public function FxRadioButton()
+    {
+        super();
+
+        // Button variables.
+
+        // Start out in the default group.  The button is always in a group,
+        // either explicitly or implicitly.
+        groupName = "radioGroup";
+
+        _buttonEnabled = enabled;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Default inital index value
+     */
+    mx_internal var indexNumber:int = 0;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  group
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the group property.
+     */
+    private var _group:FxRadioButtonGroup;
+
+    /**
+     *  The FxRadioButtonGroup object to which this FxRadioButton belongs.
+     *
+     *  @default "undefined"
+     */
+    public function get group():FxRadioButtonGroup
+    {
+        // Debugger asks too soon.
+        if (!document)
+            return _group;
+
+        if (!_group)
+        {
+            // If using the default groupName, the button isn't added to the
+            // group until it is first accessed.
+            if (groupName && groupName != "")
+            {
+                var g:FxRadioButtonGroup;
+                try
+                {
+                    g = FxRadioButtonGroup(document[groupName]);
+                }
+                catch(e:Error)
+                {
+                    // Special automaticRadioButtonGroup slot to hold generated
+                    // radio button groups.  Shared with halo so prefix
+                    // groupName to differentiate.
+                    if (document.automaticRadioButtonGroups &&
+                        document.automaticRadioButtonGroups[autoGroupIndex])
+                    {
+                        g = FxRadioButtonGroup(
+                            document.automaticRadioButtonGroups[autoGroupIndex]);
+                    }
+                }
+                if (!g)
+                {
+                    g = new FxRadioButtonGroup(IFlexDisplayObject(document));
+
+                    if (!document.automaticRadioButtonGroups)
+                        document.automaticRadioButtonGroups = [];
+                    document.automaticRadioButtonGroups[autoGroupIndex] = g;
+                }
+                else if (!(g is FxRadioButtonGroup))
+                {
+                    return null;
+                }
+
+                _group = g;
+            }
+        }
+
+        return _group;
+    }
+
+    /**
+     *  @private
+     */
+    public function set group(value:FxRadioButtonGroup):void
+    {
+        if (_group == value)
+            return;
+
+        // If the button was in another group, remove it.
+        removeFromGroup();
+
+        _group = value;
+
+        // Make sure this gets added to it's FxRadioButtonGroup
+        groupChanged = true;
+
+        invalidateProperties();
+        invalidateDisplayList();
+    }
+
+    //----------------------------------
+    //  groupName
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for groupName property.
+     */
+    mx_internal var _groupName:String;
+
+    /**
+     *  @private
+     */
+    private var groupChanged:Boolean = false;
+
+    [Bindable("groupNameChanged")]
+    [Inspectable(category="General", defaultValue="radioGroup")]
+
+    /**
+     *  Specifies the name of the group to which this FxRadioButton control belongs, or
+     *  specifies the value of the id property of a FxRadioButtonGroup control
+     *  if this FxRadioButton is part of a group defined by a FxRadioButtonGroup control.
+     *
+     *  @default "undefined"
+     */
+    public function get groupName():String
+    {
+        return _groupName;
+    }
+
+    /**
+     *  @private
+     */
+    public function set groupName(value:String):void
+    {
+        // A groupName must be non-empty string.
+        if (!value || value == "")
+            return;
+
+        // If the button was in another group, remove it, before changing the
+        // groupName.
+        removeFromGroup();
+
+        _groupName = value;
+
+        // Make sure get group recalculates the group.
+        _group = null;
+
+        // Make sure this gets added to it's FxRadioButtonGroup
+        groupChanged = true;
+
+        invalidateProperties();
+        invalidateDisplayList();
+
+        dispatchEvent(new Event("groupNameChanged"));
+    }
+
+    //----------------------------------
+    //  value
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for value property.
+     */
+    private var _value:Object;
+
+    [Bindable("valueChanged")]
+    [Inspectable(category="General", defaultValue="")]
+
+    /**
+     *  Optional user-defined value
+     *  that is associated with a FxRadioButton control.
+     *
+     *  @default null
+     */
+    public function get value():Object
+    {
+        return _value;
+    }
+
+    /**
+     *  @private
+     */
+    public function set value(value:Object):void
+    {
+        _value = value;
+
+        dispatchEvent(new Event("valueChanged"));
+        if (selected && group)
+            group.dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Update properties before measurement/layout.
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        if (groupChanged)
+        {
+            addToGroup();
+            groupChanged = false;
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  automaticRadioButtonGroups is shared with halo radio button groups.
+     *  Gumbo radio button groups are prefixed with _fx to differentiate the
+     *  halo groups which are stored in the same table.
+     */
+    private function get autoGroupIndex():String
+    {
+        return "_fx_" + groupName;
+    }
+
+    /**
+     *  @private
+     *  Create radio button group if it does not exist
+     *  and add the instance to the group.
+     */
+    private function addToGroup():FxRadioButtonGroup
+    {
+        var g:FxRadioButtonGroup = group; // Trigger getting the group
+        if (g)
+        {
+            g.addInstance(this);
+
+            // If this button is selected, then change the group selection.
+            if (selected && g.selection != this)
+                g.setSelection(this, false);
+
+            // If this button is joining a disabled group, then disable the button.
+            // Don't use the enabled setter so that _buttonEnabled remains untouched.
+            setEnabled();
+        }
+
+        return g;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function removeFromGroup():void
+    {
+        // If the radio button was in a group, remove it.
+        this.dispatchEvent(new Event(Event.REMOVED));
+
+        // It's possible that the radio button was in the auto group.  If so,
+        // delete the group if there are no other radio buttons still in it.
+        // The radio button also could have been in an explicit FxRadioButtonGroup
+        // specified via group or in a FxRadioButtonGroup that was in the document,
+        // specified by groupName.
+        try
+        {
+            if (document.automaticRadioButtonGroups[autoGroupIndex].numRadioButtons == 0)
+            {
+                delete document.automaticRadioButtonGroups[autoGroupIndex];
+            }
+        }
+        catch(e:Error)
+        {
+        }
+    }
+
+    /**
+     *  @private
+     *  Set previous radio button in the group.
+     */
+    private function setPrev(moveSelection:Boolean = true):void
+    {
+        var g:FxRadioButtonGroup = group;
+
+        var fm:IFocusManager = focusManager;
+        if (fm)
+            fm.showFocusIndicator = true;
+
+        for (var i:int = 1; i <= indexNumber; i++)
+        {
+            var radioButton:FxRadioButton = g.getRadioButtonAt(indexNumber - i);
+            if (radioButton && radioButton.enabled)
+            {
+                if (moveSelection)
+                    g.setSelection(radioButton);
+                radioButton.setFocus();
+                return;
+            }
+        }
+
+        if (moveSelection && g.getRadioButtonAt(indexNumber) != g.selection)
+            g.setSelection(this);
+
+        this.drawFocus(true);
+    }
+
+    /**
+     *  @private
+     *  Set the next radio button in the group.
+     */
+    private function setNext(moveSelection:Boolean = true):void
+    {
+        var g:FxRadioButtonGroup = group;
+
+        var fm:IFocusManager = focusManager;
+        if (fm)
+            fm.showFocusIndicator = true;
+
+        for (var i:int = indexNumber + 1; i < g.numRadioButtons; i++)
+        {
+            var radioButton:FxRadioButton = g.getRadioButtonAt(i);
+            if (radioButton && radioButton.enabled)
+            {
+                if (moveSelection)
+                    g.setSelection(radioButton);
+                radioButton.setFocus();
+                return;
+            }
+        }
+
+        if (moveSelection && g.getRadioButtonAt(indexNumber) != g.selection)
+            g.setSelection(this);
+        this.drawFocus(true);
+    }
+
+    /**
+     *  @private
+     */
+    private function setThis():void
+    {
+        if (!_group)
+            addToGroup();
+
+        var g:FxRadioButtonGroup = group;
+        if (g.selection != this)
+            g.setSelection(this);
+    }
+
+
+    /**
+     *  @private
+     *  Enable the component if the group it is enabled and the radio button
+     *  itself is enabled. If the group is disabled the button is disabled.
+     */
+    mx_internal function setEnabled():void
+    {
+        if (_group && !_group.enabled)
+        {
+            super.enabled = false;
+        }
+        else
+        {
+            super.enabled = _buttonEnabled;
+        }
+
+        invalidateButtonState();
+    }
+
+    /**
+     *  @private
+     *  Storage for enabled property.  It must be merged with the FxRadionButtonGroup
+     *  enabled property to determine if the button is enabled.
+     */
+    mx_internal var _buttonEnabled:Boolean;
+
+    /**
+     *  @private
+     *  The radio button group and the radio button each have enabled properties.
+     *  The underlying component is enabled if the group is enabled and the button
+     *  itself is enabled.
+     */
+    override public function set enabled(value:Boolean):void
+    {
+        _buttonEnabled = value;
+        setEnabled();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Support the use of keyboard within the group.
+     */
+    override protected function keyDownHandler(event:KeyboardEvent):void
+    {
+        if (!enabled)
+            return;
+
+        switch (event.keyCode)
+        {
+            case Keyboard.DOWN:
+            {
+                setNext(!event.ctrlKey);
+                event.stopPropagation();
+                break;
+            }
+
+            case Keyboard.UP:
+            {
+                setPrev(!event.ctrlKey);
+                event.stopPropagation();
+                break;
+            }
+
+            case Keyboard.LEFT:
+            {
+                setPrev(!event.ctrlKey);
+                event.stopPropagation();
+                break;
+            }
+
+            case Keyboard.RIGHT:
+            {
+                setNext(!event.ctrlKey);
+                event.stopPropagation();
+                break;
+            }
+
+            case Keyboard.SPACE:
+            {
+                setThis();
+                //fall through, no break
+            }
+
+            default:
+            {
+                super.keyDownHandler(event);
+                break;
+            }
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: Button
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Set radio button to selected and dispatch that there has been a change.
+     */
+    override protected function onClick(event:MouseEvent):void
+    {
+        if (!enabled || selected)
+            return; // prevent a selected button from dispatching "click"
+
+        if (!_group)
+            addToGroup();
+
+        // Must call super.clickHandler() before setting
+        // the group's selection.
+        super.onClick(event);
+
+        group.setSelection(this);
+
+        // Dispatch an itemClick event from the FxRadioButtonGroup.
+        var itemClickEvent:ItemClickEvent =
+            new ItemClickEvent(ItemClickEvent.ITEM_CLICK);
+        itemClickEvent.label = label;
+        itemClickEvent.index = indexNumber;
+        itemClickEvent.relatedObject = this;
+        itemClickEvent.item = value;
+        group.dispatchEvent(itemClickEvent);
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5114
Author:   cframpto@adobe.com
Date:     2009-02-27T20:50:47.966083Z

Log Message:
-----------
Fix FxRadioButton doc bug and fix the bug fix I messed up yesterday.

QE Notes: mustella gumbo/RadioButtons passed
Doc Notes:
Bugs: SDK-19475, SDK-19531
Reviewers:

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as

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

--- frameworks/projects/spark/src/spark/components/RadioButton.as
+++ frameworks/projects/spark/src/spark/components/RadioButton.as
@@ -288,7 +288,7 @@
      *  use group for all of the buttons or groupName for all of the buttons.
      *  In addition, all radio buttons in the group must have the same parent.
      *
-     *  @default "radioButton"
+     *  @default "radioGroup"
      *  @see #group
      *
      *  @throws ArgumentError If the radio button has a different parent than
@@ -329,6 +329,24 @@
         invalidateDisplayList();

         dispatchEvent(new Event("groupNameChanged"));
+    }
+
+    //----------------------------------
+    //  selected
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    override public function set selected(value:Boolean):void
+    {
+        super.selected = value;
+        invalidateDisplayList();
     }

     //----------------------------------
@@ -583,7 +601,7 @@
         // If this button is in a rb group and it's selected, but it's not the
         // current selection, deselect the old rb and select this rb.
         if (_group && selected && _group.selection != this)
-            group.mx_internal::setSelection(this, false);
+            _group.mx_internal::setSelection(this, false);
     }

     //--------------------------------------------------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 12126
Author:   klin@adobe.com
Date:     2009-11-23T23:41:51.154822Z

Log Message:
-----------
Recommitting 12078. Fixed a bug in the check-in test that was breaking sometimes.

QE notes: No
Doc notes: No
Bugs: SDK-24264
Reviewer: Ryan
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/ScrollBarTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/VideoPlayer.as
+++ frameworks/projects/spark/src/spark/components/VideoPlayer.as
@@ -1526,8 +1526,8 @@

             scrubBar.addEventListener(TrackBaseEvent.THUMB_PRESS, scrubBar_thumbPressHandler);
             scrubBar.addEventListener(TrackBaseEvent.THUMB_RELEASE, scrubBar_thumbReleaseHandler);
-            scrubBar.addEventListener(Event.CHANGE, scrubBar_changeHandler);
-            scrubBar.addEventListener(FlexEvent.CHANGING, scrubBar_changingHandler);
+            scrubBar.addEventListener(FlexEvent.CHANGE_END, scrubBar_changeEndHandler);
+            scrubBar.addEventListener(FlexEvent.CHANGE_START, scrubBar_changeStartHandler);
         }
         else if (instance == fullScreenButton)
         {
@@ -1669,8 +1669,8 @@
         {
             scrubBar.removeEventListener(TrackBaseEvent.THUMB_PRESS, scrubBar_thumbPressHandler);
             scrubBar.removeEventListener(TrackBaseEvent.THUMB_RELEASE, scrubBar_thumbReleaseHandler);
-            scrubBar.removeEventListener(Event.CHANGE, scrubBar_changeHandler);
-            scrubBar.removeEventListener(FlexEvent.CHANGING, scrubBar_changingHandler);
+            scrubBar.removeEventListener(FlexEvent.CHANGE_END, scrubBar_changeEndHandler);
+            scrubBar.removeEventListener(FlexEvent.CHANGE_START, scrubBar_changeStartHandler);
         }
         else if (instance == fullScreenButton)
         {
@@ -2234,7 +2234,7 @@
     /**
      *  @private
      */
-    private function scrubBar_changingHandler(event:Event):void
+    private function scrubBar_changeStartHandler(event:Event):void
     {
         scrubBarChanging = true;
     }
@@ -2268,7 +2268,7 @@
     /**
      *  @private
      */
-    private function scrubBar_changeHandler(event:Event):void
+    private function scrubBar_changeEndHandler(event:Event):void
     {
         seek(scrubBar.value);


Transferred from the Adobe Open Source Subversion Repository

Revision: 10845
Author:   rfrishbe@adobe.com
Date:     2009-10-02T22:55:13.358388Z

Log Message:
-----------
For VideoElement and VideoPlayer, rather than having to load up the video source always, there's now a way just to load up an image.  This will help for cases, like Design View, where you just want a preview of a component and how it looks without necessarily loading up the whole video source.  The way to do this is through a new mx_internal property, thumbnailSource.  This gets pushed in to a BitmapImage object, so any type of source that BitmapImage supports will be supported by this property.

QE notes: Please add some tests for this
Doc notes: -
Bugs: SDK-22261
Reviewer: Deepa
Tests run: checkintests, mustella VideoElement/VideoPlayer
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/VideoElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/BitmapImage.as
+++ frameworks/projects/spark/src/spark/primitives/BitmapImage.as
@@ -128,7 +128,7 @@
      *  of this property in a tag, use the string (such as "repeat"). If you set the value of
      *  this property in ActionScript, use the constant (such as BitmapFillMode.CLIP).
      *
-     *  When set to BitmapFillMode.clip ("clip"), the bitmap
+     *  When set to BitmapFillMode.CLIP ("clip"), the bitmap
      *  ends at the edge of the region.
      *
      *  When set to BitmapFillMode.REPEAT ("repeat"), the bitmap