Transferred from the Adobe Open Source Subversion Repository

Revision: 13195
Author:   cframpto@adobe.com
Date:     2009-12-23T15:47:51.425983Z

Log Message:
-----------
If a textFlow is being used as the typicalItem in a virtualLayout we must clone it since it is not shareable with item[0].  Soft-link to the TextFlow class.  TextFlows were not designed to be shareable.

We have tried to avoid cloning the TextFlow but this is about the fourth bug I've had related to this so we obviously can't plug all the holes and we need to clone the TextFlow.

QE notes:
Doc notes:
Bugs: SDK-24781
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -16,6 +16,7 @@
 import flash.events.IEventDispatcher;
 import flash.geom.PerspectiveProjection;
 import flash.geom.Rectangle;
+import flash.utils.getQualifiedClassName;

 import mx.collections.IList;
 import mx.core.IDataRenderer;
@@ -333,6 +334,15 @@
         if (list && (list.length > 0))
         {
             _typicalItem = list.getItemAt(0);
+
+            // TextFlows are not shareable.  Soft-link TextFlow class.
+            var isTextFlowClass:Boolean =
+                getQualifiedClassName(_typicalItem) ==
+                    "flashx.textLayout.elements::TextFlow";
+
+            if (isTextFlowClass)
+                _typicalItem = _typicalItem["deepCopy"]();
+
             initializeTypicalItem();
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12370
Author:   smgilson@adobe.com
Date:     2009-12-02T16:48:37.124467Z

Log Message:
-----------
Fix for doc bug FLEXDOCS-1150

Added a few new examples and default sizes to Spark components

QE notes: -
Doc notes: -
Bugs: -
Reviewer: -
Tests run: - FLEXDOCS-1150
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/SkinnableContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/VScrollBarExample.mxml</path>
<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/TabBar.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/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/BorderContainerExample.mxml</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/HGroup.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/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/HScrollBarExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TileGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/MyBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/SkinnableDataContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/ApplicationContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/TileGroup.as
+++ frameworks/projects/spark/src/spark/components/TileGroup.as
@@ -25,6 +25,14 @@
  *  Do not modify the layout property.
  *  Instead, use the properties of the TileGroup class to modify the
  *  characteristics of the TileLayout class.
+ *
+ *
The TileGroup container has the following default characteristics:

+ *

+ *
Characteristic	Description

+ *
Default size	Large enough to display its children

+ *
Minimum size	0 pixels

+ *
Maximum size	10000 pixels wide and 10000 pixels high

+ *

  *
  *  @mxml
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 4318
Author:   rfrishbe@adobe.com
Date:     2008-12-16T01:06:12.577766Z

Log Message:
-----------
A bunch of small changes:

- Rename from "content" to "mxmlContent"--I missed some places before

- Remove references from Group to GraphicElement.  Change them to use IGraphicElement.

- Update the IGraphicElement interface for above.  Evtim will go in and clean it up more later

- Group optimization so we don't loop through all visual element children in validateProperties(), validateSize(), and validateDisplayList() if we have no graphic elements.  Some further optimizations are possible, but we're not sure if it's worth it.  For instance, we could just loop over the graphic elements directly, rather than all elements.  Also, we always call assignDisplayObjects() even if we don't need to (all elements are display objects and have layer == 0).

- Cleanup around setting alpha and blendMode in Group

- Cleanup around bindable properties in Group

- Commented a lot of code I didn't understand in Group

- Cleaned up some code in display object sharing for Group (no need for lastDisplayObject...just need insertIndex)

- All layouts now call super.measure() and super.updateDisplayList() even though the LayoutBase version of these methods does nothing.

QE Notes: None
Doc Notes: None
Bugs: SDK-18065
Reviewer: Jason
tests: checkintests, Mustella Group, FxContainer, GraphicTags, and layout

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Parser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/core/IGraphicElement.as
+++ frameworks/projects/spark/src/spark/core/IGraphicElement.as
@@ -12,15 +12,15 @@
 {
 import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
-import flash.display.Graphics;
-import flash.geom.Matrix;
-import flash.geom.Rectangle;
 import flash.geom.Transform;
+
+import mx.core.IInvalidating;
+import mx.core.IVisualElement;

 /**
  *  The IGraphicElement interface is implemented by all child tags of Graphic and Group.
  */
-public interface IGraphicElement
+public interface IGraphicElement extends IVisualElement, IInvalidating
 {

     //--------------------------------------------------------------------------
@@ -29,19 +29,6 @@
     //
     //--------------------------------------------------------------------------

-    //----------------------------------
-    //  parent
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    function get parent():DisplayObjectContainer;
-    function set parent(value:DisplayObjectContainer):void;
-
-    //----------------------------------
-    //  alpha
-    //----------------------------------
     /**
      *  Specifies the level of transparency of the graphic element.
      *
@@ -50,9 +37,6 @@
     function get alpha():Number;
     function set alpha(value:Number):void;

-    //----------------------------------
-    //  blendMode
-    //----------------------------------
     /**
      *  Specifies the blend mode.
      *
@@ -61,18 +45,12 @@
     function get blendMode():String;
     function set blendMode(value:String):void;

-    //----------------------------------
-    //  filters
-    //----------------------------------
     /**
      *  The array of IBitmapFilter filters applied to the element.
      */
     function get filters():Array;
     function set filters(value:Array):void;

-    //----------------------------------
-    //  maskType
-    //----------------------------------
     /**
      *  Controls how the mask performs masking on the element.
      *  Possible values are MaskType.CLIP and MaskType.ALPHA
@@ -84,46 +62,12 @@
     function get maskType():String;
     function set maskType(value:String):void;

-    //----------------------------------
-    //  mask
-    //----------------------------------
     /**
      * The mask applied to the element.
      */
-
     function set mask(value:DisplayObject):void;
     function get mask():DisplayObject;
-
-    //----------------------------------
-    //  rotation
-    //----------------------------------
-    /**
-     *  Indicates the rotation of the element, in degrees, from the transform point.
-     */
-    function get rotation():Number;
-    function set rotation(value:Number):void;

-    //----------------------------------
-    //  scaleX
-    //----------------------------------
-    /**
-     *  Indicates the horizontal scale (percentage) of the element as applied from the transform point.
-     */
-    function get scaleX():Number;
-    function set scaleX(value:Number):void;
-
-    //----------------------------------
-    //  scaleY
-    //----------------------------------
-    /**
-     *  Indicates the vertical scale (percentage) of the element as applied from the transform point.
-     */
-    function get scaleY():Number;
-    function set scaleY(value:Number):void;
-
-    //----------------------------------
-    //  transform
-    //----------------------------------
     /**
      *  An object with properties pertaining to an element's matrix,
      *  color transform, and pixel bounds.
@@ -131,60 +75,78 @@
     function get transform():Transform;
     function set transform(value:Transform):void;

-    //----------------------------------
-    //  transformX
-    //----------------------------------
     /**
-     *  The x position transform point of the element.
+     *  The DisplayObject where the GraphicElement will be drawn.
+     *  This property is automatically assigned by the parent Group of this element.
      */
-    function get transformX():Number;
-    function set transformX(value:Number):void;
+    function get displayObject():DisplayObject;
+    function set displayObject(value:DisplayObject):void;

-    //----------------------------------
-    //  transformY
-    //----------------------------------
     /**
-     *  The y position transform point of the element.
+     *  true if the graphic element needs its own unique display object to render into.
+     *  In general, you will not set this property, although if you extend the GraphicElement class, you
+     *  might override the setter.
      */
-    function get transformY():Number;
-    function set transformY(value:Number):void;
+    function get needsDisplayObject():Boolean;

-    //----------------------------------
-    //  visible
-    //----------------------------------
+    /**
+     *  true if the another graphic element can use this display object to render into.
+     *  In general, you will not set this property, although if you extend the GraphicElement class, you
+     *  might override the setter.
+     */
+    function get nextSiblingNeedsDisplayObject():Boolean;

-    //----------------------------------
-    //  scaleY
-    //----------------------------------
     /**
-     *  Indicates the layer of the element relative to its siblings. Defaults to 0.
+     *  The DisplayObject where the GraphicElement will be drawn.  This DisplayObject is shared
+     *  between other GraphicElements.  This property is automatically assigned by the
+     *  parent Group of this element.
      */
-    function get layer():Number;
-    function set layer(value:Number):void;
-
-
+    function get sharedDisplayObject():DisplayObject;
+    function set sharedDisplayObject(value:DisplayObject):void;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
     /**
-     *  Controls the visibility of the element.
+     * @copy mx.managers.ILayoutManagerClient#validateProperties
      */
-    function get visible():Boolean;
-    function set visible(value:Boolean):void;
+    function validateProperties():void;

-    //----------------------------------
-    //  x
-    //----------------------------------
     /**
-     *  The x position of the element.
+     * @copy mx.managers.ILayoutManagerClient#validateSize
      */
-    function get x():Number;
-    function set x(value:Number):void;
+    function validateSize(recursive:Boolean = false):void;

-    //----------------------------------
-    //  y
-    //----------------------------------
     /**
-     *  The y position of the element.
+     * @copy mx.managers.ILayoutManagerClient#validateDisplayList
      */
-    function get y():Number;
-    function set y(value:Number):void;
+    function validateDisplayList():void;
+
+    /**
+     *  Called by Flex when a graphic element object is added to or removed from a parent.
+     *  Developers typically never need to call this method.
+     *
+     *  @param p The parent of this graphic element object.
+     */
+    function parentChanged(p:DisplayObjectContainer):void;
+
+    /**
+     *  Creates a new DisplayObject where the GraphicElement is drawn,
+     *  if one does not already exist.  This methods also assigns the graphic element's
+     *  displayObject property to the newly created DisplayObject.
+     *
+     *  @return The display object created
+     */
+    function createDisplayObject():DisplayObject;
+
+    /**
+     *  Destroys the DisplayObject where the GraphicElement is drawn,
+     *  if it exists.  This methods also nulls out the graphic element's
+     *  displayObject property.
+     */
+    function destroyDisplayObject():void;
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3973
Author:   rfrishbe@adobe.com
Date:     2008-10-30T20:30:13.007923Z

Log Message:
-----------
Adding IVisualContainer interface.  Group, FxContainer, and FxScroller implement this interface now.  Added owner and parent to IVisualItem.  GraphicElement and UIComponent implement this interface--work had to be done in GraphicElement to do this.  In doing so, elementHost is going to be renamed to parent.  For now, I added parent in GraphicElement and left elementHost in there; however, it is removed from IGraphicElement.  I’ve removed all references to elementHost in our code; however, I think mustella needs to be updated as do mustella tests, so I’m not going to remove elementHost until later.

Most of the changes here are name changes dealing with "elementHost" -> "parent".  If we decide that Gumbo components only support IVisualItems, we should clean up some of the code, but for now, I kept any assumptions that were in the original code (meaning we may be able to support DisplayObjects and old definitions of UIComponents/IUIComponents that aren’t IVisualItems).

I ran checkin tests, Group mustella tests, DataGroup mustella tests, FxContainer mustella tests, graphic tags tests, and all effects Mustella tests.

QE Notes: We will need to update mustella and mustella tests to use elementHost rather than parent.  We can also update mustella to use IVisualContainer rather than what it's doing now.  However, let's wait on these changes for now.  I'll send out an email when we're ready to make these changes and remove elementHost from GraphicElement.
Doc Notes: None
Bugs: -
Reviewer: Chet

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IVisualContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/RemoveActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IUIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/effects/RemoveAction.as
+++ frameworks/projects/spark/src/spark/effects/RemoveAction.as
@@ -65,7 +65,7 @@
 	/**
 	 *  @private
 	 */
-    private static var AFFECTED_PROPERTIES:Array = [ "parent", "elementHost", "index" ];
+    private static var AFFECTED_PROPERTIES:Array = [ "parent", "index" ];

 	//--------------------------------------------------------------------------
 	//
@@ -132,17 +132,10 @@
 	override protected function getValueFromTarget(target:Object,
 												   property:String):*
 	{
-	    var hasParent:Boolean;
-        try {
-            target.parent;
-            hasParent = true;
-        } catch (e:Error) {
-            hasParent = false;
-        }
-        var container:* = (hasParent ? target.parent : target.elementHost);
+        var container:* = target.parent;
         if (property == "index")
             return container ?
-                (hasParent ? container.getChildIndex(target) : container.getItemIndex(target)) : 0;
+                (!(container is Group) ? container.getChildIndex(target) : container.getItemIndex(target)) : 0;

 		return super.getValueFromTarget(target, property);
 	}
@@ -155,26 +148,20 @@
 												   value:*,
 												   props:Object):void
 	{
-	    var hasParent:Boolean;
-        try {
-            target.parent;
-            hasParent = true;
-        } catch (e:Error) {
-            hasParent = false;
-        }
         if (property == "parent" && value)
-            if (hasParent && target.parent == null)
+        {
+            if (target.parent == null)
+            {
                 // TODO : workaround for current situation of mis-match between
                 // Group having 'item's and Flex3 components having 'parent's
                 if (value is Group)
                     value.addItemAt(target, Math.min(props.index,
-                        value.numChildren));
+                        value.numItems));
                 else
                     value.addChildAt(target, Math.min(props.index,
                         value.numChildren));
-        if (property == "elementHost" && value)
-            if (!hasParent && target.elementHost == null)
-                value.addItemAt(target, Math.min(props.index, value.numChildren));
+            }
+        }

 		// Ignore index - it's applied along with parent
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3512
Author:   jimurphy@adobe.com
Date:     2008-10-07T20:28:56.871176Z

Log Message:
-----------
rename flex4 mx.effects.easing to mx.effects.fxEasing to avoid a name conflict in the framework

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Constant.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/EaseInOut.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="dir" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/easing" copyfrom-rev="3509" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Sine.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/easing</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/IEaser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateFilter.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/CallAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/easing/Power.as
+++ frameworks/projects/spark/src/spark/effects/easing/Power.as
@@ -8,7 +8,7 @@
 //  in accordance with the terms of the license agreement accompanying it.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package mx.effects.easing
+package mx.effects.fxEasing
 {
 /**
  * Provides easing functionality using a polynomial expression, where the


Transferred from the Adobe Open Source Subversion Repository

Revision: 6257
Author:   smgilson@adobe.com
Date:     2009-04-24T21:28:52.430843Z

Log Message:
-----------
ASDoc edits for effects

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/IEaser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/IInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/RGBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>

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

--- frameworks/projects/spark/src/spark/effects/easing/Power.as
+++ frameworks/projects/spark/src/spark/effects/easing/Power.as
@@ -11,9 +11,28 @@
 package spark.effects.easing
 {
 /**
- * Provides easing functionality using a polynomial expression, where the
- * instance is created with a power parameter describing the
- * behavior of the expression.
+ *  The Power class defines the easing functionality using a polynomial expression.
+ *  Easing consists of two phases: the acceleration, or ease in phase,
+ *  followed by the deceleration, or ease out phase.
+ *  The rate of acceleration and deceleration is based on
+ *  the exponent property.
+ *  The higher the value of the exponent property,
+ *  the greater the acceleration and deceleration.
+ *  Use the easeInFraction property to specify the percentage
+ *  of an animation accelerating.
+ *
+ *  @mxml
+ *
+ *
The <mx:Power> tag
+ *  inherits all of the tag attributes of its of its superclass,
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:Power
+ *    id="ID"
+ *    exponent="2"
+ *   />
+ *

  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -32,13 +51,15 @@
      */
     private var _exponent:int;
     /**
-     * The exponent that will be used in the easing calculation. For example,
-     * to get quadratic behavior, set exponent equal to 2. To get cubic
-     * behavior, set exponent equal to 3. A value of 1 represents linear
-     * motion, while a value of 0 simply returns 1 from the ease
-     * method.
-     *
-     * @default 2
+     *  The exponent used in the easing calculation.
+     *  The higher the value of the exponent property,
+     *  the greater the acceleration and deceleration.
+     *  For example, to get quadratic behavior, set exponent to 2.
+     *  To get cubic behavior, set exponent to 3.
+     *  A value of 1 represents linear motion, and a value of 0
+     *  returns 1 from the ease() method.
+     *
+     *  @default 2
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -55,8 +76,12 @@
     }

     /**
-     * Constructs a Power instance with optional easeInFraction and exponent
-     * values
+     * Constructor.
+     *
+     *  @param easeInFraction The fraction of the overall duration
+     *  in the acceleration phase, between 0.0 and 1.0.
+     *
+     *  @param exponent The exponent used in the easing calculation.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -70,10 +95,16 @@
     }

     /**
-     * @inheritDoc
+     *  Returns a value that represents the eased fraction during the
+     *  ease in phase of the animation.
+     *  The easing calculation for Power is equal to
+     *  fraction^^exponent.
+     *
+     *  @param fraction The fraction elapsed of the easing in phase
+     *  of the animation, between 0.0 and 1.0.
      *
-     * The easeIn calculation for Power is equal to
-     * fraction^^exponent.
+     *  @return A value that represents the eased value for this
+     *  phase of the animation.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -86,10 +117,16 @@
     }

     /**
-     * @inheritDoc
+     *  Returns a value that represents the eased fraction during the
+     *  ease out phase of the animation.
+     *  The easing calculation for Power is equal to
+     * 1 - ((1-fraction)^^exponent).
+     *
+     *  @param fraction The fraction elapsed of the easing out phase
+     *  of the animation, between 0.0 and 1.0.
      *
-     * The easeOut calculation for Power is equal to
-     * 1 - ((1-fraction)^^exponent).
+     *  @return A value that represents the eased value for this
+     *  phase of the animation.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Update idiomesAnimation.as

Update idiomesAnimation.as

--- com/segonquart/idiomesAnimation.as
+++ com/segonquart/idiomesAnimation.as
@@ -41,7 +41,7 @@
 	private function arrayColour()
 		{

-			for ( var:i ; arrayLang_arr[i] <4; i++)
+			for ( var:i:Number=0 ; arrayLang_arr[i] <4; i++)
 			{
 				this.colorTo("#628D22", 0.3, "easeOutCirc");
 				_parent.colorTo('#4b4b4b', 1, 'linear', .2);


--- src/flash/__native/te/CharSet.as
+++ src/flash/__native/te/CharSet.as
@@ -39,6 +39,7 @@
 			var t:UVTexture=getTexture(c)
 			if (t==null){//找不到材质，创建新材质
 				t = new UVTexture;
+
 				t.fontSize = c.size;
 				t.v = c.v;
 				newChars.push(t);


- 删除不实用的常量

- 删除不实用的常量

--- age/src/age/renderers/WireframeLayerRenderer.as
+++ age/src/age/renderers/WireframeLayerRenderer.as
@@ -209,8 +209,6 @@
 			_scale = value;
 			validate();
 		}
-
-		private var DEFAULT_ALPHA:Number = 0.8;

 		private var _frameInfo:FrameInfo;


restore TextureLoader.textureResource public visibility

--- src/aerys/minko/type/loader/TextureLoader.as
+++ src/aerys/minko/type/loader/TextureLoader.as
@@ -58,7 +58,7 @@

 		public function TextureLoader(enableMipmapping : Boolean = true)
 		{
-			_mipMapping				= enableMipmapping;
+			_mipMapping	= enableMipmapping;

 			initialize();
 		}


Don't rely on parentChanged().

Don't rely on parentChanged().

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

--- src/as/com/threerings/flex/ChatDisplayBox.as
+++ src/as/com/threerings/flex/ChatDisplayBox.as
@@ -47,6 +47,9 @@
         // TODO
         width = 400;
         height = 150;
+
+        addEventListener(Event.ADDED_TO_STAGE, handleAddRemove);
+        addEventListener(Event.REMOVED_FROM_STAGE, handleAddRemove);
     }

     // documentation inherited from interface ChatDisplay
@@ -72,12 +75,11 @@
         return true;
     }

-    override public function parentChanged (p :DisplayObjectContainer) :void
+    // handle us being added or removed from the stage
+    protected function handleAddRemove (event :Event) :void
     {
-        super.parentChanged(p);
-
         var chatdir :ChatDirector = _ctx.getChatDirector();
-        if (p != null) {
+        if (event.type == Event.ADDED_TO_STAGE) {
             chatdir.addChatDisplay(this);
         } else {
             chatdir.removeChatDisplay(this);


requirements using qty no longer have qty default = n/a

--- flexEditor/src/org/arisgames/editor/util/AppUtils.as
+++ flexEditor/src/org/arisgames/editor/util/AppUtils.as
@@ -770,7 +770,10 @@
 			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_UPLOADED_MEDIA_ITEM_IMAGE_DATABASE ||
 			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_UPLOADED_MEDIA_ITEM_AUDIO_DATABASE ||
 			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_UPLOADED_MEDIA_ITEM_VIDEO_DATABASE ||
-			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_NOTE_DATABASE)
+			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_NOTE_DATABASE ||
+			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_NOTE_WITH_LIKES_DATABASE ||
+			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_NOTE_WITH_COMMENTS_DATABASE ||
+			req.requirement == AppConstants.REQUIREMENT_PLAYER_HAS_GIVEN_NOTE_COMMENTS_DATABASE)
 		{
 			return true;
 		}


npc greetings now load correctly

npc greetings now load correctly

--- flexEditor/src/org/arisgames/editor/util/AppUtils.as
+++ flexEditor/src/org/arisgames/editor/util/AppUtils.as
@@ -313,7 +313,7 @@
             npc.npcId = data.npc_id;
             npc.name = data.name;
             npc.description = data.description;
-            npc.greeting = data.greeting;
+            npc.greeting = data.text;
             npc.mediaId = data.media_id;

             return npc;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4849
Author:   jimurphy@adobe.com
Date:     2009-02-05T15:00:22.254099Z

Log Message:
-----------
Merged 3.x revisions 4842,4847 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPMultiService.as" copyfrom-rev="4847" action="A">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPMultiService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as
@@ -16,14 +16,13 @@
 import flash.utils.getQualifiedClassName;

 import mx.collections.ArrayCollection;
-import mx.collections.IList;
 import mx.logging.ILogger;
 import mx.logging.Log;
 import mx.utils.DescribeTypeCache;
-import mx.utils.object_proxy;
 import mx.utils.ObjectProxy;
 import mx.utils.URLUtil;
 import mx.utils.XMLUtil;
+import mx.utils.object_proxy;

 [ExcludeClass]

@@ -2059,9 +2058,30 @@
                     propertyName = Object(name).toString();

+
                 if (parent is ContentProxy && ContentProxy(parent).object_proxy::isSimple)
                 {
-                    existingValue = ContentProxy(parent).object_proxy::content;
+                    var simpleContent:* = ContentProxy(parent).object_proxy::content;
+                    if (simpleContent != null)
+                    {
+                        if (isSimpleValue(simpleContent) || TypeIterator.isIterable(simpleContent))
+                        {
+                            existingValue = simpleContent;
+                        }
+                        else
+                        {
+                            // HACK for SDK-14800:
+                            // Flex Builder 3 may generate a strongly typed class for simpleContent extensions
+                            // or restrictions, which uses the convention of "_" + typeName for the simpleContent
+                            // value.
+                            var simplePropName:String = "_" + getUnqualifiedClassName(simpleContent);
+                            if (Object(simpleContent).hasOwnProperty(simplePropName))
+                            {
+                                simpleContent[simplePropName] = value;
+                                return;
+                            }
+                        }
+                    }
                 }
                 else
                 {
@@ -2443,6 +2463,31 @@

         return existingValue;
     }
+
+    /**
+     *  Returns the name of the specified object's class,
+     *  such as "Button"
+     *
+     *
This string does not include the package name.
+     *  If you need the package name as well, call the
+     *  getQualifiedClassName() method in the flash.utils package.
+     *  It will return a string such as "mx.controls::Button".

+     */
+    public static function getUnqualifiedClassName(object:Object):String
+    {
+        var name:String;
+        if (object is String)
+            name = object as String;
+        else
+            name = getQualifiedClassName(object);
+
+        // If there is a package name, strip it off.
+        var index:int = name.indexOf("::");
+        if (index != -1)
+            name = name.substr(index + 2);
+
+        return name;
+    }

     /**
      * Noop. Method exists to give a chance to subclasses to pre-process the


Revert "Merge pull request #200 from kaltura/BJG-MassiveBuffers"

This reverts commit e3d7aee4dd2cd993df4ba6bb7227e9f1d9399b96, reversing
changes made to 37ec803ddce11d1fc85009cbaaa5453d26d98f34.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -451,17 +451,9 @@
 			return;
 		}

-		public var _hackAbsoluteTime:Number = 0.0;
-
 		public function get absoluteTime():Number
 		{
-			if(isNaN(_initialTime))
-				return 0.0;
-
-			var tmpTime:Number = super.time + _initialTime;
-			if(!isNaN(tmpTime))
-				_hackAbsoluteTime = tmpTime;
-			return _hackAbsoluteTime;
+			return super.time + _initialTime;
 		}

 		protected var _timeCache_LastUpdatedTimestamp:Number = NaN;
@@ -532,7 +524,7 @@
 				{
 					// Failed to cache so can't return a real value.
 					//trace("Failed to updated time cache so aborting.");
-					return _lastValidTimeTime;
+					return NaN;
 				}
 			}


Forgot to Save I forgot to save one of my changes for the previous commit... oops.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -1343,7 +1343,9 @@
 				/**
 				 * @private
 				 *
-				 * Closes the stream with a stream not found error
+				 * Closes the stream with a stream not found error. Used after failing to get a new manifest multiple times in a row.
+				 *
+				 * @param url The URL of the manifest that is failing to load.
 				 */
 				private function cantLoadManifest(url:String):void
 				{


On hit method of Player Object should take a damage point parameter

--- DroneAnarchy/Resources/Scripts/GameObjects.as
+++ DroneAnarchy/Resources/Scripts/GameObjects.as
@@ -21,7 +21,6 @@
 {
 	float maximumHealth_;
 	float currentHealth_;
-	float healthDeductionRate_;

 	PlayerObject()
@@ -30,9 +29,9 @@
 		healthDeductionRate_ = 2;
 	}

-	void OnHit()
-	{
-		currentHealth_ -= healthDeductionRate_;
+	void OnHit(float damagePoint)
+	{
+		currentHealth_ -= damagePoint;
 		if(currentHealth_ < 0.0f )
 		{
 			currentHealth_ = 0.0f;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18323
Author:   smgilson@adobe.com
Date:     2010-10-26T17:50:12.524532Z

Log Message:
-----------
Fix invalid HTML in ASDoc comments for the [DiscouragedForProfile] metadata tag

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/FormHeading.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Form.as</path>

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

--- frameworks/projects/framework/src/mx/controls/ToolTip.as
+++ frameworks/projects/framework/src/mx/controls/ToolTip.as
@@ -99,7 +99,7 @@
  * Because this component does not define a skin for the mobile theme, Adobe
  * recommends that you not use it in a mobile application. Alternatively, you
  * can define your own mobile skin for the component. For more information,
- * see Spark Skinning.
+ * see Spark Skinning.
  */
 [DiscouragedForProfile("mobileDevice")]

@@ -416,7 +416,7 @@
                 border = null;
             }

-            createBorder();
+            createBorder();
         }
         else if (styleProp == "borderStyle")
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3504
Author:   egreenfi@adobe.com
Date:     2008-10-07T06:44:07.966309Z

Log Message:
-----------
New flag to allow a component to maintain a centered perspective transform, plus other minor transform cleanup.

setting the layout matrix or matrix3D now resets transform X/Y/Z to 0.

setting the component's x/y/z or calling move or setActualSize no longer blows away non-standard transforms (i.e., shear).

UIComponents can now maintain a centered perspective transform.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/Animate3DInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/Rotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animate3D.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.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/gumbo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -84,6 +84,7 @@
 import flash.geom.Transform;
 import mx.events.PropertyChangeEventKind;
 import mx.geom.CompoundTransform;
+import flash.geom.PerspectiveProjection;

 use namespace mx_internal;

@@ -6643,7 +6644,15 @@
         {
          	applyComputedTransform();
         }
-
+
+		if(_maintainProjectionCenter)
+		{
+			var pmatrix:PerspectiveProjection = super.transform.perspectiveProjection;
+			if(pmatrix != null)
+			{
+				pmatrix.projectionCenter = new Point(unscaledWidth/2,unscaledHeight/2);
+			}
+		}
         if (invalidateDisplayListFlag)
         {
             // Check if our parent is the top level system manager
@@ -9527,6 +9536,9 @@

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

@@ -9538,6 +9550,12 @@
             if (event.property == "matrix" || event.property == "matrix3D")
             {
             	assignTransformMatrices();
+            }
+            else if (event.property == "perspectiveProjection")
+            {
+            	super.transform.perspectiveProjection = _transform.perspectiveProjection;
+            	if(maintainProjectionCenter)
+            		invalidateDisplayList();
             }
             else if (event.property == "colorTransform")
             {
@@ -9568,6 +9586,33 @@
 		return (_layoutFeatures != null)? _layoutFeatures.offsets:null;
 	}

+
+	/**
+	 * @private
+	 */
+	private var _maintainProjectionCenter:Boolean = false;
+
+	/**
+	 * Documentation is not currently available
+	 */
+	public function set maintainProjectionCenter(value:Boolean):void
+	{
+		_maintainProjectionCenter = value;
+		if(value && super.transform.perspectiveProjection == null)
+		{
+			super.transform.perspectiveProjection = new PerspectiveProjection();
+		}
+		invalidateDisplayList();
+	}
+	/**
+	 * @private
+	 */
+	public function get maintainProjectionCenter():Boolean
+	{
+		return _maintainProjectionCenter;
+	}
+
+
 	/**
 	 * Documentation is not currently available.  the matrix of a component is the transform matrix used to calculate its layout
 	 * relative to its siblings. This matrix is modified by the values of the offset property to determine its final, computed matrix.


Transferred from the Adobe Open Source Subversion Repository

Revision: 14923
Author:   klin@adobe.com
Date:     2010-03-22T22:31:09.730531Z

Log Message:
-----------
Merge revision 14922 from 4.x to trunk.

Fix for http://bugs.adobe.com/jira/browse/SDK-25919. For a non-mirroring application, we were calling invalidateLayoutDirection at startup even though we start out with the right layout. The fix is to default oldLayoutDirection to "ltr" so that we skip these calls at start up.

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

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -5849,7 +5849,7 @@
      *  to check if its parent's layoutDirection has changed, see commitProperties().
      *  The flag is cleared in validateDisplayList().
      */
-    private var oldLayoutDirection:String = null;
+    private var oldLayoutDirection:String = LayoutDirection.LTR;

     /**
      *  @inheritDoc


Transferred from the Adobe Open Source Subversion Repository

Revision: 4123
Author:   smgilson@adobe.com
Date:     2008-11-16T16:38:16.065052Z

Log Message:
-----------
Fix broken ASDoc comment

QE Notes: None
Doc Notes: None
Bugs: -

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

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -454,7 +454,7 @@
  *  as the effect finishes. The purpose of the EFFECT_STOP
  *  event is to let listeners know that the effect came to
  *  a premature end, rather than ending naturally or as a
- *  result of a call to end().
+ *  result of a call to end().

  *
  *  @eventType mx.events.EffectEvent.EFFECT_STOP
  */


Transferred from the Adobe Open Source Subversion Repository

Revision: 4611
Author:   chaase@adobe.com
Date:     2009-01-22T00:30:21.783682Z

Log Message:
-----------
Various bug fixes in effects, mostly in the area of seeking, auto-reversing, and shader transitions.

QE Notes: None
Doc Notes: None
Bugs: sdk-17783, sdk-18767, sdk-18759, sdk-18461, sdk-18309, sdk-18013, sdk-18688
Reviewer: Jason
Tests: checkintests, Mustella: Effects, gumbo/effects, ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/UnconstrainItemAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/AddChildAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Parallel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/SetPropertyAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/RemoveChildAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/AddItemAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/SetStyleAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/RemoveItemAction.as</path>

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

--- frameworks/projects/framework/src/mx/effects/Parallel.as
+++ frameworks/projects/framework/src/mx/effects/Parallel.as
@@ -124,30 +124,6 @@
         return parallelDuration;
     }

-    // Note that we implement seek() in the instance class for Sequence,
-    // but in the factory class for Parallel. This is because we can do
-    // it at the factory level for Parallel, but for Sequence we need
-    // extra functionality that is only available in the instance class.
-    /**
-     * @inheritDoc
-     *
-     * In a Parallel effect, seek will cause all child effects to seek to
-     * the same seekTime. This may cause child effects to
-     * lessen their startDelay (if they are currently waiting to be played),
-     * start playing (if the seekTime is greater than their startDelay), or
-     * come to an end (if the seekTime is greater than their startDelay plus
-     * their duration).
-     */
-    override public function seek(seekTime:Number):void
-    {
-        // This will seek in the Parallel's instance
-        super.seek(seekTime);
-        // Tell all of our active children to seek()
-        for (var i:int = 0; i < children.length; i++)
-        {
-            children[i].seek(seekTime);
-        }
-    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18480
Author:   egeorgie@adobe.com
Date:     2010-11-07T04:57:01.323333Z

Log Message:
-----------
Various Resizing Bugs: Ellipse, Path, Rounded Rect

In this change:

- new iterative algorithm for fitting transformed Path, Ellipse, Rounded Rect
- tweaked iterative algorithm for fitting non-transformed Path with miter limit
- fixes to calculating the bounding box of a rounded rect when radiusX != radiusY
- fix to MatrixUtil.fitBounds to take explicits into account in the case where both dimensions are specified
- fix to MatrixUtil to properly return null when no solution exists for 45 degree rotated elements when trying to fit in both dimensions
- fix to MatrixUtil to take explicit settings into account when relaxing constraints while trying to fit an element in both dimensions
- added min/max properties to SpriteVisualElement
- fix GraphicElement to avoid extra layout pass when dealing with transformations (looks like extra invalidation was added with the mirroring infrastrucutre)

QE notes: Maybe add a couple of tests for rotated ellipse, rotated path, rotated round rect, non-rotated path with stroke and miter limit joints
Doc notes:
Bugs: SDK-17269, SDK-26762, SDK-27321, SDK-27516, SDK-27589, SDK-28389
Reviewer: Kevin
Tests run: full mustella cyclone
Is noteworthy for integration: Yes, Yes, Yyyyyyyeeeeeeeeeeeees sir!!

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Rect.as</path>

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

--- frameworks/projects/framework/src/mx/utils/MatrixUtil.as
+++ frameworks/projects/framework/src/mx/utils/MatrixUtil.as
@@ -587,101 +587,237 @@
         if (!isNaN(width) && !isNaN(height))
         {
             actualSize = calcUBoundsToFitTBounds(width, height, matrix,
-                                                           minWidth, minHeight,
-                                                           maxWidth, maxHeight);
+                                                 minWidth, minHeight,
+                                                 maxWidth, maxHeight);

             // If we couldn't fit in both dimensions, try to fit only one and
             // don't stick out of the other
             if (!actualSize)
             {
-                actualSize = calcUBoundsToFitTBoundsWidth(width, matrix,
-                                                          preferredWidth, preferredHeight,
-                                                          minWidth, minHeight,
-                                                          maxWidth, maxHeight);
+                var actualSize1:Point;
+                actualSize1 = fitTBoundsWidth(width, matrix,
+                                              explicitWidth, explicitHeight,
+                                              preferredWidth, preferredHeight,
+                                              minWidth, minHeight,
+                                              maxWidth, maxHeight);

                 // If we fit the width, but not the height
-                if (actualSize && transformSize(actualSize.x, actualSize.y, matrix).y > height)
+                if (actualSize1 && transformSize(actualSize1.x, actualSize1.y, matrix).y > height)
+                     actualSize1 = null;
+
+                var actualSize2:Point
+                actualSize2 = fitTBoundsHeight(height, matrix,
+                                               explicitWidth, explicitHeight,
+                                               preferredWidth, preferredHeight,
+                                               minWidth, minHeight,
+                                               maxWidth, maxHeight);
+
+                // If we fit the height, but not the width
+                if (actualSize2 && transformSize(actualSize2.x, actualSize2.y, matrix).x > width)
+                   actualSize2 = null;
+
+                if (actualSize1 && actualSize2)
                 {
-                    actualSize = calcUBoundsToFitTBoundsHeight(height, matrix,
-                                                               preferredWidth, preferredHeight,
-                                                               minWidth, minHeight,
-                                                               maxWidth, maxHeight);
-
-                    // If we fit the height, but not the width
-                    if (actualSize && transformSize(actualSize.x, actualSize.y, matrix).x > width)
-                       actualSize = null; // No solution
+                    // Pick a solution
+                    actualSize = ((actualSize1.x * actualSize1.y) > (actualSize2.x * actualSize1.y)) ? actualSize1 : actualSize2;
+                }
+                else if (actualSize1)
+                {
+                    actualSize = actualSize1;
+                }
+                else
+                {
+                    actualSize = actualSize2;
                 }
             }
             return actualSize;
         }
         else if (!isNaN(width))
         {
-            // cases 1 and 2: only explicit width or explicit height is specified,
-            // so we try to find a solution with that hard constraint.
-            if (!isNaN(explicitWidth) && isNaN(explicitHeight))
-            {
-                actualSize = calcUBoundsToFitTBoundsWidth(width, matrix,
-                                                          explicitWidth, preferredHeight,
-                                                          explicitWidth, minHeight,
-                                                          explicitWidth, maxHeight);
-
-                if (actualSize)
-                    return actualSize;
-            }
-            else if (isNaN(explicitWidth) && !isNaN(explicitHeight))
-            {
-                actualSize = calcUBoundsToFitTBoundsWidth(width, matrix,
-                                                          preferredWidth, explicitHeight,
-                                                          minWidth, explicitHeight,
-                                                          maxWidth, explicitHeight);
-                if (actualSize)
-                    return actualSize;
-            }
+            return fitTBoundsWidth(width, matrix,
+                                   explicitWidth, explicitHeight,
+                                   preferredWidth, preferredHeight,
+                                   minWidth, minHeight,
+                                   maxWidth, maxHeight);
+        }
+        else
+        {
+            return fitTBoundsHeight(height, matrix,
+                                    explicitWidth, explicitHeight,
+                                    preferredWidth, preferredHeight,
+                                    minWidth, minHeight,
+                                    maxWidth, maxHeight);
+        }
+    }
+
+    /**
+     *  @private
+     *
+     *  fitTBoundsWidth Calculates a size (x,y) for a bounding box (0,0,x,y)
+     *  such that the bounding box transformed with matrix will fit
+     *  into the specified width.
+     *
+     *  @param width This is the width of the bounding box that calculated size
+     *  needs to fit in.
+     *
+     *  @param matrix This defines the transformations that the function will take
+     *  into account when calculating the size. The bounding box (0,0,x,y) of the
+     *  calculated size (x,y) transformed with matrix will fit in the
+     *  specified width and height.
+     *
+     *  @param explicitWidth Explicit width for the calculated size. The function
+     *  will first try to find a solution using this width.
+     *
+     *  @param explicitHeight Preferred height for the calculated size. The function
+     *  will first try to find a solution using this height.
+     *
+     *  @param preferredWidth Preferred width for the calculated size. If possible
+     *  the function will set the calculated size width to this value.
+     *
+     *  @param preferredHeight Preferred height for the calculated size. If possible
+     *  the function will set the calculated size height to this value.
+     *
+     *  @param minWidth The minimum allowed value for the calculated size width.
+     *
+     *  @param minHeight The minimum allowed value for the calculated size height.
+     *
+     *  @param maxWidth The maximum allowed value for the calculated size width.
+     *
+     *  @param maxHeight The maximum allowed value for the calculated size height.
+     *
+     *  @return Returns the size (x,y) such that the bounding box (0,0,x,y) will
+     *  fit into (0,0,width,height) after transformation with matrix.
+     *  Returns null if there is no possible solution.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    private static function fitTBoundsWidth(width:Number, matrix:Matrix,
+                                            explicitWidth:Number, explicitHeight:Number,
+                                            preferredWidth:Number, preferredHeight:Number,
+                                            minWidth:Number, minHeight:Number,
+                                            maxWidth:Number, maxHeight:Number):Point
+    {
+        var actualSize:Point;
+
+        // cases 1 and 2: only explicit width or explicit height is specified,
+        // so we try to find a solution with that hard constraint.
+        if (!isNaN(explicitWidth) && isNaN(explicitHeight))
+        {
+            actualSize = calcUBoundsToFitTBoundsWidth(width, matrix,
+                explicitWidth, preferredHeight,
+                explicitWidth, minHeight,
+                explicitWidth, maxHeight);

-            // case 3: default case. When explicitWidth, explicitHeight are both set
-            // or not set, we use the preferred size since calcUBoundsToFitTBoundsWidth
-            // will just pick one.
+            if (actualSize)
+                return actualSize;
+        }
+        else if (isNaN(explicitWidth) && !isNaN(explicitHeight))
+        {
             actualSize = calcUBoundsToFitTBoundsWidth(width, matrix,
-                                                      preferredWidth, preferredHeight,
-                                                      minWidth, minHeight,
-                                                      maxWidth, maxHeight);
+                preferredWidth, explicitHeight,
+                minWidth, explicitHeight,
+                maxWidth, explicitHeight);
+            if (actualSize)
+                return actualSize;
+        }
+
+        // case 3: default case. When explicitWidth, explicitHeight are both set
+        // or not set, we use the preferred size since calcUBoundsToFitTBoundsWidth
+        // will just pick one.
+        actualSize = calcUBoundsToFitTBoundsWidth(width, matrix,
+            preferredWidth, preferredHeight,
+            minWidth, minHeight,
+            maxWidth, maxHeight);
+
+        return actualSize;
+    }
+
+    /**
+     *  @private
+     *
+     *  fitTBoundsWidth Calculates a size (x,y) for a bounding box (0,0,x,y)
+     *  such that the bounding box transformed with matrix will fit
+     *  into the specified height.
+     *
+     *  @param height This is the height of the bounding box that the calculated
+     *  size needs to fit in.
+     *
+     *  @param matrix This defines the transformations that the function will take
+     *  into account when calculating the size. The bounding box (0,0,x,y) of the
+     *  calculated size (x,y) transformed with matrix will fit in the
+     *  specified width and height.
+     *
+     *  @param explicitWidth Explicit width for the calculated size. The function
+     *  will first try to find a solution using this width.
+     *
+     *  @param explicitHeight Preferred height for the calculated size. The function
+     *  will first try to find a solution using this height.
+     *
+     *  @param preferredWidth Preferred width for the calculated size. If possible
+     *  the function will set the calculated size width to this value.
+     *
+     *  @param preferredHeight Preferred height for the calculated size. If possible
+     *  the function will set the calculated size height to this value.
+     *
+     *  @param minWidth The minimum allowed value for the calculated size width.
+     *
+     *  @param minHeight The minimum allowed value for the calculated size height.
+     *
+     *  @param maxWidth The maximum allowed value for the calculated size width.
+     *
+     *  @param maxHeight The maximum allowed value for the calculated size height.
+     *
+     *  @return Returns the size (x,y) such that the bounding box (0,0,x,y) will
+     *  fit into (0,0,width,height) after transformation with matrix.
+     *  Returns null if there is no possible solution.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    private static function fitTBoundsHeight(height:Number, matrix:Matrix,
+                                             explicitWidth:Number, explicitHeight:Number,
+                                             preferredWidth:Number, preferredHeight:Number,
+                                             minWidth:Number, minHeight:Number,
+                                             maxWidth:Number, maxHeight:Number):Point
+    {
+        var actualSize:Point;
+
+        // cases 1 and 2: only explicit width or explicit height is specified,
+        // so we try to find a solution with that hard constraint.
+        if (!isNaN(explicitWidth) && isNaN(explicitHeight))
+        {
+            actualSize = calcUBoundsToFitTBoundsHeight(height, matrix,
+                explicitWidth, preferredHeight,
+                explicitWidth, minHeight,
+                explicitWidth, maxHeight);

-            return actualSize;
-        }
-        else
-        {
-            // cases 1 and 2: only explicit width or explicit height is specified,
-            // so we try to find a solution with that hard constraint.
-            if (!isNaN(explicitWidth) && isNaN(explicitHeight))
-            {
-                actualSize = calcUBoundsToFitTBoundsHeight(height, matrix,
-                                                           explicitWidth, preferredHeight,
-                                                           explicitWidth, minHeight,
-                                                           explicitWidth, maxHeight);
-
-                if (actualSize)
-                    return actualSize;
-            }
-            else if (isNaN(explicitWidth) && !isNaN(explicitHeight))
-            {
-                actualSize = calcUBoundsToFitTBoundsHeight(height, matrix,
-                                                           preferredWidth, explicitHeight,
-                                                           minWidth, explicitHeight,
-                                                           maxWidth, explicitHeight);
-                if (actualSize)
-                    return actualSize;
-            }
-
-            // case 3: default case. When explicitWidth, explicitHeight are both set
-            // or not set, we use the preferred size since calcUBoundsToFitTBoundsWidth
-            // will just pick one.
+            if (actualSize)
+                return actualSize;
+        }
+        else if (isNaN(explicitWidth) && !isNaN(explicitHeight))
+        {
             actualSize = calcUBoundsToFitTBoundsHeight(height, matrix,
-                                                       preferredWidth, preferredHeight,
-                                                       minWidth, minHeight,
-                                                       maxWidth, maxHeight);
-
-            return actualSize;
-        }
+                preferredWidth, explicitHeight,
+                minWidth, explicitHeight,
+                maxWidth, explicitHeight);
+            if (actualSize)
+                return actualSize;
+        }
+
+        // case 3: default case. When explicitWidth, explicitHeight are both set
+        // or not set, we use the preferred size since calcUBoundsToFitTBoundsWidth
+        // will just pick one.
+        actualSize = calcUBoundsToFitTBoundsHeight(height, matrix,
+            preferredWidth, preferredHeight,
+            minWidth, minHeight,
+            maxWidth, maxHeight);
+
+        return actualSize;
     }

     /**
@@ -717,10 +853,6 @@
                                                          maxX:Number,
                                                          maxY:Number):Point
     {
-        // Make sure preferredX, preferredY are between minX and maxX
-        preferredX = Math.max(minX, Math.min(maxX, preferredX));
-        preferredY = Math.max(minY, Math.min(maxY, preferredY));
-
         // Untransformed bounds size is (x,y). The corners of the untransformed
         // bounding box are p1(0,0) p2(x,0) p3(0,y) p4(x,y).
         // Matrix is | a c tx |
@@ -773,6 +905,9 @@
             return null; // No solution

         // Handle special cases first
+        if (b == 0 && d == 0)
+            return null; // No solution
+
         if (b == 0)
             return new Point( preferredX, h / Math.abs(d) );
         else if (d == 0)
@@ -787,9 +922,10 @@
         var x:Number;
         var y:Number;

-        if (d1 != 0)
+        if (d1 != 0 && preferredX > 0)
         {
             const invD1:Number = 1 / d1;
+            preferredX = Math.max(minX, Math.min(maxX, preferredX));
             x = preferredX;

             // Case1:
@@ -815,9 +951,10 @@
             }
         }

-        if (b != 0)
+        if (b != 0 && preferredY > 0)
         {
             const invB:Number = 1 / b;
+            preferredY = Math.max(minY, Math.min(maxY, preferredY));
             y = preferredY;

             // Case3:
@@ -889,10 +1026,6 @@
                                                         maxX:Number,
                                                         maxY:Number):Point
     {
-        // Make sure preferredX, preferredY are between minX and maxX
-        preferredX = Math.max(minX, Math.min(maxX, preferredX));
-        preferredY = Math.max(minY, Math.min(maxY, preferredY));
-
         // Untransformed bounds size is (x,y). The corners of the untransformed
         // bounding box are p1(0,0) p2(x,0) p3(0,y) p4(x,y).
         // Matrix is | a c tx |
@@ -959,9 +1092,10 @@
         var x:Number;
         var y:Number;

-        if (c1 != 0)
+        if (c1 != 0 && preferredX > 0)
         {
             const invC1:Number = 1 / c1;
+            preferredX = Math.max(minX, Math.min(maxX, preferredX));
             x = preferredX;

             // Case1:
@@ -987,9 +1121,10 @@
             }
         }

-        if (a != 0)
+        if (a != 0 && preferredY > 0)
         {
             const invA:Number = 1 / a;
+            preferredY = Math.max(minY, Math.min(maxY, preferredY));
             y = preferredY;

             // Case3:
@@ -1295,14 +1430,14 @@
             if (c1 == 0 || a == 0 || a == -c1)
                return null;

-            if (Math.abs(a * h) - Math.abs(b * w) > 1.0e-9)
+            if (Math.abs(a * h - b * w) > 1.0e-9)
                return null; // No solution in this case

             // Determinant is zero, the equations (1) & (2) are equivalent and
             // we have only one equation:
             // (1) w = abs( ax + c1y )
             //
-            // Solve it finding x and y as close as possible:
+            // Solve it finding x and y as close as possible:
             return solveEquation(a, c1, w, minX, minX, maxX, maxY, b, d1);
         }


Fixes FLEX-18697.  Updated getCacheKey function per Justin's suggestion.

--- frameworks/projects/framework/src/mx/utils/ObjectUtil.as
+++ frameworks/projects/framework/src/mx/utils/ObjectUtil.as
@@ -1310,10 +1310,10 @@
             for (var flag:String in options)
             {
                 key += flag;
-                var value:String = options[flag] as String;
-                if (value != null)
-					key += options[flag].toString();
-            }
+				var value:String = options[flag].toString();
+				if (value != null)
+					key += value;
+			}
         }
         return key;
     }


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

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

 package spark.components
 {


Added optional support for native SecureSocket instead of TLSSocket

--- flash-src/src/net/gimite/websocket/WebSocket.as
+++ flash-src/src/net/gimite/websocket/WebSocket.as
@@ -53,6 +53,7 @@
   private var tlsSocket:TLSSocket;
   private var tlsConfig:TLSConfig;
   private var socket:Socket;
+  private var secureSocket:SecureSocket;

   private var acceptedProtocol:String;
   private var expectedDigest:String;
@@ -64,12 +65,15 @@

   private var logger:IWebSocketLogger;
   private var base64Encoder:Base64Encoder = new Base64Encoder();
+
+  private var useFlashSecureSocket:Boolean = false;

   public function WebSocket(
       id:int, url:String, protocols:Array, origin:String,
       proxyHost:String, proxyPort:int,
       cookie:String, headers:String,
-      logger:IWebSocketLogger) {
+      logger:IWebSocketLogger,
+      useFlashSecureSocket:Boolean = false) {
     this.logger = logger;
     this.id = id;
     this.url = url;
@@ -83,6 +87,7 @@
     this.origin = origin;
     this.requestedProtocols = protocols;
     this.cookie = cookie;
+    this.useFlashSecureSocket = useFlashSecureSocket;
     // if present and not the empty string, headers MUST end with \r\n
     // headers should be zero or more complete lines, for example
     // "Header1: xxx\r\nHeader2: yyyy\r\n"
@@ -99,14 +104,22 @@
     } else {
       rawSocket = new Socket();
       if (scheme == "wss") {
-        tlsConfig= new TLSConfig(TLSEngine.CLIENT,
-            null, null, null, null, null,
-            TLSSecurityParameters.PROTOCOL_VERSION);
-        tlsConfig.trustAllCertificates = true;
-        tlsConfig.ignoreCommonNameMismatch = true;
-        tlsSocket = new TLSSocket();
-        tlsSocket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
-        socket = tlsSocket;
+          if (this.useFlashSecureSocket) {
+              logger.log('using internal SecureSocket');
+              secureSocket = new SecureSocket();
+              secureSocket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
+              rawSocket = socket = secureSocket;
+          }
+          else {
+              tlsConfig= new TLSConfig(TLSEngine.CLIENT,
+                      null, null, null, null, null,
+                      TLSSecurityParameters.PROTOCOL_VERSION);
+              tlsConfig.trustAllCertificates = true;
+              tlsConfig.ignoreCommonNameMismatch = true;
+              tlsSocket = new TLSSocket();
+              tlsSocket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
+              socket = tlsSocket;
+          }
       } else {
         rawSocket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData);
         socket = rawSocket;
@@ -212,8 +225,10 @@
     logger.log("connected");

     if (scheme == "wss") {
-      logger.log("starting SSL/TLS");
-      tlsSocket.startTLS(rawSocket, host, tlsConfig);
+      if(!useFlashSecureSocket) {
+          logger.log("starting SSL/TLS");
+          tlsSocket.startTLS(rawSocket, host, tlsConfig);
+      }
     }

     var defaultPort:int = scheme == "wss" ? 443 : 80;


Some comments added.

Some comments added.

--- Arguments/src/classes/Language.as
+++ Arguments/src/classes/Language.as
@@ -27,6 +27,9 @@
 		//Variables goes here
 		public static var intro:String;
 		private static var xml:XML=new XML;
+		/*
+			XML is a global variable so that it only has to be loaded once. This will save speed and bandwidth.
+		*/

 		public static function readXMLData():void
 		{
@@ -47,6 +50,7 @@
 			trace("XML loaded.");
 		}

+		/**The key function. Use this to look up a label from the translation document according to the set language.*/
 		public static function lookup(label:String):String{
 			trace("Now looking up:" + label);
 			var lbl:XMLList = xml.descendants(label);


another minor translation update

another minor translation update

--- Arguments/src/classes/AgoraMap.as
+++ Arguments/src/classes/AgoraMap.as
@@ -562,7 +562,7 @@
 			{
 				var aPanel:ArgumentPanel = nodes_map[node.@ID];
 				aPanel.ID = node.@ID;
-				aPanel.userIdLbl.text = "AU: " +  node.@Author;
+				aPanel.userIdLbl.text = Language.lookup("AU") + ": " +  node.@Author;
 				if(node.@Type == "Universal" || aPanel is Inference){
 					aPanel.state = 1;
 					aPanel.toggleType();


Stub for reading translation.xml included

--- Arguments/src/classes/Language.as
+++ Arguments/src/classes/Language.as
@@ -8,11 +8,17 @@

 	public class Language
 	{
+		//I will set the language to either GERMAN, RUSSIAN or ENGLISH
+		//based on this, you could read the values into the variables
+		//by default, the language is EN-US
+
+		public static const GERMAN:String = "GR";
+		public static const EN_US:String = "EN-US";
+		public static const RUSSIAN:String = "RS";
+		public static var language:String = EN_US;
 		public function Language()
 		{
 		}
-
-
 		//Variables goes here
 		public static var intro:String;

@@ -32,7 +38,5 @@
 			var xml:XML = new XML;
 			xml=XML(event.target.data);
 		}
-
-
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20708
Author:   deeptika@adobe.com
Date:     2011-03-09T08:32:19.519251Z

Log Message:
-----------
Merging revision 20707 from hero_private
mappingChange event was not getting fired for PieChart because of setting axis min and max explicitly. Fixed that.

Also, when showAllDataTips is set to true, we need to compute data tip positions only if chart has completed the effects and is simply in the state of showing data. This was done for all other series except for PieSeries. Fixed that.

QE notes:
Doc notes:
Bugs: FLEXDMV-2569 (Pie chart effects not working)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/NumericAxis.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/ChartsClasses.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk/frameworks/locale/zh_TW</path>
<path kind="dir" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/styles</path>
<path kind="dir" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts</path>
<path kind="dir" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/core</path>
<path kind="dir" action="M">/private/flex/sdk/trunk/frameworks/projects/spark_dmv/src/mx/controls/advancedDataGridClasses</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PieSeries.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/AdvancedDataGridClasses.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk/frameworks/tests/performance</path>

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

--- frameworks/projects/charts/src/mx/charts/series/PieSeries.as
+++ frameworks/projects/charts/src/mx/charts/series/PieSeries.as
@@ -1405,7 +1405,7 @@
             if ((item.itemRenderer as Object).hasOwnProperty('invalidateDisplayList'))
             	(item.itemRenderer as Object).invalidateDisplayList();
         }
-        if (allSeriesTransform && chart)
+        if (allSeriesTransform && chart && chart.chartState == 0)
         	chart.updateAllDataTips();

     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4692
Author:   gosmith@adobe.com
Date:     2009-01-27T22:13:03.562851Z

Log Message:
-----------
Fixed missing or misplaced 'break' statements in the eventHandler() methods of the mx.accessibility classes. These have probably been causing some unintented MSAA events to be dispatched.

Also, each accessible component now dispatches OBJ_NAMECHANGE when its toolTip or errorString property changes, because the MSAA name includes the tooltip or error tip.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TitleWindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/ButtonAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/ButtonAccImpl.as
@@ -225,6 +225,10 @@
 	 */
 	override protected function eventHandler(event:Event):void
 	{
+		// Let AccImpl class handle the events
+		// that all accessible UIComponents understand.
+		$eventHandler(event);
+
 		switch (event.type)
 		{
 			case "click":


Added private extension support to vCards.

git-svn-id: c197267f952b24206666de142881703007ca05d5@11725 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/vcard/VCard.as
+++ src/org/igniterealtime/xiff/vcard/VCard.as
@@ -26,6 +26,7 @@
 {
 	import flash.events.EventDispatcher;
 	import flash.events.TimerEvent;
+	import flash.utils.Dictionary;
 	import flash.utils.Timer;
 	import flash.xml.XMLDocument;

@@ -250,7 +251,17 @@
 		/**
 		 * @private
 		 */
+		private var extensionNames:Array;
+
+		/**
+		 * @private
+		 */
 		private var _loaded:Boolean;
+
+		/**
+		 * @private
+		 */
+		private var _extensions:Dictionary;

 		/**
 		 * Don't call directly, use the static method getVCard() and add a callback.
@@ -378,6 +389,9 @@
 			}

 			version = vCardNode.@version;
+
+			extensionNames = [];
+			_extensions = new Dictionary();

 			var nodes:XMLList = vCardNode.children();

@@ -630,7 +644,9 @@
 						break;

 					default:
-						trace( "handleVCard. unhandled case child.name(): " + child.name() );
+						trace( "handleVCard. Private extension: " + child.name() );
+						extensionNames.push( child.localName() );
+						extensions[ child.localName() ] = child.text().toString();
 						break;
 				}
 			}
@@ -1160,6 +1176,15 @@
 				vcardExtNode.DESC = description;
 			}

+			//X
+			if ( extensionNames.length > 0 )
+			{
+				for each( var xName:String in extensionNames )
+				{
+					vcardExtNode[ xName ] = _extensions[ xName ];
+				}
+			}
+
 			var xmlDoc:XMLDocument = new XMLDocument( vcardExtNode.toString() );
 			vcardExt.setNode( xmlDoc.firstChild );

@@ -1194,5 +1219,13 @@
 		{
 			return _loaded;
 		}
+
+		/**
+		 * Map of the vCard's private extensions.
+		 */
+		public function get extensions():Dictionary
+		{
+			return _extensions;
+		}
 	}
 }


Better error reporting when connections blow up; r=Daniel

--- src/org/jivesoftware/xiff/core/XMPPBOSHConnection.as
+++ src/org/jivesoftware/xiff/core/XMPPBOSHConnection.as
@@ -241,7 +241,7 @@
 		private function httpError(req:XMLNode, isPollResponse:Boolean, evt:FaultEvent):void
 		{
 			active = false;
-			dispatchError("Unknown HTTP Error", "A BOSH error occurred", "sasl", -1);
+			dispatchError("Unknown HTTP Error", evt.fault.rootCause.text, "", -1);
 		}

 		protected override function sendXML(body:*):void
@@ -382,6 +382,7 @@
 	            else if (feature.nodeName == "session")
 	                authentication.session = true;
 	        }
+
 	        auth = authentication.auth;
 	        dispatchEvent(new ConnectionSuccessEvent());
 	        authHandler = handleAuthentication;


moved output statement due to error

moved output statement due to error

--- src/flash/FlashMediaElement.as
+++ src/flash/FlashMediaElement.as
@@ -742,9 +742,10 @@
 				repositionVideo();
 				positionControls();
 				//_fullscreenButton.x = stage.stageWidth - _fullscreenButton.width - 10;
-			}
-
-			_output.appendText("result: " + _video.width.toString() + "," + _video.height.toString() + "\n");
+				_output.appendText("result: " + _video.width.toString() + "," + _video.height.toString() + "\n");
+			}
+
+
 		}

 		function positionFullscreenButton(x:Number, y:Number, visibleAndAbove:Boolean ) {


- fixed start volume parsing (int => float)

--- src/flash/FlashMediaElement.as
+++ src/flash/FlashMediaElement.as
@@ -77,7 +77,7 @@
 			_timerRate = (params['timerrate'] != undefined) ? (parseInt(params['timerrate'], 10)) : 250;
 			_showControls = (params['controls'] != undefined) ? (String(params['controls']) == "true") : false;
 			_enableSmoothing = (params['smoothing'] != undefined) ? (String(params['smoothing']) == "true") : false;
-			_startVolume = (params['startvolume'] != undefined) ? (parseInt(params['startvolume'], 10)) : 1;
+			_startVolume = (params['startvolume'] != undefined) ? (parseFloat(params['startvolume'])) : 0.8;
 			_preload = (params['preload'] != undefined) ? params['preload'] : "none";

 			if (isNaN(_timerRate))


Fixed LightTest.

Fixed LightTest.

--- Bin/Data/Scripts/LightTest.as
+++ Bin/Data/Scripts/LightTest.as
@@ -80,7 +80,7 @@
             objectNode.position = GetRandomPosition();

         StaticModel@ object = objectNode.CreateComponent("StaticModel");
-        object.visible = false;
+        object.enabled = false;
         objects.Push(object);
     }

@@ -94,7 +94,7 @@
         if (color.r == 0.5 && color.g == 0.5 && color.b == 0.5)
             color = Color(1, 1, 1);

-        light.visible = false;
+        light.enabled = false;
         light.range = 2.0;
         light.color = color;
         light.specularIntensity = 1.0;
@@ -142,13 +142,13 @@
 void EnableLights()
 {
     for (uint i = 0; i < lights.length; ++i)
-        lights[i].visible = i < numLights;
+        lights[i].enabled = i < numLights;
 }

 void EnableObjects()
 {
     for (uint i = 0; i < objects.length; ++i)
-        objects[i].visible = i < numObjects;
+        objects[i].enabled = i < numObjects;
 }

 void RandomizePositions()


crop SSProjectLoader debug trace

crop SSProjectLoader debug trace

--- src/jp/promotal/ssplayer/net/SSProjectLoader.as
+++ src/jp/promotal/ssplayer/net/SSProjectLoader.as
@@ -18,6 +18,8 @@
 		public var project:SSProject;
 		private var tasks:SSLoaderTask;
 		private var directoryURL:String;
+
+		public static var DEBUG:Boolean = false;

 		private function toURLRequest(fileName:String):URLRequest {
 			return new URLRequest(this.directoryURL + "/" + fileName);
@@ -40,15 +42,15 @@
 		}

 		private function loadProject(request:URLRequest):void {
-			trace("SSSProjectLoader.loadProject()");
+			debugTrace("SSSProjectLoader.loadProject()");
 			var _this:SSProjectLoader = this;
 			var task:SSLoaderTask = this.tasks.spawn();
 			var urlLoader:URLLoader = new URLLoader();
 			urlLoader.addEventListener(Event.COMPLETE, task.spawnEventListener(onLoadProjectComplete));
-			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("error! project読み込み失敗"));
+			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("Error! Project load failed: "));
 			urlLoader.load(request);
 			function onLoadProjectComplete(event:Event):void {
-				trace("SSSProjectLoader.onLoadProjectComplete()");
+				debugTrace("SSSProjectLoader.onLoadProjectComplete()");
 				var xml:XML = XML(URLLoader(event.target).data);
 				for each (var anime:XML in xml.animepackNames.value) {
 					_this.loadAnimepack(anime.text());
@@ -60,40 +62,40 @@
 		}

 		private function loadAnimepack(name:String):void {
-			trace("SSSProjectLoader.loadAnimepack()");
+			debugTrace("SSSProjectLoader.loadAnimepack()");
 			var _this:SSProjectLoader = this;
 			var task:SSLoaderTask = this.tasks.spawn();
 			var urlLoader:URLLoader = new URLLoader();
 			urlLoader.addEventListener(Event.COMPLETE, task.spawnEventListener(onLoadAnimepackComplete));
-			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("error! アニメーション読み込み失敗" + name));
+			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("Error! Animepack load failed: " + name));
 			urlLoader.load(this.toURLRequest(name));
 			function onLoadAnimepackComplete(event:Event):void {
-				trace("SSSProjectLoader.onLoadAnimepackComplete()");
+				debugTrace("SSSProjectLoader.onLoadAnimepackComplete()");
 				var xml:XML = XML(urlLoader.data);
 				_this.project.addAnimePackXML(xml, name)
 			}
 		}

 		private function loadCellMap(name:String):void {
-			trace("SSSProjectLoader.loadCellMap()");
+			debugTrace("SSSProjectLoader.loadCellMap()");
 			var _this:SSProjectLoader = this;
 			var task:SSLoaderTask = this.tasks.spawn();
 			var urlLoader:URLLoader = new URLLoader();
 			var loader:Loader = new Loader();
 			var xml:XML;
 			urlLoader.addEventListener(Event.COMPLETE, task.spawnEventListener(onLoadCellMapComplete));
-			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("error! セルマップ読み込み失敗" + name));
+			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("Error! Cellmap load failed: " + name));
 			urlLoader.load(this.toURLRequest(name));
 			function onLoadCellMapComplete(event:Event):void {
-				trace("SSSProjectLoader.onLoadCellMapComplete()");
+				debugTrace("SSSProjectLoader.onLoadCellMapComplete()");
 				XML.ignoreWhitespace = false; // XXX dirty hack
 				xml = XML(urlLoader.data);
 				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, task.spawnEventListener(onLoadCellMapTextureComplete));
-				loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("error! テクスチャ読み込み失敗" + xml.imagePath));
+				loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, listenAndDie("Error! Texture load failed: " + xml.imagePath));
 				loader.load(_this.toURLRequest(xml.imagePath));
 			}
 			function onLoadCellMapTextureComplete(event:Event):void {
-				trace("SSSProjectLoader.onLoadCellMapTextureComplete()");
+				debugTrace("SSSProjectLoader.onLoadCellMapTextureComplete()");
 				var texture:Texture;
 				var bitmap:Bitmap = Bitmap(loader.content);
 				if (bitmap.width > 2048 || bitmap.height > 2048) {
@@ -109,9 +111,15 @@
 			}
 		}

+		private function debugTrace(text:String):void {
+			if (DEBUG) {
+				trace("[SSProjectLoader]", text);
+			}
+		}
+
 		private function listenAndDie(text:String):Function {
 			return function(event:Event):void {
-				trace(text);
+				trace("[SSProjectLoader]", text);
 			}
 		}
 	}


Make proxy mode the default in swfcat.

Make proxy mode the default in swfcat.

In other words, use client=true instead of nothing for client mode, and
nothing instead of proxy=true for proxy mode. This makes it a drop-in
replacement for master swfcat.

--- swfcat.as
+++ swfcat.as
@@ -107,10 +107,10 @@
                 return;
             }

-            if (this.loaderInfo.parameter["proxy"])
+            if (this.loaderInfo.parameters["client"])
+                client_main();
+            else
                 proxy_main();
-            else
-                client_main();
         }

         /* Get an address structure from the given movie parameter, or the given


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

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

 package mx.events
 {