Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/events/InterManagerRequest.as
+++ frameworks/projects/framework/src/mx/events/InterManagerRequest.as
@@ -17,6 +17,11 @@
 /**
  *  This is an event that is sent between ApplicationDomains
  *  to notify trusted listeners about activity in a particular manager.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class InterManagerRequest extends Event
 {
@@ -32,6 +37,11 @@
      *  Communication between CursorManagers use this request type.
 	 *  The name property is the name of some CursorManager property.
 	 *  The value property is the value of that property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const CURSOR_MANAGER_REQUEST:String = "cursorManagerRequest";

@@ -39,6 +49,11 @@
      *  Communication between DragManagers use this request type.
 	 *  The name property is the name of some DragManager property.
 	 *  The value property is the value of that property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const DRAG_MANAGER_REQUEST:String = "dragManagerRequest";

@@ -48,6 +63,11 @@
 	 *  so it is available to listen to subsequent
 	 *  InterManagerRequests.
 	 *  The name property is the name of the manager to instantiate.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const INIT_MANAGER_REQUEST:String = "initManagerRequest";

@@ -55,6 +75,11 @@
      *  Request the SystemManager to perform some action.
 	 *  The name property is the name of action to perform.
 	 *  The value property is the value needed to perform that action.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const SYSTEM_MANAGER_REQUEST:String = "systemManagerRequest";

@@ -62,6 +87,11 @@
      *  Communication between ToolTipManagers use this request type.
 	 *  The name property is the name of some ToolTipManager property.
 	 *  The value property is the value of that property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const TOOLTIP_MANAGER_REQUEST:String = "tooltipManagerRequest";

@@ -85,6 +115,11 @@
      	 *
 	 *  @param value Value of a property, or an array of parameters
      	 *  for a method (if not null).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function InterManagerRequest(type:String, bubbles:Boolean = false,
                                  cancelable:Boolean = false,
@@ -108,6 +143,11 @@

     /**
      *  Name of property or method or manager to instantiate.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public var name:String;

@@ -117,6 +157,11 @@

     /**
      *  Value of property, or array of parameters for method.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public var value:Object;


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

--- frameworks/projects/rpc/src/mx/rpc/xml/QualifiedResourceManager.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/QualifiedResourceManager.as
@@ -0,0 +1,96 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-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.rpc.xml
+{
+
+/**
+ * QualifiedResourceManager is a helper class that simply maintains
+ * the order that resources were added and maps a target namespace to
+ * one or more resources.
+ */
+public class QualifiedResourceManager
+{
+    public function QualifiedResourceManager()
+    {
+        super();
+    }
+
+    /**
+     * Adds a resource to a potential Array of resources for a
+     * given namespace.
+     */
+    public function addResource(ns:Namespace, resource:Object):void
+    {
+        if (resources == null)
+            resources = [];
+
+        resources.push(resource);
+
+        if (resourcesMap == null)
+            resourcesMap = {};
+
+        var uri:String = ns.uri;
+        if (uri == null)
+            uri = "";
+
+        var existingResources:Array = resourcesMap[uri] as Array;
+        if (existingResources == null)
+            existingResources = [];
+
+        existingResources.push(resource);
+
+        resourcesMap[uri] = existingResources;
+    }
+
+    /**
+     * Gets an Array of resources for a given target namespace.
+     */
+    public function getResourcesForNamespace(ns:Namespace):Array
+    {
+        return getResourcesForURI(ns.uri);
+    }
+
+    public function getResourcesForURI(uri:String):Array
+    {
+        if (resourcesMap == null)
+            return null;
+
+        if (uri == null)
+            uri = "";
+
+        var resourcesArray:Array = resourcesMap[uri];
+        return resourcesArray;
+    }
+
+
+    /**
+     * Gets an Array of all resources.
+     */
+    public function getResources():Array
+    {
+        return resources;
+    }
+
+    /**
+     * This Array is used to preserve order in which resources were
+     * added so as to support the order in which they are searched.
+     */
+    protected var resources:Array;
+
+    /**
+     * Maps Namespace.uri to an Array of
+     * resources.
+     */
+    protected var resourcesMap:Object;
+}
+
+}


no longer drawing error bars with zero height

--- WeaveUI/src/weave/visualization/plotters/CompoundBarChartPlotter.as
+++ WeaveUI/src/weave/visualization/plotters/CompoundBarChartPlotter.as
@@ -322,29 +322,32 @@
 							top = yNegativeMax + errorPlusVal;
 							bottom = yNegativeMax - errorMinusVal;
 						}
-						var coords:Array = []; // each pair of 4 numbers represents a line segment to draw
-						if (!_horizontalMode)
+						if (top != bottom)
 						{
-							coords.push(left, top, right, top);
-							coords.push(center, top, center, bottom);
-							coords.push(left, bottom, right, bottom);
-						}
-						else
-						{
-							coords.push(top, left, top, right);
-							coords.push(top, center, bottom, center);
-							coords.push(bottom, left, bottom, right);
-						}
-
-						for (i = 0; i < coords.length; i += 2) // loop over x,y coordinate pairs
-						{
-							tempPoint.x = coords[i];
-							tempPoint.y = coords[i + 1];
-							dataBounds.projectPointTo(tempPoint, screenBounds);
-							if (i % 4 == 0) // every other pair
-								graphics.moveTo(tempPoint.x, tempPoint.y);
+							var coords:Array = []; // each pair of 4 numbers represents a line segment to draw
+							if (!_horizontalMode)
+							{
+								coords.push(left, top, right, top);
+								coords.push(center, top, center, bottom);
+								coords.push(left, bottom, right, bottom);
+							}
 							else
-								graphics.lineTo(tempPoint.x, tempPoint.y);
+							{
+								coords.push(top, left, top, right);
+								coords.push(top, center, bottom, center);
+								coords.push(bottom, left, bottom, right);
+							}
+
+							for (i = 0; i < coords.length; i += 2) // loop over x,y coordinate pairs
+							{
+								tempPoint.x = coords[i];
+								tempPoint.y = coords[i + 1];
+								dataBounds.projectPointTo(tempPoint, screenBounds);
+								if (i % 4 == 0) // every other pair
+									graphics.moveTo(tempPoint.x, tempPoint.y);
+								else
+									graphics.lineTo(tempPoint.x, tempPoint.y);
+							}
 						}
 					}
 				}


add functions to as

add functions to as

--- actionscript/src/com/freshplanet/ane/AirDatePicker/AirDatePicker.as
+++ actionscript/src/com/freshplanet/ane/AirDatePicker/AirDatePicker.as
@@ -34,6 +34,9 @@

 		public static const EVENT_CHANGE:String = "CHANGE";
 		public static const EVENT_UPDATE:String = "UPDATE";
+
+		private var _minimumDate:Date;
+		private var _maximumDate:Date;

 		/** AirDatePicker is supported on iOS and Android devices. */
 		public static function get isSupported() : Boolean
@@ -112,6 +115,16 @@
 				_context.call("AirDatePickerDisplayDatePicker", date.fullYear.toString(), month.toString(), date.date.toString());
 			}
 		}
+
+		public function setMinimumDate( date:Date ) : void
+		{
+			_context.call("setMinimumDate", date);
+		}
+
+		public function setMaximumDate( date:Date ) : void
+		{
+			_context.call("setMaximumDate", date);
+		}

 		/** Dismisses the DatePicker from the screen. */
 		public function removeDatePicker( ) : void


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/containers/Box.as
+++ frameworks/projects/mx/src/mx/containers/Box.as
@@ -31,6 +31,11 @@
  *  Number of pixels between the container's bottom border
  *  and the bottom of its content area.
  *  The default value is 0.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingBottom", type="Number", format="Length", inherit="no")]

@@ -38,6 +43,11 @@
  *  Number of pixels between the container's top border
  *  and the top of its content area.
  *  The default value is 0.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingTop", type="Number", format="Length", inherit="no")]

@@ -128,6 +138,11 @@
  *  @see mx.components.Container
  *  @see mx.containers.HBox
  *  @see mx.containers.VBox
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class Box extends Container
 {
@@ -141,6 +156,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function Box()
     {
@@ -181,6 +201,11 @@
      *  and BoxDirection.VERTICAL.
      *
      *  @default BoxDirection.VERTICAL
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get direction():String
     {
@@ -272,6 +297,11 @@
      *
      *
These properties correspond to the layout properties listed
      *  previously and, therefore, are not separately documented.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function measure():void
     {
@@ -365,6 +395,11 @@
      *  @param unscaledHeight Specifies the height of the component, in pixels,
      *  in the component's coordinates, regardless of the value of the
      *  scaleY property of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
@@ -401,6 +436,11 @@
      *  of this container.
      *  A negative value indicates that the container must grow
      *  in order to accommodate the requested size.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function pixelsToPercent(pxl:Number):Number
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -80,6 +80,11 @@
  *  creationComplete event.

  *
  *  @eventType mx.events.ChildExistenceChangedEvent.CHILD_ADD
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="childAdd", type="mx.events.ChildExistenceChangedEvent")]

@@ -95,6 +100,11 @@
  *  setChildIndex() method is called.

  *
  *  @eventType mx.events.IndexChangedEvent.CHILD_INDEX_CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="childIndexChange", type="mx.events.IndexChangedEvent")]

@@ -106,6 +116,11 @@
  *  or removeAllChildren().

  *
  *  @eventType mx.events.ChildExistenceChangedEvent.CHILD_REMOVE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="childRemove", type="mx.events.ChildExistenceChangedEvent")]

@@ -117,6 +132,11 @@
  *  the data to display.

  *
  *  @eventType mx.events.FlexEvent.DATA_CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="dataChange", type="mx.events.FlexEvent")]

@@ -137,6 +157,11 @@
  *  have not been shifted to reflect the new scroll position.

  *
  *  @eventType mx.events.ScrollEvent.SCROLL
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="scroll", type="mx.events.ScrollEvent")]

@@ -155,12 +180,22 @@
  *  or scrolls along with the content ("scroll").
  *
  *  @default "scroll"
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="backgroundAttachment", type="String", inherit="no")]

 /**
  *  The alpha value for the overlay that is placed on top of the
  *  container when it is disabled.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="disabledOverlayAlpha", type="Number", inherit="no")]

@@ -168,6 +203,11 @@
  *  The name of the horizontal scrollbar style.
  *
  *  @default undefined
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="horizontalScrollBarStyleName", type="String", inherit="no")]

@@ -175,6 +215,11 @@
  *  The name of the vertical scrollbar style.
  *
  *  @default undefined
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="verticalScrollBarStyleName", type="String", inherit="no")]

@@ -183,6 +228,11 @@
  *  and the bottom of its content area.
  *
  *  @default 0
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingBottom", type="Number", format="Length", inherit="no")]

@@ -191,6 +241,11 @@
  *  and the top of its content area.
  *
  *  @default 0
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingTop", type="Number", format="Length", inherit="no")]

@@ -287,6 +342,11 @@
  *      ...
  *  </mx:tagname>
  *

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class Container extends UIComponent
                        implements IContainer, IDataRenderer,
@@ -340,6 +400,16 @@
         In this example, _firstChildIndex would be 3 and _numChildren
         would be 4.

+    *
+
+    *  @langversion 3.0
+
+    *  @playerversion Flash 9
+
+    *  @playerversion AIR 1.1
+
+    *  @productversion Flex 3
+
     */

     //--------------------------------------------------------------------------
@@ -373,6 +443,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function Container()
     {
@@ -403,6 +478,11 @@
      *  The creation policy of this container.
      *  This property is useful when the container inherits its creation policy
      *  from its parent container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected var actualCreationPolicy:String;

@@ -460,6 +540,11 @@
      *  Containers use an internal content pane to control scrolling.
      *  The creatingContentPane is true while the container is creating
      *  the content pane so that some events can be ignored or blocked.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get creatingContentPane():Boolean
     {
@@ -588,6 +673,11 @@

     /**
      *  @copy mx.core.UIComponent#contentMouseX
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function get contentMouseX():Number
     {
@@ -603,6 +693,11 @@

     /**
      *  @copy mx.core.UIComponent#contentMouseY
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function get contentMouseY():Number
     {
@@ -758,6 +853,11 @@
      *  and existing children may be removed by calling
      *  removeChild(), removeChildAt(),
      *  or removeAllChildren().

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function get numChildren():int
     {
@@ -800,6 +900,11 @@
      *  Accordion or ViewStack containers.

      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get autoLayout():Boolean
     {
@@ -841,6 +946,11 @@
      *
      *
Unlike viewMetrics, this property is not
      *  overriden by subclasses of Container.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get borderMetrics():EdgeMetrics
     {
@@ -876,6 +986,11 @@
      *  and so on, that were specified in MXML.

      *
      *  @see mx.core.UIComponentDescriptor
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get childDescriptors():Array /* of UIComponentDescriptor */
     {
@@ -939,6 +1054,11 @@
      *  see horizontalScrollPolicy and verticalScrollPolicy.

      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get clipContent():Boolean
     {
@@ -1009,6 +1129,11 @@
      *  Otherwise, it is ignored.

      *
      *  @default -1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get creationIndex():int
     {
@@ -1087,6 +1212,11 @@
      *  In that case, it is the responsibility of the MXML author
      *  to create the children by calling the
      *  createComponentsFromDescriptors() method.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get creationPolicy():String
     {
@@ -1122,6 +1252,11 @@
      *  Enter key is the same as clicking this Button control.
      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get defaultButton():IFlexDisplayObject
     {
@@ -1160,6 +1295,11 @@
      *
      *  @default null
      *  @see mx.core.IDataRenderer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get data():Object
     {
@@ -1216,6 +1356,11 @@
      *  button in the horizontal scroll bar is pressed.
      *
      *  @default 5
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get horizontalLineScrollSize():Number
     {
@@ -1256,6 +1401,11 @@
      *  will be calculated to be a full screen.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get horizontalPageScrollSize():Number
     {
@@ -1294,6 +1444,11 @@
      *  Manipulation of the horizontalScrollPolicy
      *  and horizontalScrollPosition
      *  properties should provide sufficient control over the scroll bar.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get horizontalScrollBar():ScrollBar
     {
@@ -1329,6 +1484,11 @@
      *  that is currently visible.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get horizontalScrollPosition():Number
     {
@@ -1402,6 +1562,11 @@
      *

      *
      *  @default ScrollPolicy.AUTO
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get horizontalScrollPolicy():String
     {
@@ -1455,6 +1620,11 @@
      *
The image can be a JPEG, GIF, PNG, SVG, or SWF file.

      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get icon():Class
     {
@@ -1494,6 +1664,11 @@
      *  this string appears in the corresponding header.

      *
      *  @default ""
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get label():String
     {
@@ -1518,6 +1693,11 @@
      *  The largest possible value for the
      *  horizontalScrollPosition property.
      *  Defaults to 0 if the horizontal scrollbar is not present.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get maxHorizontalScrollPosition():Number
     {
@@ -1534,6 +1714,11 @@
      *  The largest possible value for the
      *  verticalScrollPosition property.
      *  Defaults to 0 if the vertical scrollbar is not present.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get maxVerticalScrollPosition():Number
     {
@@ -1661,6 +1846,11 @@
      *  set tabEnabled = false on the component that you have added.
      *  Doing so prevents users from tabbing to the visual-only component
      *  that you have added.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get rawChildren():IChildList
     {
@@ -1702,6 +1892,11 @@
      *  or when you scroll by using the mouse wheel.
      *
      *  @default 5
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get verticalLineScrollSize():Number
     {
@@ -1742,6 +1937,11 @@
      *  will be calculated to be a full screen.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get verticalPageScrollSize():Number
     {
@@ -1780,6 +1980,11 @@
      *  Manipulation of the verticalScrollPolicy
      *  and verticalScrollPosition
      *  properties should provide sufficient control over the scroll bar.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get verticalScrollBar():ScrollBar
     {
@@ -1815,6 +2020,11 @@
      *  that is currently visible.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get verticalScrollPosition():Number
     {
@@ -1889,6 +2099,11 @@
      *

      *
      *  @default ScrollPolicy.AUTO
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get verticalScrollPolicy():String
     {
@@ -1940,6 +2155,11 @@
      *  For example, the viewMetrics property for the
      *  Panel class should return an object whose top property
      *  includes the thickness of the Panel container's title bar.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get viewMetrics():EdgeMetrics
     {
@@ -2012,6 +2232,11 @@
      *  scroll bar. If a scroll policy is ScrollPolicy.AUTO,
      *  the chrome measurement does not include the scroll bar thickness,
      *  even if a scroll bar is displayed.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get viewMetricsAndPadding():EdgeMetrics
     {
@@ -2150,6 +2375,11 @@
      *  @see mx.core.IUIComponent
      *
      *  @tiptext Adds a child object to this container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function addChild(child:DisplayObject):DisplayObject
     {
@@ -2166,6 +2396,11 @@
         childAdded(child);

         return child;
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
         */
     }

@@ -2205,6 +2440,11 @@
      *  or to the type of the added component.
      *
      *  @see mx.core.IUIComponent
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function addChildAt(child:DisplayObject,
                                         index:int):DisplayObject
@@ -2251,6 +2491,11 @@
      *  @return The removed child as an object of type DisplayObject.
      *  You typically cast the return value to UIComponent,
      *  or to the type of the removed component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function removeChild(child:DisplayObject):DisplayObject
     {
@@ -2308,6 +2553,11 @@
      *  @return The removed child as an object of type DisplayObject.
      *  You typically cast the return value to UIComponent,
      *  or to the type of the removed component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function removeChildAt(index:int):DisplayObject
     {
@@ -2316,6 +2566,16 @@
         /*

         Shouldn't implement removeChildAt() in terms of removeChild().
+
+        *
+
+        *  @langversion 3.0
+
+        *  @playerversion Flash 9
+
+        *  @playerversion AIR 1.1
+
+        *  @productversion Flex 3

         */
     }
@@ -2332,6 +2592,11 @@
      *  @return Reference to the child as an object of type DisplayObject.
      *  You typically cast the return value to UIComponent,
      *  or to the type of a specific Flex control, such as ComboBox or TextArea.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function getChildAt(index:int):DisplayObject
     {
@@ -2359,6 +2624,11 @@
      *  @return The DisplayObject representing the child as an object of type DisplayObject.
      *  You typically cast the return value to UIComponent,
      *  or to the type of a specific Flex control, such as ComboBox or TextArea.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function getChildByName(name:String):DisplayObject
     {
@@ -2415,6 +2685,11 @@
      *  @param child Reference to child whose index to get.
      *
      *  @return Number between 0 and (numChildren - 1).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function getChildIndex(child:DisplayObject):int
     {
@@ -2445,6 +2720,11 @@
      *
      *  @param newIndex Number that indicates the new index.
      *  Must be an integer between 0 and (numChildren - 1).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function setChildIndex(child:DisplayObject, newIndex:int):void
     {
@@ -2508,6 +2788,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get numElements():int
     {
@@ -2516,6 +2801,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getElementAt(index:int):IVisualElement
     {
@@ -2524,6 +2814,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getElementIndex(element:IVisualElement):int
     {
@@ -2535,6 +2830,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function addElement(element:IVisualElement):IVisualElement
     {
@@ -2546,6 +2846,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function addElementAt(element:IVisualElement, index:int):IVisualElement
     {
@@ -2557,6 +2862,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function removeElement(element:IVisualElement):IVisualElement
     {
@@ -2568,6 +2878,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function removeElementAt(index:int):IVisualElement
     {
@@ -2576,6 +2891,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function setElementIndex(element:IVisualElement, index:int):void
     {
@@ -2587,6 +2907,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function swapElements(element1:IVisualElement, element2:IVisualElement):void
     {
@@ -2600,6 +2925,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function swapElementsAt(index1:int, index2:int):void
     {
@@ -2984,6 +3314,11 @@
      *  scaleY property of the component.
      *
      *  @see mx.core.UIComponent
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
@@ -3063,6 +3398,11 @@

     /**
      *  @copy mx.core.UIComponent#contentToGlobal()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function contentToGlobal(point:Point):Point
     {
@@ -3074,6 +3414,11 @@

     /**
      *  @copy mx.core.UIComponent#globalToContent()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function globalToContent(point:Point):Point
     {
@@ -3085,6 +3430,11 @@

     /**
      *  @copy mx.core.UIComponent#contentToLocal()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function contentToLocal(point:Point):Point
     {
@@ -3097,6 +3447,11 @@

     /**
      *  @copy mx.core.UIComponent#localToContent()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function localToContent(point:Point):Point
     {
@@ -3263,6 +3618,11 @@

     /**
      *  Used internally by the Dissolve Effect to add the overlay to the chrome of a container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function attachOverlay():void
     {
@@ -3277,6 +3637,11 @@
      *
      *  The Container fills the overlay object so it covers the viewable area returned
      *  by the viewMetrics property and uses the cornerRadius style.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override mx_internal function fillOverlay(overlay:UIComponent, color:uint,
                                               targetArea:RoundedRectangle = null):void
@@ -3328,6 +3693,11 @@
      *  If true, then also execute the bindings on this
      *  container's children, grandchildren,
      *  great-grandchildren, and so on.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function executeBindings(recurse:Boolean = false):void
     {
@@ -3489,6 +3859,11 @@
      *  of the container.
      *
      *  @see #rawChildren
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getChildren():Array
     {
@@ -3505,6 +3880,11 @@

     /**
      *  Removes all children from the child list of this container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function removeAllChildren():void
     {
@@ -3604,6 +3984,11 @@
      *
      *  @param recurse If true, recursively
      *  create components.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function createComponentsFromDescriptors(
                         recurse:Boolean = true):void
@@ -3664,6 +4049,11 @@
      *  of its children, based on the value of the component's creationPolicy property.
      *
      *  @see mx.core.UIComponentDescriptor
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function createComponentFromDescriptor(
                             descriptor:ComponentDescriptor,
@@ -4096,6 +4486,11 @@
      *  @param unscaledHeight Specifies the height of the component, in pixels,
      *  in the component's coordinates, regardless of the value of the
      *  scaleY property of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function layoutChrome(unscaledWidth:Number,
                                     unscaledHeight:Number):void
@@ -4113,6 +4508,11 @@
     /**
      *  Creates the container's border skin
      *  if it is needed and does not already exist.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function createBorder():void
     {
@@ -4828,6 +5228,11 @@
      *  Content that doesn't appear in the viewable area gets clipped.
      *  This method should be overridden by subclasses that have scrollable
      *  chrome in the content area.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function scrollChildren():void
     {
@@ -4936,6 +5341,11 @@
      *  If true, then also execute the bindings on this
      *  container's grandchildren,
      *  great-grandchildren, and so on.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function executeChildBindings(recurse:Boolean):void
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/validators/CurrencyValidator.as
+++ frameworks/projects/spark/src/spark/validators/CurrencyValidator.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 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 spark.validators
 {


Fixed bug in scrollbars so that the list is disabled for user interactions until the scroll action is complete

--- src/org/openPyro/core/UIContainer.as
+++ src/org/openPyro/core/UIContainer.as
@@ -1,4 +1,9 @@
 package org.openPyro.core{
+	import flash.display.DisplayObject;
+	import flash.events.Event;
+	import flash.events.MouseEvent;
+	import flash.geom.Rectangle;
+
 	import org.openPyro.controls.ScrollBar;
 	import org.openPyro.controls.events.ScrollEvent;
 	import org.openPyro.controls.skins.IScrollableContainerSkin;
@@ -6,10 +11,6 @@
 	import org.openPyro.layout.AbsoluteLayout;
 	import org.openPyro.layout.IContainerMeasurementHelper;
 	import org.openPyro.layout.ILayout;
-
-	import flash.display.DisplayObject;
-	import flash.events.MouseEvent;
-	import flash.geom.Rectangle;

 	/**
 	 * UIContainers extend UIControls and introduce
@@ -504,15 +505,16 @@
 			_verticalScrollBar.incrementalScrollDelta = _verticalScrollIncrement;
 			_verticalScrollBar.name = "vscrollbar_"+this.name;
 			_verticalScrollBar.width = 15;
-			_verticalScrollBar.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void{
-				mouseOverDisabled = true;
-			})
+			_verticalScrollBar.addEventListener(Event.ADDED_TO_STAGE, function():void{
+				_verticalScrollBar.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void{
+					mouseOverDisabled = true;
+				})
+				_verticalScrollBar.stage.addEventListener(MouseEvent.MOUSE_UP, function(event:MouseEvent):void{
+					mouseOverDisabled = false;
+				})
+			});
 			_verticalScrollBar.addEventListener(PyroEvent.SIZE_VALIDATED, onVerticalScrollBarSizeValidated);
 			_verticalScrollBar.addEventListener(PyroEvent.UPDATE_COMPLETE, onVScrollBarUpdateComplete);
-			_verticalScrollBar.addEventListener(MouseEvent.MOUSE_UP, function(event:MouseEvent):void{
-				mouseOverDisabled = false;
-			})
-
 			_verticalScrollBar.skin = IScrollableContainerSkin(_skin).verticalScrollBarSkin;
 			_verticalScrollBar.addEventListener(ScrollEvent.SCROLL, onVerticalScroll)
 			_verticalScrollBar.doOnAdded()
@@ -539,12 +541,16 @@
 			_horizontalScrollBar.incrementalScrollDelta = _horizontalScrollIncrement
 			_horizontalScrollBar.name = "hscrollbar_"+this.name;
 			_horizontalScrollBar.height = 15;
-			_horizontalScrollBar.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void{
-				mouseOverDisabled = true;
-			})
-			_horizontalScrollBar.addEventListener(MouseEvent.MOUSE_UP, function(event:MouseEvent):void{
-				mouseOverDisabled = false;
-			})
+
+			_horizontalScrollBar.addEventListener(Event.ADDED_TO_STAGE, function(event:Event):void{
+				_horizontalScrollBar.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void{
+					mouseOverDisabled = true;
+				});
+				_horizontalScrollBar.stage.addEventListener(MouseEvent.MOUSE_UP, function(event:MouseEvent):void{
+					mouseOverDisabled = false;
+				});
+			});
+
 			_horizontalScrollBar.addEventListener(PyroEvent.SIZE_VALIDATED, onHorizontalScrollBarSizeValidated)
 			_horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, onHorizontalScroll);
 			_horizontalScrollBar.parentContainer = this;
@@ -552,9 +558,6 @@
 			_horizontalScrollBar.skin = IScrollableContainerSkin(_skin).horizontalScrollBarSkin;
 			_horizontalScrollBar.visible = false;
 			$addChild(_horizontalScrollBar);
-			_horizontalScrollBar.addEventListener(MouseEvent.MOUSE_DOWN, function(event:MouseEvent):void{
-				mouseOverDisabled = false;
-			})
 		}

 		protected function onHorizontalScrollBarSizeValidated(event:PyroEvent):void


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

--- frameworks/projects/mx/src/mx/controls/Text.as
+++ frameworks/projects/mx/src/mx/controls/Text.as
@@ -0,0 +1,474 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls
+{
+
+import mx.core.mx_internal;
+import mx.core.UITextField;
+import mx.events.FlexEvent;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+include "../styles/metadata/LeadingStyle.as"
+
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="horizontalAlign", kind="style")]
+[Exclude(name="verticalAlign", kind="style")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[DefaultBindingProperty(source="text",destination="text")]
+
+[IconFile("Text.png")]
+
+/**
+ *  The Text control displays multiline, noneditable text.
+ *  Use the Label control if you need only a single line of text.
+ *
+ *
The Text control does not support scroll bars.
+ *  If you need scrolling, you should use a non-editable TextArea control.

+ *
+ *
You can format the text in a Text control using HTML tags,
+ *  which are applied after the control's CSS styles are applied.
+ *  You can also put padding around the four sides of the text.

+ *
+ *
The text in a Text control is selectable by default,
+ *  but you can make it unselectable by setting the selectable
+ *  property to false.

+ *
+ *
If the control is not as wide as the text, the text will wordwrap.
+ *  The text is always aligned top-left in the control.

+ *
+ *
To size a Text component, it's common to specify an explicit width
+ *  and let Flex determine the height as required to display all the text.
+ *  If you specify an explicit height, some of the text may get clipped;
+ *  unlike Label, Text does not truncate its text with "...".
+ *  It's also common to use percentage widths and heights with Text.

+ *
+ *
If you leave both the width and the height unspecified,
+ *  Flex calculates them based on any explicit line breaks
+ *  in the text, with no wordwrapping within lines.
+ *  For example, if you set the text property,
+ *  the newline character "\n" causes a line break.
+ *  If you set the htmlText property, the HTML markup
+ *  <br> causes a line break.
+ *  If your text or htmlText is lengthy
+ *  and doesn't contain line breaks, you can get a very wide Text
+ *  component; you can set the maxWidth to limit
+ *  how wide the component is allowed to grow.

+ *
+ *
Text controls do not have backgrounds or borders
+ *  and cannot take focus.

+ *
+ *
The Text control has the following default sizing characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           Flex sizes the control to fit the text, with the width long enough to fit the longest line of text and height tall enough to fit the number of lines. If you do not specify a pixel width, the height is determined by the number of explicit line breaks in the text string. If the text length changes, the control resizes to fit the new text.
+ *

+ *

+ *           Minimum size
+ *           0 pixels.
+ *

+ *

+ *           ChMaximum sizear03
+ *           10000 by 10000 pixels
+ *

+ *

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

+ *
+ *

+ *  <mx:Text
+ *  leading="2"
+ *  />
+ *

+ *
+ *  @includeExample examples/TextExample.mxml
+ *
+ *  @see mx.controls.Label
+ *  @see mx.controls.TextInput
+ *  @see mx.controls.TextArea
+ *  @see mx.controls.RichTextEditor
+ */
+public class Text extends Label
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Implementation notes
+    //
+    //--------------------------------------------------------------------------
+
+    /*
+        Like any component, a Text component's width can be determined
+        by an explicitWidth, a percentWidth, or a measuredWidth,
+        and similarly for its height.
+
+        Therefore there are nine measurement/layout cases.
+        Eight of them are easily handled by the standard LayoutManager
+        sequence of calling measure() and then updateDisplayList().
+
+        However, when a percentage width but no height is specified,
+        the situation is more complicated.
+        The problem is that in measure() we need to compute the measuredHeight
+        by wordwrapping the text within some appropriate width, but we don't
+        know what that width (some percentage of the parent's available width)
+        is until updateDisplayList() has passed it as unscaledWidth.
+
+        The same problem occurs when left and right constraints are specified
+        (and therefore the actual width depends on the parent's width)
+        but we need to compute a measuredHeight.
+
+        Therefore in these two cases we have to make a second measurement/layout
+        pass by calling invalidateSize() and invalidateDisplayList()
+        inside updateDisplayList(), which will cause measure() and
+        updateDisplayList() to be called a second time.
+
+    */
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function Text()
+    {
+        super();
+
+        selectable = true;
+        truncateToFit = false;
+
+        addEventListener(FlexEvent.UPDATE_COMPLETE, updateCompleteHandler);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var lastUnscaledWidth:Number = NaN;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+	private var widthChanged:Boolean = true;
+
+    /**
+     *  @private
+     */
+    override public function set explicitWidth(value:Number):void
+    {
+    	// Due to player bugs relating to scaling text, we
+    	// have to be careful to set wordWrap appropriately
+    	// (which we do in commitProperties).
+    	// Also have to re-measure when width changes, because width
+    	// can affect height.
+    	if (value != explicitWidth)
+    	{
+    		widthChanged = true;
+   			invalidateProperties();
+    		invalidateSize();
+    	}
+    	super.explicitWidth = value;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set percentWidth(value:Number):void
+    {
+    	// Due to player bugs relating to scaling text, we
+    	// have to be careful to set wordWrap appropriately
+    	// (which we do in commitProperties).
+    	// Also have to re-measure when width changes, because width
+    	// can affect height.
+    	if (value != percentWidth)
+    	{
+    		widthChanged = true;
+ 			invalidateProperties();
+    		invalidateSize();
+    	}
+    	super.percentWidth = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function childrenCreated():void
+    {
+        super.childrenCreated();
+        textField.wordWrap = true;
+        textField.multiline = true;
+        textField.mouseWheelEnabled = false;
+
+    }
+
+	override protected function commitProperties():void
+	{
+		super.commitProperties();
+		// if explicitWidth or percentWidth changed, we want to set
+		// wordWrap appropriately before measuring()
+		if (widthChanged)
+		{
+			textField.wordWrap = !isNaN(percentWidth) || !isNaN(explicitWidth);
+			widthChanged = false;
+		}
+	}
+
+    /**
+     *  @private
+     *
+     *  If the Text component has an explicit width,
+     *  its text wordwraps within that width,
+     *  and the measured height is tall enough to display all the text.
+     *  (If there is an explicit height or a percent height in this case,
+     *  the text may get clipped.)
+     *
+     *  If it doesn't have an explicit height,
+     *  the measured height is tall enough to display all the text.
+     *  If there is an explicit height or a percent height,
+     *  the text may get clipped.
+     *
+     *  If the Text doesn't have an explicit width,
+     *  the measured width is based on explicit line breaks
+     *  (e.g, \n, <br>, etc.).
+     *  For example, if the text is
+     *
+     *      The question of the day is:
+     *      What is the right algorithm for Text?
+     *
+     *  with a line break between the two lines, then the measured width
+     *  will be wide enough to see all of the second line,
+     *  and the measured height will be tall enough for two lines.
+     *
+     *  For lengthy text without explicit line breaks,
+     *  this will produce unusably wide layout.
+     */
+    override protected function measure():void
+    {
+        if (isSpecialCase())
+        {
+            if (!isNaN(lastUnscaledWidth))
+            {
+                measureUsingWidth(lastUnscaledWidth);
+            }
+            else
+            {
+                // We're not ready to measure yet.
+                // We need updateDisplayList() to first tell us the unscaledWidth
+                // that has been calculated from the percentWidth.
+                measuredWidth = 0;
+                measuredHeight = 0;
+            }
+            return;
+        }
+
+        measureUsingWidth(explicitWidth);
+
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        // Don't call super.updateDisplayList();
+        // Text has a different layout algorithm than Label.
+        if (isSpecialCase())
+        {
+            var firstTime:Boolean = isNaN(lastUnscaledWidth) || lastUnscaledWidth != unscaledWidth;
+            lastUnscaledWidth = unscaledWidth;
+            if (firstTime)
+            {
+                invalidateSize();
+                return;
+            }
+        }
+
+        // The textField occupies the entire Text bounds minus the padding.
+        var paddingLeft:Number = getStyle("paddingLeft");
+        var paddingTop:Number = getStyle("paddingTop");
+        var paddingRight:Number = getStyle("paddingRight");
+        var paddingBottom:Number = getStyle("paddingBottom");
+        textField.setActualSize(unscaledWidth - paddingLeft - paddingRight,
+                                unscaledHeight - paddingTop - paddingBottom);
+
+        textField.x = paddingLeft;
+        textField.y = paddingTop;
+        // Although we also set wordWrap in commitProperties(), we do
+        // this here to handle width being set through setActualSize().
+        if (Math.floor(width) < Math.floor(measuredWidth))
+			textField.wordWrap =  true;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  The cases that requires a second pass through the LayoutManager
+     *  are <mx:Text width="N%"/> (the control is to use the percentWidth
+     *  but the measuredHeight) and <mx:Text left="N" right="N"/>
+     *  (the control is to use the parent's width minus the constraints
+     *  but the measuredHeight).
+     */
+    private function isSpecialCase():Boolean
+    {
+        var left:Number = getStyle("left");
+        var right:Number = getStyle("right");
+
+        return (!isNaN(percentWidth) || (!isNaN(left) && !isNaN(right))) &&
+               isNaN(explicitHeight) &&
+               isNaN(percentHeight);
+    }
+
+    /**
+     *  @private
+     */
+    private function measureUsingWidth(w:Number):void
+    {
+        /*
+        var t:String = isHTML ? explicitHTMLText : text;
+
+        // If the text is null, empty, or a single character,
+        // make the measured size big enough to hold
+        // a capital and decending character using the current font.
+        if (!t || t.length < 2)
+            t = "Wj";
+        */
+
+        // Don't call super.measure();
+        // Text has a different measurement algorithm than Label.
+
+        var paddingLeft:Number = getStyle("paddingLeft");
+        var paddingTop:Number = getStyle("paddingTop");
+        var paddingRight:Number = getStyle("paddingRight");
+        var paddingBottom:Number = getStyle("paddingBottom");
+
+        // Ensure that the proper CSS styles get applied
+        // to the textField before measuring text.
+        // Otherwise the callLater(validateNow) in UITextField's
+        // styleChanged() method can apply the CSS styles too late.
+        textField.validateNow();
+
+        textField.autoSize = "left";
+
+        // If we know what width to use for word wrapping,
+        // determine the height by wordwrapping to that width.
+        if (!isNaN(w))
+        {
+            textField.width = w - paddingLeft - paddingRight;
+
+            measuredWidth = Math.ceil(textField.textWidth) + UITextField.TEXT_WIDTH_PADDING;
+            measuredHeight = Math.ceil(textField.textHeight) + UITextField.TEXT_HEIGHT_PADDING;
+            // Round up because embedded fonts can produce fractional values;
+            // if a parent container rounds a component's actual width or height
+            // down, the component may not be wide enough to display the text.
+        }
+
+        // If we don't know what width to use for word wrapping,
+        // determine the measured width and height
+        // from the explicit line breaks such as "\n" and "
".
+        else
+        {
+        	var oldWordWrap:Boolean = textField.wordWrap;
+            textField.wordWrap = false;
+
+            measuredWidth = Math.ceil(textField.textWidth) + UITextField.TEXT_WIDTH_PADDING;
+            measuredHeight = Math.ceil(textField.textHeight) + UITextField.TEXT_HEIGHT_PADDING;
+            // Round up because embedded fonts can produce fractional values;
+            // if a parent container rounds a component's actual width or height
+            // down, the component may not be wide enough to display the text.
+
+            textField.wordWrap = oldWordWrap;
+        }
+
+        textField.autoSize = "none";
+
+        // Add in the padding.
+        measuredWidth += paddingLeft + paddingRight;
+        measuredHeight += paddingTop + paddingBottom;
+
+        if (isNaN(explicitWidth))
+        {
+            // it could be any size
+            measuredMinWidth = DEFAULT_MEASURED_MIN_WIDTH;
+            measuredMinHeight = DEFAULT_MEASURED_MIN_HEIGHT;
+        }
+        else
+        {
+            // lock in the content area
+            measuredMinWidth = measuredWidth;
+            measuredMinHeight = measuredHeight;
+        }
+
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private function updateCompleteHandler(event:FlexEvent):void
+    {
+        lastUnscaledWidth = NaN;
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11163
Author:   dloverin@adobe.com
Date:     2009-10-26T20:35:33.260693Z

Log Message:
-----------
Changes to turn on the per-module style feature by default.

The feature can be turned off by compiling with -isolateStyles=false.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex, Paul
Tests run: checkintests, all mustella
Is noteworthy for integration: Yes.

Summary of changes:

frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as
Propagate the module factory in setFlexContent.

frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
Implement IFlexModule

frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as
Move getting style declaration from the constructor to the override of the module factory setter.

frameworks/projects/framework/src/mx/controls/Alert.as
Set moduleFactory to parent if parent is an IFlexModuleFactory.

frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/controls/RadioButton.as
Move getting style declaration from the constructor to the override of the module factory setter.

frameworks/projects/framework/src/mx/controls/SWFLoader.as
Handle the “get parent module factory” request from an embedded swf.

frameworks/projects/framework/src/mx/core/Container.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/core/UIComponent.as
Defer setting styles until a module factory is set.

frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
Set the module factory of an added child.

frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as
Set the module factory of the tooltip to be the same as the target.

frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
Rename parameter based on PARB feedback.

frameworks/projects/framework/src/mx/styles/IStyleModule.as
Add setStyleDeclarations per spec.

frameworks/projects/framework/src/mx/styles/StyleManager.as
Deprecate old static StyleManager API.

frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
Use IStyleModule.setStyleDeclarations.

frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
A fix to get the correct style manager and pass styleManager in CSSStyleDeclaration.

frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/spark/src/spark/components/Group.as
Propagate moduleFactory in elementAdded().

modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java
Rename –create-style-manager option to –isloateStyles. The option has been changed from hidden to advanced.

modules/compiler/src/java/flex2/compiler/css/StyleDef.vm
Fix bug to not add a default factory that is not needed.

modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDef.vm
Initialize styles in a module factory setter override.

modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm
Changed emitComponentInitializers_1 to not emit style related code if the document implements IFlexModule. Created emitComponentStyleInitializers to emit those styles.

modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java
Generate code to match ClassDef.vm and ClassDefLib.vm changes.

modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java
Add IFlexModuleFactory to standard imports.

modules/compiler/src/java/flex2/configuration_en.properties
Rename –create-style-manager option to –isloateStyles.

modules/compiler/src/java/flex2/tools/PreLink.java
Rename –create-style-manager option to –isloateStyles.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.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/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleModule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.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/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.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/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/configuration_en.properties</path>
<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/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.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/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.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/core/UIComponent.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/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>

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

--- frameworks/projects/mx/src/mx/controls/Alert.as
+++ frameworks/projects/mx/src/mx/controls/Alert.as
@@ -22,6 +22,8 @@
 import mx.core.EdgeMetrics;
 import mx.core.FlexGlobals;
 import mx.core.IFlexDisplayObject;
+import mx.core.IFlexModule;
+import mx.core.IFlexModuleFactory;
 import mx.core.mx_internal;
 import mx.core.UIComponent;
 import mx.events.CloseEvent;
@@ -594,13 +596,18 @@
             alert.addEventListener(CloseEvent.CLOSE, closeHandler);

 		// Setting a module factory allows the correct embedded font to be found.
-        if (parent is UIComponent)
-        	alert.moduleFactory = UIComponent(parent).moduleFactory;
+        if (parent is IFlexModule)
+        	alert.moduleFactory = IFlexModule(parent).moduleFactory;
         else
         {
-            alert.moduleFactory = FlexGlobals.topLevelApplication.moduleFactory;
-            // also set document is parent isn't a UIComponent
-            alert.document = FlexGlobals.topLevelApplication.document;
+            if (parent is IFlexModuleFactory)
+                alert.moduleFactory = IFlexModuleFactory(parent);
+            else
+                alert.moduleFactory = FlexGlobals.topLevelApplication.moduleFactory;
+
+            // also set document if parent isn't a UIComponent
+            if (!parent is UIComponent)
+                alert.document = FlexGlobals.topLevelApplication.document;
         }

         alert.addEventListener(FlexEvent.CREATION_COMPLETE, static_creationCompleteHandler);


fixed missing reset value of VertexStream._invalidMinMax to false (issue #293)

--- src/aerys/minko/type/stream/VertexStream.as
+++ src/aerys/minko/type/stream/VertexStream.as
@@ -104,6 +104,8 @@
 		{
 			if (!_invalidMinMax)
 				return ;
+
+			_invalidMinMax = false;

 			var size		: uint	= format.dwordsPerVertex;
 			var dataLength	: uint	= data.length;


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

--- frameworks/projects/framework/src/mx/core/ILayoutDirectionElement.as
+++ frameworks/projects/framework/src/mx/core/ILayoutDirectionElement.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
 package mx.core
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as
+++ frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as
@@ -32,6 +32,11 @@
  *  that the other ApplicationDomain's DragManager listens
  *  for and it marshals the DragEvent and dispatches it to
  *  the potential dropTarget.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class InterDragManagerEvent extends DragEvent
 {
@@ -48,6 +53,11 @@
 	 *  The receiving DragManager marshals the DragEvent and dispatches it
 	 *  to the target specified in the dropTarget property.
 	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
     public static const DISPATCH_DRAG_EVENT:String =
         "dispatchDragEvent";
@@ -97,6 +107,11 @@
 	 *
 	 *  @param draggedItem An object representing the item that was dragged.
 	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function InterDragManagerEvent(type:String, bubbles:Boolean = false,
 										cancelable:Boolean = false,
@@ -144,6 +159,11 @@
 	/**
 	 *  The potential drop target in the other ApplicationDomain
      *  (which is why it is a DisplayObject and not some other class).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public var dropTarget:DisplayObject;

@@ -157,6 +177,11 @@
 	 *  marshaled DragEvent.
 	 *
 	 *  @see mx.events.DragEvent
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public var dragEventType:String;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8486
Author:   smgilson@adobe.com
Date:     2009-07-09T18:42:45.734868Z

Log Message:
-----------
Third checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</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/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.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/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.as</path>
<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/components/CheckBox.as</path>
<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/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.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/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.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/projects/spark/src/spark/components/supportClasses/ItemRenderer.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/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -152,7 +152,7 @@
  *
  *  @mxml
  *
- *
The <SkinnableContainer> tag inherits all of the tag
+ *
The <s:SkinnableContainer> tag inherits all of the tag
  *  attributes of its superclass and adds the following tag attributes:

  *
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 7910
Author:   egeorgie@adobe.com
Date:     2009-06-17T01:41:55.138890Z

Log Message:
-----------
P-ARB changes:

* IGraphicElement sharedIndex -> DisplayObjectSharingMode
* ScrollUnit -> NavigationUnit
* LayoutBase.getDestinationIndex -> LayoutBase.getNavigationDestinationIndex, param order reversed!!!!
* mouseOpaque -> mouseEnabledWhereTransparent
* various other small renames and changes to non-public APIs

Doc Notes: None
Bugs: N/A
Reviewer: Deepa
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexFXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/InvalidatingSprite.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/ScrollUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/NavigationUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/DisplayObjectSharingMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -799,24 +799,24 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function getHorizontalScrollPositionDelta(scrollUnit:uint):Number
+    public function getHorizontalScrollPositionDelta(navigationUnit:uint):Number
     {
         return (contentGroup) ?
-            contentGroup.getHorizontalScrollPositionDelta(scrollUnit) : 0;
-    }
-
-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function getVerticalScrollPositionDelta(scrollUnit:uint):Number
+            contentGroup.getHorizontalScrollPositionDelta(navigationUnit) : 0;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function getVerticalScrollPositionDelta(navigationUnit:uint):Number
     {
         return (contentGroup) ?
-            contentGroup.getVerticalScrollPositionDelta(scrollUnit) : 0;
+            contentGroup.getVerticalScrollPositionDelta(navigationUnit) : 0;
     }

     //--------------------------------------------------------------------------
@@ -859,7 +859,7 @@
         {
             if (_placeHolderGroup != null)
             {
-                var sourceContent:Array = _placeHolderGroup.mxmlContent;
+                var sourceContent:Array = _placeHolderGroup.getMXMLContent();

                 contentGroup.mxmlContent = sourceContent ? sourceContent.slice() : null;

@@ -988,7 +988,7 @@

             contentGroupProperties = newContentGroupProperties;

-            var myMxmlContent:Array = contentGroup.mxmlContent;
+            var myMxmlContent:Array = contentGroup.getMXMLContent();

             if (myMxmlContent)
             {


A few tweaks after foolishly reading the commit mail.

--- tamarin-central/thane/AMF3Encoder.as
+++ tamarin-central/thane/AMF3Encoder.as
@@ -8,7 +8,7 @@
 {
     public static function encode (bytes :ByteArray, value :*) :void
     {
-        encodeValue(new Context(bytes), bytes, value);
+        encodeValue(new Context(bytes), value);
     }

     private static function encodeValue (context :Context, value :*) :void
@@ -56,7 +56,7 @@

         } else if (value is Date) {
             // 0x08
-            throw new Error("Date support not supported");
+            throw new Error("Date serialization not supported");

         } else if (value is Array) {
             context.bytes.writeByte(0x09);
@@ -93,12 +93,14 @@
             context.bytes.writeByte(0x80 | ((n >> 7) & 0x7F));
             context.bytes.writeByte(0x00 | (n & 0x7F));

-        } else {
+        } else if (n < 0x3FFFFFFF) {
             context.bytes.writeByte(0x80 | (n >> 21));
             context.bytes.writeByte(0x80 | ((n >> 14) & 0x7F));
             context.bytes.writeByte(0x80 | ((n >> 7) & 0x7F));
             context.bytes.writeByte(0x00 | (n & 0x7F));

+        } else {
+            throw new Error("Internal error - numerical overflow: " + n);
         }
     }

@@ -129,21 +131,27 @@
             return;
         }

+        // arrays consist of a dense part (zero-based uninterrupted numerical indices)
+        // and an associate part; find the dense first --
         var denseEnd :int = 0;
         while (denseEnd < arr.size && arr[denseEnd] === undefined) {
             denseEnd ++;
         }
+        // and jot down in the bytestream how much of that there is
         encodeInteger(1 | (denseEnd << 1));

+        // then see if there's any associative bits
         for (var prop :Object in arr) {
             if ((prop is int || prop is uint) && prop >= 0 && prop < denseEnd) {
                 continue;
             }
+            // if so, just stream them out
             encodeString(String(prop));
             encodeValue(context, arr[prop]);
         }
         encodeString("");

+        // finally send the dense values
         for (var ii :int = 0; ii < denseEnd; ii ++) {
             encodeValue(context, arr[ii]);
         }


DisplayUtil.sortDisplayChildren now uses ArrayUtil.stableSort

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@460 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flash/DisplayUtil.as
+++ src/as/com/threerings/flash/DisplayUtil.as
@@ -21,6 +21,7 @@

 package com.threerings.flash {

+import com.threerings.util.ArrayUtil;
 import com.threerings.util.ClassUtil;

 import flash.display.DisplayObject;
@@ -31,16 +32,31 @@
 public class DisplayUtil
 {
     /**
-     * Quicksorts container's children.
-     *
+     * Sorts a container's children, using ArrayUtil.stableSort.
+     *
      * comp is a function that takes two DisplayObjects, and returns int -1 if the first
      * object should appear before the second in the container, 1 if it should appear after,
-     * and 0 if the order does not matter. (Since quicksort is not a stable sort algorithm,
-     * returning 0 in the compare function is equivalent to returning -1).
-     */
+     * and 0 if the order does not matter.
+     */
     public static function sortDisplayChildren (container :DisplayObjectContainer, comp :Function) :void
     {
-        qsortDisplayChildren(container, 0, container.numChildren - 1, comp);
+        var numChildren :int = container.numChildren;
+        var children :Array = new Array(numChildren);
+
+        // pull the display children into an array.
+        // guess that removing children from the end of a DisplayObjectContainer
+        // is more efficient than removing them from the beginning.
+        for (var i :int = numChildren - 1; i >= 0; --i) {
+            children[i] = container.removeChildAt(i);
+        }
+
+        // stable sort the array
+        ArrayUtil.stableSort(children, comp);
+
+        // add children back to the container
+        for each (var child :DisplayObject in children) {
+            container.addChild(child);
+        }
     }

     /**
@@ -233,10 +249,10 @@
         container :DisplayObjectContainer, left :int, right :int, comp :Function) :void
     {
         if (right - left > 1) { // containers of size 0 or 1 are already sorted
-
+
             // arbitrarily choose the element in the middle of the sort list as the pivot element
             var pivotIndex :int = left + ((right - left) / 2);
-
+
             pivotIndex = partitionDisplayChildren(container, left, right, pivotIndex, comp);
             qsortDisplayChildren(container, left, pivotIndex - 1, comp);
             qsortDisplayChildren(container, pivotIndex + 1, right, comp);
@@ -248,11 +264,11 @@
         container :DisplayObjectContainer, left :int, right :int, pivotIndex :int, comp :Function) :int
     {
         var pivotObj :DisplayObject = container.getChildAt(pivotIndex);
-
+
         container.swapChildrenAt(pivotIndex, right); // move pivot to end
-
+
         var storeIndex :int = left;
-
+
         for (var i :int = left; i < right; ++i) {
             var thisObj :DisplayObject = container.getChildAt(i);
             if (0 > comp(thisObj, pivotObj)) {
@@ -260,9 +276,9 @@
                 storeIndex += 1;
             }
         }
-
+
         container.swapChildrenAt(storeIndex, right);
-
+
         return storeIndex;
     }

@@ -349,7 +365,7 @@
         }
         return inStr;
     }
-
-
+
+
 }
 }


improved data source description

improved data source description

--- WeaveData/src/weave/data/DataSources/CSVDataSource.as
+++ WeaveData/src/weave/data/DataSources/CSVDataSource.as
@@ -65,7 +65,7 @@
 	 */
 	public class CSVDataSource extends AbstractDataSource_old
 	{
-		WeaveAPI.ClassRegistry.registerImplementation(IDataSource, CSVDataSource, "CSV file");
+		WeaveAPI.ClassRegistry.registerImplementation(IDataSource, CSVDataSource, "CSV file / Delimited text");

 		public function CSVDataSource()
 		{
@@ -82,7 +82,7 @@
 		/**
 		 * Session state of servletParams must be an object with two properties: 'method' and 'params'
 		 * If this is set, it assumes that url.value points to a Weave AMF3Servlet and the servlet method returns a table of data.
-		 */
+		 */
 		public const servletParams:UntypedLinkableVariable = registerLinkableChild(this, new UntypedLinkableVariable(null, verifyServletParams));
 		public static const SERVLETPARAMS_PROPERTY_METHOD:String = 'method';
 		public static const SERVLETPARAMS_PROPERTY_PARAMS:String = 'params';


- change: Slight cleanup and optimizations in hover code in Label

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

--- src/reprise/controls/Label.as
+++ src/reprise/controls/Label.as
@@ -39,7 +39,6 @@
 		/***************************************************************************
 		*							public properties							   *
 		***************************************************************************/
-		public static var className : String = "Label";

 		/***************************************************************************
@@ -49,21 +48,21 @@

 		protected var m_labelDisplay : TextField;
 		protected var m_textSetExternally : Boolean;
-
-		protected var m_textLinkHrefs : Array;

 		protected var m_internalStyleIndex : Number;

 		protected var m_labelXML : XML;
 		protected var m_usedLabelXML : XML;
 		protected var m_nodesMap : Array;
+		protected var m_textLinkHrefs : Array;

 		protected var m_textAlignment : String;
 		protected var m_containsImages : Boolean;
 		protected var m_overflowIsInvalid : Boolean;

 		protected var m_bitmapCache : Bitmap;
-		private var m_cacheInvalid : Boolean;
+		protected var m_cacheInvalid : Boolean;
+		protected var m_lastHoverIndex : int;

 		/***************************************************************************
@@ -186,7 +185,7 @@
 			m_labelDisplay.styleSheet = CSSDeclaration.TEXT_STYLESHEET;
 			m_contentDisplay.addEventListener(MouseEvent.CLICK, labelDisplay_click);
 			m_contentDisplay.addEventListener(MouseEvent.MOUSE_MOVE, contentDisplay_mouseMove);
-			m_contentDisplay.addEventListener(MouseEvent.MOUSE_OUT, contentDisplay_mouseMove);
+			m_contentDisplay.addEventListener(MouseEvent.MOUSE_OUT, contentDisplay_mouseOut);
 			m_labelDisplay.addEventListener(TextEvent.LINK, labelDisplay_link);
 		}

@@ -584,8 +583,26 @@

 		protected function contentDisplay_mouseMove(event : MouseEvent) : void
 		{
+			updateHover();
+		}
+		protected function contentDisplay_mouseOut(event : MouseEvent) : void
+		{
+			updateHover(true);
+		}
+
+		protected function updateHover(mouseOut : Boolean = false) : void
+		{
 			var labelChanged : Boolean;
-			var index : int = m_labelDisplay.getCharIndexAtPoint(event.localX, event.localY);
+			var index : int = -1;
+			if (!mouseOut)
+			{
+				index = m_labelDisplay.getCharIndexAtPoint(
+					m_labelDisplay.mouseX, m_labelDisplay.mouseY);
+			}
+			if (index == m_lastHoverIndex)
+			{
+				return;
+			}

 			for (var i : int = m_nodesMap.length; i--;)
 			{
@@ -619,6 +636,7 @@
 					invalidate();
 				}
 			}
+			m_lastHoverIndex = index;
 		}

 		protected function transformText(text:String, transform:String) : String


Adjust output size and positioning after content.

The output size is now adjusted after the content size, which stops content from being incorrectly cropped.

--- src/swf2png.as
+++ src/swf2png.as
@@ -12,6 +12,8 @@
 	import flash.events.TimerEvent;
 	import flash.filesystem.File;
 	import flash.filesystem.FileStream;
+	import flash.geom.Rectangle;
+	import flash.geom.Matrix;
 	import flash.net.URLRequest;
 	import flash.text.TextField;
 	import flash.text.TextFieldAutoSize;
@@ -32,6 +34,9 @@
 		private var prefix:String;
 		private var outfield:TextField;
 		private var outputDirPath:String;
+		private var offsetMatrix:Matrix;
+		private var bBox:Rectangle;
+

 		public function swf2png() {
@@ -58,14 +63,59 @@
 			outputWidth = Math.ceil(ev.target.width);
 			outputHeight = Math.ceil(ev.target.height);
 			outfield.appendText("\nLoaded!");
+			totalFrames = loadedSwf.totalFrames;
+
+			calculateBBox();
+
 			stopClip(loadedSwf);
 			goToFrame(loadedSwf, 0);
-			totalFrames = loadedSwf.totalFrames;
 			timer = new Timer(1);

 			timer.addEventListener(TimerEvent.TIMER, step);
 			timer.start();

+		}
+
+		private function calculateBBox():void {
+			stopClip(loadedSwf);
+			goToFrame(loadedSwf, 0);
+
+			var boundsArray:Object = {
+				"x" : new Array(),
+				"y" : new Array(),
+				"w" : new Array(),
+				"h" : new Array()
+			}
+			var r:Rectangle;
+			for(var currentFrame:int = 0; currentFrame < totalFrames; currentFrame++) {
+				goToFrame(loadedSwf, currentFrame);
+				r = loader.content.getRect(stage);
+				boundsArray.x.push(r.x);
+				boundsArray.y.push(r.y);
+				boundsArray.w.push(r.width);
+				boundsArray.h.push(r.height);
+			}
+
+			boundsArray.x.sort(Array.NUMERIC);
+			boundsArray.y.sort(Array.NUMERIC);
+			boundsArray.w.sort(Array.NUMERIC | Array.DESCENDING);
+			boundsArray.h.sort(Array.NUMERIC | Array.DESCENDING);
+
+			bBox = new Rectangle(
+				Math.floor(boundsArray.x[0]),
+				Math.floor(boundsArray.y[0]),
+				Math.ceil(boundsArray.w[0]),
+				Math.ceil(boundsArray.h[0])
+			);
+
+			outfield.appendText("\nBounding box: " + bBox)
+
+			outputWidth = bBox.width;
+			outputHeight = bBox.height;
+			offsetMatrix = new Matrix();
+			offsetMatrix.translate(bBox.x * -1, bBox.y * -1);
+
+			return;
 		}

 		//Called for every frame
@@ -83,7 +133,7 @@
 		//Saves the current frame of the loader object to a png
 		private function saveFrame():void {
 			var bitmapData:BitmapData = new BitmapData(outputWidth, outputHeight, true, 0x0);
-			bitmapData.draw(loader);
+			bitmapData.draw(loader.content, offsetMatrix);
 			var bytearr:ByteArray = PNGEncoder.encode(bitmapData);
 			var outfileName:String = outputDirPath + File.separator + prefix + counter + ".png"
 			var file:File = new File(outfileName);


FragmentLoader : fix wrong buffering info reported on audio-only streams after last fragment has been loaded

--- src/com/pivotshare/hls/loader/FragmentLoader.as
+++ src/com/pivotshare/hls/loader/FragmentLoader.as
@@ -357,7 +357,6 @@

             if (_demux) {
                 _demux.cancel();
-                _demux = null;
             }
         }