Transferred from the Adobe Open Source Subversion Repository

Revision: 2668
Author:   kelin@adobe.com
Date:     2008-07-30T21:05:00.806335Z

Log Message:
-----------
Massive check-in:

Updated Range, TrackBase, Slider, Spinner to use valueInterval to constrain values. In Slider, snapInterval was removed in favor of just using stepSize (for simplicity). TrackBase also is able to handle a resizable thumb.

Refactored ScrollBar to subclass TrackBase instead of Range in order to share thumb dragging code. pageSize was also moved from Range into ScrollBar.

Added a basic version of NumericStepper that can handle simple operations like committing the value when the enter key is pressed.

Skins for each of the components were also updated/added as needed. I also updated flex4test/CircularScrollBar.

QE: Yes!
Reviewer: Chet, Gordon, Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/HSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/HScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/VSliderTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/VScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/NumericStepper.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/VSlider.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/flex4/src/flex/component/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/SpinnerDecrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/VSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/VScrollBarSkin.mxml</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/flex/component/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/SpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/HSliderTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/HScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/SpinnerIncrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/CircularScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/SparkClasses.as
+++ frameworks/projects/spark/src/SparkClasses.as
@@ -34,6 +34,7 @@
 import flex.skin.HSliderTrackSkin; HSliderTrackSkin;
 import flex.skin.ItemsComponentSkin; ItemsComponentSkin;
 import flex.skin.ListSkin; ListSkin;
+import flex.skin.NumericStepperSkin; NumericStepperSkin;
 import flex.skin.PanelSkin; PanelSkin;
 import flex.skin.RadioButtonSkin; RadioButtonSkin;
 import flex.skin.ScrollBarUpButtonSkin; ScrollBarUpButtonSkin;


Print a message when colliding

Print a message when colliding

--- Game/Scripts/Cart.as
+++ Game/Scripts/Cart.as
@@ -60,6 +60,6 @@
     }

     void OnTrigger(Component::Physics @trigger, Component::Physics @enterer) {
-
+        print("WOW! WHAT A COLLISION!");
     }
 }


A fix for mismatching type casting introduced while migrating the class to XML

--- src/org/igniterealtime/xiff/vcard/VCard.as
+++ src/org/igniterealtime/xiff/vcard/VCard.as
@@ -616,10 +616,10 @@
 		 */
 		public function saveVCard( connection:XMPPConnection, user:RosterItemVO ):void
 		{
-			var iq:IQ = new IQ( null, IQ.TYPE_SET, XMPPStanza.generateID( "save_vcard_" ),
-								null, this, _vCardSent );
+			var id:String = XMPPStanza.generateID( "save_vcard_" );
+			var iq:IQ = new IQ( null, IQ.TYPE_SET, id, null, this, _vCardSent );
 			var vcardExt:VCardExtension = new VCardExtension();
-			var vcardExtNode:XML = vcardExt.getNode() as XML;
+			var vcardExtNode:XML = new XML(vcardExt.getNode().toString());
 			//var vcardExtNode:XML = vcardExt.node;

 			if ( firstName || middleName || lastName )


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/mx/src/mx/containers/TitleWindow.as
+++ frameworks/projects/mx/src/mx/containers/TitleWindow.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/mx/src/mx/containers/VDividedBox.as
+++ frameworks/projects/mx/src/mx/containers/VDividedBox.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

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

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

 package mx.controls
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/mxml/IMXMLSupport.as
+++ frameworks/projects/rpc/src/mx/rpc/mxml/IMXMLSupport.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 2861
Author:   egeorgie@adobe.com
Date:     2008-08-15T23:52:48.544706Z

Log Message:
-----------
Add 'resizeMode' property to the Group. Setting this to "Scale" will turn on the 'resize-by-scale' behavior.

Reviewed by Glenn

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/ResizeMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.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/flex/layout/LayoutItemUIC.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -142,17 +142,17 @@
     private static const forceLoad0:Class = flex.layout.BasicLayout;
     private static const forceLoad1:Class = flex.layout.HorizontalLayout;
     private static const forceLoad2:Class = flex.layout.VerticalLayout;
-
+
     public function set layout(value:Object):void
     {
     	if (value is ILayout) {
     		_layout = ILayout(value);
     	    _layoutClass = null;
-    	}
+    }
     	else if (value is String) {
     		_layout = null;
 		    _layoutClass = flash.utils.getDefinitionByName(String(value)) as Class;
-    	}
+    }
     	else if (value is Class) {
     		_layout = null;
     		_layoutClass = Class(value);
@@ -165,6 +165,62 @@
         invalidateProperties();
     }

+    private var _resizeMode:uint = ResizeMode._NORMAL_UINT;
+
+    public function get resizeMode():String
+    {
+        return ResizeMode.toString(_resizeMode);
+    }
+
+    public function set resizeMode(stringValue:String):void
+    {
+        var value:uint = ResizeMode.toUINT(stringValue);
+        if (_resizeMode == value)
+            return;
+
+        _resizeMode = value;
+
+        // We need the measured values and _resizeMode affects
+        // our measure (skipMeasure implementation checks resizeMode) so
+        // we need to invalidate the size.
+        invalidateSize();
+
+        // TODO EGeorgie: can we directly call setActualSize instead?
+        invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    override public function setActualSize(w:Number, h:Number):void
+    {
+        if (_resizeMode == ResizeMode._SCALE_UINT)
+        {
+            // TODO EGeorgie: make sure we don't invalidate again while
+            // setting the scale!
+            if (measuredWidth != 0)
+            {
+                scaleX = w / measuredWidth;
+                w = measuredWidth;
+            }
+            if (measuredHeight != 0)
+            {
+                scaleY = h / measuredHeight;
+                h = measuredHeight;
+            }
+        }
+
+        super.setActualSize(w, h);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    override protected function skipMeasure():Boolean
+    {
+        // We never want to skip measure, if we resize by scaling
+        return _resizeMode == ResizeMode._SCALE_UINT ? false : super.skipMeasure();
+    }

     protected function initializeChildrenArray():void
     {
@@ -465,7 +521,7 @@
             UIComponent(parent).invalidateDisplayList();
         }
     }
-
+
     //----------------------------------
     //  horizontal,verticalScrollPosition
     //----------------------------------
@@ -512,7 +568,7 @@
     [Bindable] public var contentHeight:Number;

-    //--------------------------------------------------------------------------
+        //--------------------------------------------------------------------------
     //
     //  Properties: Overriden Focus management
     //
@@ -923,14 +979,14 @@
     //  Layout
     //
     //--------------------------------------------------------------------------
-
+
     protected function initializeLayoutObject():void
     {
 		if (_layout == null) {
 			_layout = (_layoutClass) ? new _layoutClass() : new BasicLayout();
 		}
         ILayout(_layout).target = this;
-
+
         invalidateSize();
         invalidateDisplayList();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11366
Author:   chaase@adobe.com
Date:     2009-11-02T16:09:18.010792Z

Log Message:
-----------
Simplifies, optimizes, and docs "auto" blendMode logic in Group.

QE notes: none
Doc notes: Added some ASDocs to clarify "auto" behavior
Bugs: none
Reviewer: Corey
Tests run: checkintests, Mustella spark/primitives, sprk/core/fxg
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -124,7 +124,7 @@
  *
  *

  *  alpha
- *  blendMode other than BlendMode.NORMAL
+ *  blendMode other than BlendMode.NORMAL or "auto"
  *  colorTransform
  *  filters
  *  mask
@@ -293,11 +293,17 @@
         if (super.alpha == value)
             return;

-        if (!blendModeExplicitlySet && _blendMode == "auto")
-        {
-            blendModeChanged = true;
-            invalidateDisplayObjectOrdering();
-            invalidateProperties();
+        if (_blendMode == "auto")
+        {
+            // if alpha changes from an opaque/transparent (1/0) and translucent
+            // (0 < value < 1), then trigger a blendMode change
+            if ((value > 0 && value < 1 && (super.alpha == 0 || super.alpha == 1)) ||
+                ((value == 0 || value == 1) && (super.alpha > 0 && super.alpha < 1)))
+            {
+                blendModeChanged = true;
+                invalidateDisplayObjectOrdering();
+                invalidateProperties();
+            }
         }

         super.alpha = value;
@@ -314,7 +320,6 @@
     private var _blendMode:String = "auto";
     private var blendModeChanged:Boolean;
 	private var blendShaderChanged:Boolean;
-    private var blendModeExplicitlySet:Boolean;

     [Inspectable(category="General", enumeration="auto,add,alpha,darken,difference,erase,hardlight,invert,layer,lighten,multiply,normal,subtract,screen,overlay,colordodge,colorburn,exclusion,softlight,hue,saturation,color,luminosity", defaultValue="auto")]

@@ -326,6 +331,13 @@
      *  If you attempt to set this property to an invalid value,
      *  Flash Player or Adobe AIR sets the value to BlendMode.NORMAL.
      *
+     *
A value of "auto" (the default) is specific to Group's use of
+     *  blendMode and indicates that the underlying blendMode should be
+     *  BlendMode.NORMAL except when alpha is not
+     *  equal to either 0 or 1, when it will be set to BlendMode.LAYER.
+     *  This behavior ensures that groups will have correct
+     *  compositing of their graphic objects when the group is translucent.

+     *
      *  @default "auto"
      *
      *  @see flash.display.DisplayObject#blendMode
@@ -346,8 +358,11 @@
      */
     override public function set blendMode(value:String):void
     {
-        if (blendModeExplicitlySet && value == _blendMode)
+        if (value == _blendMode)
             return;
+
+        invalidateProperties();
+        blendModeChanged = true;

     	//The default blendMode in FXG is 'auto'. There are only
         //certain cases where this results in a rendering difference,
@@ -355,14 +370,13 @@
         //case we set the blendMode to layer to avoid the performance
         //overhead that comes with a non-normal blendMode.

-        if (!blendModeExplicitlySet && value == "auto")
-        {
+        if (value == "auto")
+        {
+            _blendMode = value;
             if (((alpha > 0 && alpha < 1) && super.blendMode != BlendMode.LAYER) ||
                 ((alpha == 1 || alpha == 0) && super.blendMode != BlendMode.NORMAL) )
             {
-                blendModeChanged = true;
                 invalidateDisplayObjectOrdering();
-                invalidateProperties();
             }
         }
         else
@@ -376,16 +390,10 @@
 			if (value == "colordodge" ||
 				value =="colorburn" || value =="exclusion" ||
 				value =="softlight" || value =="hue" ||
-				value =="saturation" || value =="color"
-				|| value =="luminosity")
+				value =="saturation" || value =="color" ||
+				value =="luminosity")
 			{
-				blendModeExplicitlySet = true;
 				blendShaderChanged = true;
-			}
-			else
-			{
-            	blendModeExplicitlySet = true;
-            	blendModeChanged = true;
 			}

             // Only need to re-do display object assignment if blendmode was normal
@@ -398,7 +406,6 @@
                 invalidateDisplayObjectOrdering();
             }

-            invalidateProperties();
         }
     }

@@ -729,68 +736,73 @@
     {
         super.commitProperties();

-        if (blendModeChanged && !blendShaderChanged)
+        if (blendModeChanged)
         {
             blendModeChanged = false;
-            if (_blendMode == "auto" && alpha < 1 && alpha > 0)
-                super.blendMode = BlendMode.LAYER;
-            else if (_blendMode == "auto" && alpha == 1 || alpha == 0)
-                super.blendMode = BlendMode.NORMAL;
-            else
-                super.blendMode = _blendMode;
-        }
-
-		if (blendShaderChanged)
-		{
-			// The graphic element's blendMode was set to a non-Flash
-			// blendMode. We mimic the look by instantiating the
-			// appropriate shader class and setting the blendShader
-			// property on the displayObject.
-			blendShaderChanged = false;
-			switch(_blendMode)
-			{
-				case "color":
-				{
-					super.blendShader = new ColorShader();
-					break;
-				}
-				case "colordodge":
-				{
-					super.blendShader = new ColorDodgeShader();
-					break;
-				}
-				case "colorburn":
-				{
-					super.blendShader = new ColorBurnShader();
-					break;
-				}
-				case "exclusion":
-				{
-					super.blendShader = new ExclusionShader();
-					break;
-				}
-				case "hue":
-				{
-					super.blendShader = new HueShader();
-					break;
-				}
-				case "luminosity":
-				{
-					super.blendShader = new LuminosityShader();
-					break;
-				}
-				case "saturation":
-				{
-					super.blendShader = new SaturationShader();
-					break;
-				}
-				case "softlight":
-				{
-					super.blendShader = new SoftLightShader();
-					break;
-				}
-			}
-		}
+            if (!blendShaderChanged)
+            {
+                if (_blendMode == "auto")
+                {
+                    if (alpha == 0 || alpha == 1)
+                        super.blendMode = BlendMode.NORMAL;
+                    else
+                        super.blendMode = BlendMode.LAYER;
+                }
+                else
+                    super.blendMode = _blendMode;
+            }
+            else
+            {
+                // The graphic element's blendMode was set to a non-Flash
+                // blendMode. We mimic the look by instantiating the
+                // appropriate shader class and setting the blendShader
+                // property on the displayObject.
+                blendShaderChanged = false;
+                switch(_blendMode)
+                {
+                    case "color":
+                    {
+                        super.blendShader = new ColorShader();
+                        break;
+                    }
+                    case "colordodge":
+                    {
+                        super.blendShader = new ColorDodgeShader();
+                        break;
+                    }
+                    case "colorburn":
+                    {
+                        super.blendShader = new ColorBurnShader();
+                        break;
+                    }
+                    case "exclusion":
+                    {
+                        super.blendShader = new ExclusionShader();
+                        break;
+                    }
+                    case "hue":
+                    {
+                        super.blendShader = new HueShader();
+                        break;
+                    }
+                    case "luminosity":
+                    {
+                        super.blendShader = new LuminosityShader();
+                        break;
+                    }
+                    case "saturation":
+                    {
+                        super.blendShader = new SaturationShader();
+                        break;
+                    }
+                    case "softlight":
+                    {
+                        super.blendShader = new SoftLightShader();
+                        break;
+                    }
+                }
+            }
+        }

         if (needsDisplayObjectAssignment)
         {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

  *
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 10838
Author:   aharui@adobe.com
Date:     2009-10-02T21:41:01.864370Z

Log Message:
-----------
Bug fixes from new controlBarVisible property

QE Notes: None
Doc Notes: controlBarVisible added Spark Application
Bugs: SDK-23526 SDK-23562
Reviewer: Corey
API Change: Yes
Is noteworthy for integration: No
tests: checkintests mustella/gumbo/components/Application, Panel

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

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

--- frameworks/projects/spark/src/spark/components/Panel.as
+++ frameworks/projects/spark/src/spark/components/Panel.as
@@ -306,7 +306,8 @@
             controlBarGroupProperties.visible = value;

         invalidateSkinState();
-        skin.invalidateSize();
+        if (skin)
+            skin.invalidateSize();
     }

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


ADDED 'hasPermission' method to AS3 API

ADDED 'hasPermission' method to AS3 API

--- actionscript/src/com/marpies/ane/vk/VK.as
+++ actionscript/src/com/marpies/ane/vk/VK.as
@@ -137,6 +137,14 @@
             if( !isLoggedIn ) return;

             mContext.call( "logout" );
+        }
+
+        /**
+         * Checks whether the access token has the given permission.
+         */
+        public static function hasPermission( permission:String ):Boolean {
+            if( mAccessToken === null || mAccessToken.permissions === null ) return false;
+            return mAccessToken.permissions.indexOf( permission ) >= 0;
         }

         /**


Fixed a bug in DefaultBackgroundRenderer that caused background animations not to be properly updated if the animation itself didn't change

This affected background-animation-control in all cases where an element kept the same background animation but should receive new animation control settings

--- src/reprise/ui/renderers/DefaultBackgroundRenderer.as
+++ src/reprise/ui/renderers/DefaultBackgroundRenderer.as
@@ -15,7 +15,7 @@
 	import flash.geom.Matrix;
 	import flash.geom.Point;
 	import flash.geom.Rectangle;
-
+
 	import reprise.commands.CompositeCommand;
 	import reprise.css.CSSProperty;
 	import reprise.css.propertyparsers.Background;
@@ -28,6 +28,7 @@
 	import reprise.external.ImageResource;
 	import reprise.utils.GfxUtil;
 	import reprise.utils.Gradient;
+
 	public class DefaultBackgroundRenderer extends AbstractCSSRenderer
 	{
 		/***************************************************************************
@@ -227,7 +228,7 @@
 				m_backgroundImageLoader.url() == m_styles.backgroundImage &&
 				m_backgroundImageLoader is ImageResource)
 			{
-				if (!m_backgroundImageLoader.didFinishLoading() && m_backgroundImageLoader.didSucceed())
+				if (m_backgroundImageLoader.didFinishLoading() && m_backgroundImageLoader.didSucceed())
 				{
 					// we force redrawing here, due to the fact that our size or
 					// the image position could have changed
@@ -518,7 +519,7 @@
 			}
 			var imgContainer : Sprite = m_activeBackgroundAnimationContainer;
 			imgContainer.addChild(m_backgroundImageLoader.content());
-
+
 			if (m_backgroundImageLoader.content() is MovieClip &&
 				m_styles.backgroundAnimationControl)
 			{


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as
@@ -14,6 +14,8 @@

 import mx.styles.StyleManager;
 import mx.core.mx_internal;
+
+use namespace mx_internal;

 /**
  *  The SetStyleActionInstance class implements the instance class
@@ -93,7 +95,7 @@
 	 */
 	public function get value():*
 	{
-		if (mx_internal::playReversed)
+		if (playReversed)
 			return getStartValue();
 		else
 			return _value;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18880
Author:   tkraikit@adobe.com
Date:     2010-11-30T23:22:18.931945Z

Log Message:
-----------
HSliderSkin for mobile: 240ppi and 160ppi implementations.

See https://zerowing.corp.adobe.com/display/xdplatform/Slider for XD spec.

QE notes: "disabled" state still requires work -- awaiting XD input
Doc notes: n/a
Bugs: n/a
Reviewer: Jason Szeto and Jason San Jose
Tests run: checkintests, mustella(cyclone)
Is noteworthy for integration: n/a

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/HSliderThumb_pressed.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/HSliderTrack.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/HSliderThumb_pressed.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/HSliderTrack.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/HSliderThumb_normal.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/HSliderThumb_normal.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -28,6 +28,7 @@
 import spark.skins.mobile.CheckBoxSkin; spark.skins.mobile.CheckBoxSkin;
 import spark.skins.mobile.RadioButtonSkin; spark.skins.mobile.RadioButtonSkin;
 import spark.skins.mobile.HScrollBarSkin; spark.skins.mobile.HScrollBarSkin;
+import spark.skins.mobile.HSliderSkin; spark.skins.mobile.HSliderSkin;
 import spark.skins.mobile.ListSkin; spark.skins.mobile.ListSkin;
 import spark.skins.mobile.TabbedViewNavigatorApplicationSkin; TabbedViewNavigatorApplicationSkin;
 import spark.skins.mobile.TextAreaSkin; TextAreaSkin;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5770
Author:   gruehle@adobe.com
Date:     2009-03-30T20:58:54.529722Z

Log Message:
-----------
Add [Alternative] metadata to the Halo components that have a Gumbo replacement.

Bugs: SDK-20190
QA notes: none
Doc notes: Additional ASDoc comments added for many of the classes. These should all be reviewed.
Reviewer: Chet

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TileList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Zoom.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToggleButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/HBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Cubic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/RemoveChildAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/TweenEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeRight.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/VBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Glow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Quartic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Box.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeLeft.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Quintic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Tile.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Quadratic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.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/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeDown.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Rotate.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/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Canvas.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Blur.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HorizontalList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeUp.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ToggleButtonBar.as
+++ frameworks/projects/mx/src/mx/controls/ToggleButtonBar.as
@@ -82,6 +82,8 @@
 //--------------------------------------

 [IconFile("ButtonBar.png")]
+
+[Alternative(replacement="spark.components.ButtonBar", since="4.0")]

 /**
  *  The ToggleButtonBar control defines a horizontal or vertical


release 3.6 reg

release 3.6 reg

--- Arguments/src/components/CollabSocketHandler.as
+++ Arguments/src/components/CollabSocketHandler.as
@@ -34,7 +34,7 @@

 	public class CollabSocketHandler extends EventDispatcher
 	{
-		public var host:String = 'localhost'; // change
+		public var host:String = 'agora.gatech.edu'; // change -- agora.gatech.edu
 		public var mapport:int    = 1768; //for global 1767;
 		public var times:int =0;
 		protected var socket:Socket;
@@ -107,6 +107,10 @@
 					if(data[i].toString().length>0)
 						message+=" "+data[i]+",";
 				}
+				var ifNum:Boolean = isNaN(Number(data[0]));
+				if(ifNum){
+					return;
+				}
 				numCollabs = data[0];
 				FlexGlobals.topLevelApplication.rightSidePanel.onlineBox.text = data[0]+" "+Language.lookup("MapCollaborators");
 				FlexGlobals.topLevelApplication.rightSidePanel.onlineBox.toolTip = message;


fix coding style

fix coding style

--- src/aerys/minko/scene/node/light/SpotLight.as
+++ src/aerys/minko/scene/node/light/SpotLight.as
@@ -199,7 +199,7 @@
 				color,
 				diffuse,
 				specular,
-				shininess,
+				shininess,
 				attenuationDistance,
 				outerRadius,
 				innerRadius,


handle IndexStream._localDipose in IndexBuffer3DResource.getIndexBuffer3D()

--- src/aerys/minko/render/resource/IndexBuffer3DResource.as
+++ src/aerys/minko/render/resource/IndexBuffer3DResource.as
@@ -67,8 +67,8 @@
 				_update = false;
 				_numIndices = _stream.length;

-				if (!(_stream.usage & StreamUsage.READ))
-					_stream.disposeLocalData();
+				if (!(_stream.usage & StreamUsage.READ) || _stream._localDispose)
+					_stream.disposeLocalData(false);
 			}

 			return _indexBuffer;


Add BitmapUtils.applyInnerAlphaMask

Add BitmapUtils.applyInnerAlphaMask

--- src/main/org/shypl/common/util/BitmapUtils.as
+++ src/main/org/shypl/common/util/BitmapUtils.as
@@ -1,6 +1,7 @@
 package org.shypl.common.util {
 	import flash.display.Bitmap;
 	import flash.display.BitmapData;
+	import flash.display.BitmapDataChannel;
 	import flash.display.DisplayObject;
 	import flash.display.IBitmapDrawable;
 	import flash.display.PixelSnapping;
@@ -8,12 +9,6 @@
 	import flash.geom.Rectangle;

 	public final class BitmapUtils {
-
-		public static function getRectangle(source:BitmapData, rect:Rectangle):BitmapData {
-			var copy:BitmapData = new BitmapData(rect.width, rect.height);
-			copy.copyPixels(source, rect, StaticPoint0.INSTANCE);
-			return copy;
-		}

 		public static function createBitmap(image:BitmapData, smoothing:Boolean = true, pixelSnapping:String = PixelSnapping.AUTO, x:Number = 0, y:Number = 0,
 			scale:Number = 1
@@ -24,6 +19,45 @@
 			bitmap.scaleX = scale;
 			bitmap.scaleY = scale;
 			return bitmap;
+		}
+
+		public static function getRectangle(source:BitmapData, rect:Rectangle):BitmapData {
+			var copy:BitmapData = new BitmapData(rect.width, rect.height);
+			copy.copyPixels(source, rect, StaticPoint0.INSTANCE);
+			return copy;
+		}
+
+		public static function resize(source:BitmapData, width:int, height:int):BitmapData {
+			var target:BitmapData = new BitmapData(width, height, true, 0);
+			var matrix:Matrix = new Matrix();
+
+			matrix.scale(width / source.width, height / source.height);
+			target.draw(source, matrix, null, null, null, true);
+
+			return target;
+		}
+
+		public static function applyInnerAlphaMask(source:BitmapData, horizontal:Boolean = true, rect:Rectangle = null):BitmapData {
+			if (rect == null) {
+				rect = new Rectangle(0, 0,
+					horizontal ? source.width : (source.width / 2),
+					horizontal ? (source.height / 2) : source.height
+				);
+			}
+
+			var result:BitmapData = new BitmapData(rect.width, rect.height, true, 0);
+
+			var resultRect:Rectangle = new Rectangle(0, 0, rect.width, rect.height);
+			var maskRect:Rectangle = new Rectangle(
+				horizontal ? 0 : rect.width,
+				horizontal ? rect.height : 0,
+				rect.width, rect.height);
+
+
+			result.copyPixels(source, resultRect, StaticPoint0.INSTANCE);
+			result.copyChannel(source, maskRect, StaticPoint0.INSTANCE, BitmapDataChannel.RED, BitmapDataChannel.ALPHA);
+
+			return result;
 		}

 		public static function defineVisibleBounds(target:IBitmapDrawable):Rectangle {
@@ -111,15 +145,5 @@

 			return new Rectangle(l, t, r - l, b - t);
 		}
-
-		public static function resize(source:BitmapData, width:int, height:int):BitmapData {
-			var target:BitmapData = new BitmapData(width, height, true, 0);
-			var matrix:Matrix = new Matrix();
-
-			matrix.scale(width / source.width, height / source.height);
-			target.draw(source, matrix, null, null, null, true);
-
-			return target;
-		}
 	}
 }


added LinkablePlaceholder.whenReady()

added LinkablePlaceholder.whenReady()

--- WeaveJS/src/weavejs/core/LinkablePlaceholder.as
+++ WeaveJS/src/weavejs/core/LinkablePlaceholder.as
@@ -61,6 +61,7 @@
 		private static function replace(oldObject:ILinkableObject, newObject:ILinkableObject):void
 		{
 			var owner:ILinkableObject = Weave.getOwner(oldObject);
+			var oldPlaceholder:LinkablePlaceholder = oldObject as LinkablePlaceholder;
 			var lhm:ILinkableHashMap = owner as ILinkableHashMap;
 			var ldo:ILinkableDynamicObject = owner as ILinkableDynamicObject;
 			if (!lhm && !ldo)
@@ -74,6 +75,9 @@
 				if (Weave.getCallbacks(oldObject).triggerCounter != CallbackCollection.DEFAULT_TRIGGER_COUNT)
 					sessionState = Weave.getState(oldObject);

+				if (oldPlaceholder)
+					Weave.getCallbacks(oldPlaceholder).delayCallbacks();
+
 				if (lhm)
 					lhm.setObject(lhm.getName(oldObject), newObject);
 				else if (ldo)
@@ -81,6 +85,9 @@

 				if (sessionState !== undefined)
 					Weave.setState(newObject, sessionState);
+
+				if (oldPlaceholder)
+					Weave.getCallbacks(oldPlaceholder).resumeCallbacks();
 			}
 			finally
 			{
@@ -136,6 +143,30 @@
 				Weave.dispose(placeholder);
 				throw e;
 			}
+		}
+
+		/**
+		 * Calls a function after a placeholder has been replaced with an instance and the instance session state has been initialized.
+		 * The onReady function will be called immediately if possiblePlaceholder is not a LinkablePlaceholder.
+		 * @param relevantContext The relevantContext parameter passed to ICallbackCollection.addDisposeCallback().
+		 * @param possiblePlaceholder Either a LinkablePlaceholder or another ILinkableObject.
+		 * @param onReady The function to call.
+		 */
+		public static function whenReady(relevantContext:ILinkableObject, possiblePlaceholder:ILinkableObject, onReady:/*/(instance:ILinkableObject)=>void/*/Function):void
+		{
+			var lp:LinkablePlaceholder = Weave.AS(possiblePlaceholder, LinkablePlaceholder);
+			if (lp)
+			{
+				Weave.getCallbacks(lp).addDisposeCallback(relevantContext, function():void {
+					var instance:ILinkableObject = lp.getInstance();
+					if (instance)
+						onReady(instance);
+				}, true);
+			}
+			else if (possiblePlaceholder && !Weave.wasDisposed(relevantContext))
+			{
+				onReady(possiblePlaceholder);
+			}
 		}
 	}
 }


removed diffuse map multiplier

removed diffuse map multiplier

--- src/aerys/minko/render/shader/part/DiffuseShaderPart.as
+++ src/aerys/minko/render/shader/part/DiffuseShaderPart.as
@@ -47,9 +47,6 @@
 				);

 				diffuseColor = sampleTexture(diffuseMap, uv);
-
-				if (meshBindings.propertyExists(BasicProperties.DIFFUSE_MAP_MULTIPLIER))
-					diffuseColor = multiply(diffuseColor, (meshBindings.getParameter(BasicProperties.DIFFUSE_MAP_MULTIPLIER, 4)));
 			}
 			else if (meshBindings.propertyExists(BasicProperties.DIFFUSE_COLOR))
 			{


Change namespace of methods in PropertyUtil class from "private" to "dolly_internal".

--- dolly-framework/src/main/actionscript/dolly/utils/PropertyUtil.as
+++ dolly-framework/src/main/actionscript/dolly/utils/PropertyUtil.as
@@ -1,19 +1,23 @@
 package dolly.utils {
+
+import dolly.core.dolly_internal;

 import mx.collections.ArrayCollection;
 import mx.collections.ArrayList;

+use namespace dolly_internal;
+
 public class PropertyUtil {

-	private static function copyArray(targetObj:*, propertyName:String, sourceProperty:*):void {
+	dolly_internal static function copyArray(targetObj:*, propertyName:String, sourceProperty:*):void {
 		targetObj[propertyName] = (sourceProperty as Array).slice();
 	}

-	private static function copyArrayList(targetObj:*, propertyName:String, arrayList:ArrayList):void {
+	dolly_internal static function copyArrayList(targetObj:*, propertyName:String, arrayList:ArrayList):void {
 		targetObj[propertyName] = arrayList.source ? new ArrayList(arrayList.source) : new ArrayList();
 	}

-	private static function copyArrayCollection(targetObj:*, propertyName:String, sourceProperty:*):void {
+	dolly_internal static function copyArrayCollection(targetObj:*, propertyName:String, sourceProperty:*):void {
 		const arrayCollection:ArrayCollection = (sourceProperty as ArrayCollection);
 		targetObj[propertyName] = arrayCollection.source ?
 				new ArrayCollection(arrayCollection.source.slice()) :


#FEC-180 #time 30m #comment fix switching text with non-mbr widevine flavors

--- plugins/wvPlugin/src/WvMediator.as
+++ plugins/wvPlugin/src/WvMediator.as
@@ -366,31 +366,33 @@
 				case "NetStream.Wv.SwitchDown":
 					_wvPluginInfo.wvMediaElement.netStream.parseTransitionMsg(e.info.details);
 					//first time we get bitrates info - save it to kalturaflavorarray
-					if (_mediaProxy.vo.forceDynamicStream && _shouldSetFlavors)
-					{
+					if (_mediaProxy.vo.forceDynamicStream)
+					{
+						if (_shouldSetFlavors)
+						{
+							var bitrates:Array = _wvPluginInfo.wvMediaElement.netStream.getBitrates();
+							if (bitrates)
+							{
+								var flvArray:Array = new Array();
+								for (var i:int = 0; i<bitrates.length; i++)
+								{
+									var fa : KalturaFlavorAsset = new KalturaFlavorAsset();
+									fa.bitrate = bitrates[i] * 8 / 1024;
+									flvArray.push(fa);
+								}
+								_mediaProxy.vo.kalturaMediaFlavorArray = flvArray;
+							}
+							_mediaProxy.vo.autoSwitchFlavors = true;
+							_shouldSetFlavors = false;
+						}

-						var bitrates:Array = _wvPluginInfo.wvMediaElement.netStream.getBitrates();
-						if (bitrates)
-						{
-							var flvArray:Array = new Array();
-							for (var i:int = 0; i<bitrates.length; i++)
-							{
-								var fa : KalturaFlavorAsset = new KalturaFlavorAsset();
-								fa.bitrate = bitrates[i] * 8 / 1024;
-								flvArray.push(fa);
-							}
-							_mediaProxy.vo.kalturaMediaFlavorArray = flvArray;
-						}
-						_mediaProxy.vo.autoSwitchFlavors = true;
-						_shouldSetFlavors = false;
-					}
-
-
-					var newIndx:int = _wvPluginInfo.wvMediaElement.netStream.getCurrentQualityLevel() - 1;
-					_mediaProxy.vo.preferedFlavorBR = _mediaProxy.vo.kalturaMediaFlavorArray[newIndx].bitrate;
-					sendNotification( NotificationType.SWITCHING_CHANGE_COMPLETE, {newIndex : newIndx , newBitrate: _mediaProxy.vo.preferedFlavorBR}  );
-					break;
-
+						var newIndx:int = _wvPluginInfo.wvMediaElement.netStream.getCurrentQualityLevel() - 1;
+						_mediaProxy.vo.preferedFlavorBR = _mediaProxy.vo.kalturaMediaFlavorArray[newIndx].bitrate;
+						sendNotification( NotificationType.SWITCHING_CHANGE_COMPLETE, {newIndex : newIndx , newBitrate: _mediaProxy.vo.preferedFlavorBR}  );
+
+					}
+
+				break;

 				/*	case "NetStream.Buffer.Empty":


Transferred from the Adobe Open Source Subversion Repository

Revision: 7319
Author:   jszeto@adobe.com
Date:     2009-05-27T17:45:33.641648Z

Log Message:
-----------
Transform improvements

http://bugs.adobe.com/jira/browse/SDK-17312 - Fix up transform, matrix and matrix3D properties on UIComponent and GraphicElement.

When a Transform is assigned to a GraphicElement or UIComponent, we want changes to the Transform to be applied to the GraphicElement or UIComponent (component). The current implementation has the component listening for change events on the Transform. We also want the Transform to reflect changes made to the component. The current implementation doesn’t do this.

The solution is when the Transform is assigned to the component, that component is assigned to the target property of the Transform. Any calls to the setters of the Transform directly assign properties of the component. The getters grab their values directly from the component. The components no longer listen for change events from the Transform.

Since the GraphicElement and IGraphicElement classes exist in the flex4 swc, they can not be used in the Transform class, which exists only in the framework swc. The solution is to use loose typing and use the “property in object” check. The change to the component classes are made in UIComponent, UIMovieClip and GraphicElement.

I added a public $transform property to UIMovieClip to access super.transform. I had to make it public because the framework swc doesn’t include UIMovieClip.

I was unable to override the matrix3D setter in Transform because it was throwing an illegal override compiler error.

I had to add a setColorTransform public function to GraphicElement to handle the case where the GraphicElement’s colorTransform is directly set.

myRect.transform.colorTransform = newColorTransform;

In this situation, the GraphicElement’s transform object is created on demand. At this point, the GraphicElement might not have its own DisplayObject, so we need a way to store the colorTransform value until the DO is created. I had to make the function public because the “in” operator doesn’t work with non-public namespaces.

ColorTransforms get passed around by reference, so in setColorTransform, I make a copy. This fixes some strange baseColor bug I was seeing.

http://bugs.adobe.com/jira/browse/SDK-17680 - GraphicElement with transform matrix ignores alpha property

If the alpha property and a transform are declaratively set on a GraphicElement, then the alpha value is ignored. The reason is that the Transform object always has a default value for its ColorTransform, which sets the alpha value. The transform.ColorTransform.alphaMultiplier and alpha property are synchronized in DisplayObject.

Ideally we would throw a compiler error if both the alpha property and the transform property were set at the same time. Instead, the next best thing to do is to apply the alpha value after the ColorTransform has been applied. We can do this for GraphicElement since alpha and colorTransform are set in commitProperties. For UIComponent, alpha is applied right away. I didn’t want to change that since it would probably break a whole lot of mustella tests and effect behavior. Thus this bug still exists in UIComponent.

QE Notes: Need tests to ensure that the Transform is in sync with its target component
Doc Notes: Need to document that changes to the component get reflected by its Transform
Bugs: SDK-17312, SDK-17680
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/halo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/fxg-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -20,6 +20,7 @@
 import flash.display.Stage;
 import flash.events.Event;
 import flash.events.FocusEvent;
+import flash.geom.ColorTransform;
 import flash.geom.Matrix;
 import flash.geom.Matrix3D;
 import flash.geom.PerspectiveProjection;
@@ -44,8 +45,6 @@
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.events.MoveEvent;
-import mx.events.PropertyChangeEvent;
-import mx.events.PropertyChangeEventKind;
 import mx.events.ResizeEvent;
 import mx.events.StateChangeEvent;
 import mx.geom.TransformOffsets;
@@ -2959,44 +2958,30 @@
      */
     override public function set transform(value:flash.geom.Transform):void
     {
+    	var m:Matrix = value.matrix;
+        var m3:Matrix3D =  value.matrix3D;
+        var ct:ColorTransform = value.colorTransform;
+    	var pp:PerspectiveProjection = value.perspectiveProjection;
+
         setTransform(value);
-
-        assignTransformMatrices();
-        super.transform.colorTransform = value.colorTransform;
-        super.transform.perspectiveProjection = _transform.perspectiveProjection;
+
+        if(m != null)
+            setLayoutMatrix(m.clone(), true /*triggerLayoutPass*/);
+        else if(m3 != null)
+            setLayoutMatrix3D(m3.clone(), true /*triggerLayoutPass*/);
+
+        super.transform.colorTransform = ct;
+        super.transform.perspectiveProjection = pp;
         if (maintainProjectionCenter)
-            applyPerspectiveProjection();
-    }
-
-    private function assignTransformMatrices():void
-    {
-        var m:Matrix = _transform.matrix;
-        var m3:Matrix3D =  _transform.matrix3D;
-        if(m != null)
-            setLayoutMatrix(m.clone(), true /*invalidateLayout*/);
-        else if(m3 != null)
-            setLayoutMatrix3D(m3.clone(), true /*invalidateLayout*/);
-    }
-
-    private function transformPropertyChangeHandler(event:PropertyChangeEvent):void
-    {
-        if (event.kind == PropertyChangeEventKind.UPDATE)
-        {
-            if (event.property == "matrix" || event.property == "matrix3D")
-            {
-                assignTransformMatrices();
-            }
-            else if (event.property == "perspectiveProjection")
-            {
-                super.transform.perspectiveProjection = _transform.perspectiveProjection;
-                if (maintainProjectionCenter)
-                    applyPerspectiveProjection();
-            }
-            else if (event.property == "colorTransform")
-            {
-                super.transform.colorTransform = _transform.colorTransform;
-            }
-        }
+            applyPerspectiveProjection();
+    }
+
+    /**
+     * Documentation is not currently available
+     */
+    public function get $transform():flash.geom.Transform
+    {
+        return super.transform;
     }

     /**
@@ -3130,19 +3115,15 @@

     private function setTransform(value:flash.geom.Transform):void
     {
-        // Clean up the old event listeners
+        // Clean up the old transform
         var oldTransform:mx.geom.Transform = _transform as mx.geom.Transform;
         if (oldTransform)
-        {
-            oldTransform.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, transformPropertyChangeHandler);
-        }
+        	oldTransform.target = null;

         var newTransform:mx.geom.Transform = value as mx.geom.Transform;

         if (newTransform)
-        {
-            newTransform.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, transformPropertyChangeHandler);
-        }
+        	newTransform.target = this;

         _transform = value;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4824
Author:   rfrishbe@adobe.com
Date:     2009-02-04T02:04:24.158140Z

Log Message:
-----------
Modifying flash component kit.  We now implement ILayoutElement directly on UIMovieClip.  I also fixed some scaling issues and worked on the Flash Container so we size children appropriately, adding a flag to size the content to the size of the flash container and a flag to unscale the flex content (even though it's parent is scaled due to resizing).

Because of this, we can remove ILayoutElementUIC.  Some point soon, we'll remove LayoutElementFactory and just assume all elements implement ILayoutElement (will do this change when we make IVisualElement extend ILayoutElement).

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Glenn, Evtim
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementUIC.as</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -17,40 +17,41 @@
 import flash.display.InteractiveObject;
 import flash.display.MovieClip;
 import flash.display.Sprite;
+import flash.display.Stage;
 import flash.events.Event;
+import flash.events.FocusEvent;
+import flash.geom.Matrix;
+import flash.geom.Matrix3D;
+import flash.geom.PerspectiveProjection;
+import flash.geom.Point;
 import flash.geom.Rectangle;
 import flash.system.ApplicationDomain;
-import flash.text.TextField;
 import flash.ui.Keyboard;
+
 import mx.automation.IAutomationObject;
+import mx.core.AdvancedLayoutFeatures;
 import mx.core.IConstraintClient;
 import mx.core.IDeferredInstantiationUIComponent;
 import mx.core.IFlexDisplayObject;
 import mx.core.IInvalidating;
+import mx.core.ILayoutElement;
 import mx.core.IStateClient;
-import mx.core.AdvancedLayoutFeatures;
 import mx.core.IUIComponent;
+import mx.core.IVisualElement;
+import mx.core.LayoutElementUIComponentUtils;
 import mx.core.UIComponentDescriptor;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.events.MoveEvent;
 import mx.events.PropertyChangeEvent;
+import mx.events.PropertyChangeEventKind;
 import mx.events.ResizeEvent;
 import mx.events.StateChangeEvent;
+import mx.geom.TransformOffsets;
 import mx.managers.IFocusManagerComponent;
 import mx.managers.ISystemManager;
 import mx.managers.IToolTipManagerClient;
-import flash.events.FocusEvent;
-import mx.core.IVisualElement;
-import mx.geom.TransformOffsets;
-import mx.core.IVisualElement;
-import flash.geom.Point;
-import flash.display.Stage;
-import mx.managers.SystemManagerProxy;
-import flash.geom.Matrix;
-import flash.geom.Matrix3D;
-import mx.events.PropertyChangeEventKind;
-import flash.geom.PerspectiveProjection;
+import mx.utils.MatrixUtil;

 //--------------------------------------
 //  Lifecycle events
@@ -464,7 +465,7 @@
 public dynamic class UIMovieClip extends MovieClip
     implements IDeferredInstantiationUIComponent, IToolTipManagerClient,
     IStateClient, IFocusManagerComponent, IConstraintClient, IAutomationObject,
-    IVisualElement
+    IVisualElement, ILayoutElement
 {
     //--------------------------------------------------------------------------
     //
@@ -1804,31 +1805,48 @@
      *
      *  @default 1.0
      */
-
     override public function get scaleX():Number
     {
-        return ((_layoutFeatures == null)? super.scaleX:_layoutFeatures.layoutScaleX);
+        // if it's been set, layoutFeatures won't be null.  Otherwise, return 1 as
+        // super.scaleX might be some other value since we change the width/height
+        // through scaling
+        return ((_layoutFeatures == null)? 1:_layoutFeatures.layoutScaleX);
     }

     override public function set scaleX(value:Number):void
     {
-        var prevValue:Number = (_layoutFeatures == null)? scaleX:_layoutFeatures.layoutScaleX;
+        if (value == scaleX)
+            return;
+
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        var prevValue:Number = _layoutFeatures.layoutScaleX;
         if (prevValue == value)
             return;

+        hasDeltaIdentityTransform = false;
+
         // trace("set scaleX:" + this + "value = " + value);
-        if(_layoutFeatures == null)
-            super.scaleX = value;
-        else
-        {
-            _layoutFeatures.layoutScaleX = value;
-        }
+
+        _layoutFeatures.layoutScaleX = value;
         invalidateTransform();

         // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
         // and scaleX is changing we need to invalidate parent size and display list
         // since we are not going to detect a change in measured sizes during measure.
         invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     *  The actual scaleX of the component.  Because scaling is used
+     *  to resize the component, this is considerred an internal
+     *  implementation detail, whereas scaleX is the user-set scale
+     *  of the component.
+     *
+     *  @private
+     */
+    mx_internal function get $scaleX():Number
+    {
+        return super.scaleX;
     }

     //----------------------------------
@@ -1854,27 +1872,46 @@
      */
     override public function get scaleY():Number
     {
-        return ((_layoutFeatures == null)? super.scaleY:_layoutFeatures.layoutScaleY);
+        // if it's been set, layoutFeatures won't be null.  Otherwise, return 1 as
+        // super.scaleX might be some other value since we change the width/height
+        // through scaling
+        return ((_layoutFeatures == null)? 1:_layoutFeatures.layoutScaleY);
     }

     override public function set scaleY(value:Number):void
     {
-        var prevValue:Number = (_layoutFeatures == null)? scaleY:_layoutFeatures.layoutScaleY;
+        if (value == scaleY)
+            return;
+
+        if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+        var prevValue:Number = _layoutFeatures.layoutScaleY;
         if (prevValue == value)
             return;
-
-        if(_layoutFeatures == null)
-            super.scaleY = value;
-        else
-        {
-            _layoutFeatures.layoutScaleY = value;
-        }
+
+        hasDeltaIdentityTransform = false;
+
+        // trace("set scaleY:" + this + "value = " + value);
+
+        _layoutFeatures.layoutScaleY = value;
         invalidateTransform();

         // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
-        // and scaleX is changing we need to invalidate parent size and display list
+        // and scaleY is changing we need to invalidate parent size and display list
         // since we are not going to detect a change in measured sizes during measure.
         invalidateParentSizeAndDisplayList();
+    }
+
+    /**
+     *  The actual scaleY of the component.  Because scaling is used
+     *  to resize the component, this is considerred an internal
+     *  implementation detail, whereas scaleY is the user-set scale
+     *  of the component.
+     *
+     *  @private
+     */
+    mx_internal function get $scaleY():Number
+    {
+        return super.scaleY;
     }

    //----------------------------------
@@ -2142,6 +2179,7 @@
         if (rotation == value)
             return;

+        hasDeltaIdentityTransform = false;
         if(_layoutFeatures == null)
         {
             // clamp the rotation value between -180 and 180.  This is what
@@ -2275,7 +2313,7 @@
      */
     override public function get transform():flash.geom.Transform
     {
-        if(_transform == null)
+        if (_transform == null)
         {
             setTransform(new mx.geom.Transform(this));
         }
@@ -2292,7 +2330,7 @@
         assignTransformMatrices();
         super.transform.colorTransform = value.colorTransform;
         super.transform.perspectiveProjection = _transform.perspectiveProjection;
-        if(maintainProjectionCenter)
+        if (maintainProjectionCenter)
             applyPerspectiveProjection();
     }

@@ -2321,7 +2359,7 @@
             else if (event.property == "perspectiveProjection")
             {
                 super.transform.perspectiveProjection = _transform.perspectiveProjection;
-                if(maintainProjectionCenter)
+                if (maintainProjectionCenter)
                     applyPerspectiveProjection();
             }
             else if (event.property == "colorTransform")
@@ -2337,8 +2375,9 @@
     private var _maintainProjectionCenter:Boolean = false;

     /**
-     * When true, the component will keep its projection matrix centered on the middle of its bounding box.  If no projection matrix is defined
-     * on the component, one will be added automatically.
+     *  When true, the component will keep its projection matrix centered on the
+     *  middle of its bounding box.  If no projection matrix is defined on the
+     *  component, one will be added automatically.
      */
     public function set maintainProjectionCenter(value:Boolean):void
     {
@@ -2356,7 +2395,6 @@
     {
         return _maintainProjectionCenter;
     }
-

     /**
      *  The transform matrix that is used to calculate the component's layout relative to its siblings. This matrix
@@ -2368,10 +2406,15 @@
     {
         if(_layoutFeatures != null)
         {
-            return _layoutFeatures.layoutMatrix;
+            // esg: _layoutFeatures keeps a single internal copy of the layoutMatrix.
+            // since this is an internal class, we don't need to worry about developers
+            // accidentally messing with this matrix, _unless_ we hand it out. Instead,
+            // we hand out a clone.
+            return _layoutFeatures.layoutMatrix.clone();
         }
         else
         {
+            // flash also returns copies.
             return super.transform.matrix;
         }
     }
@@ -2381,18 +2424,56 @@
      */
     public function set layoutMatrix(value:Matrix):void
     {
+        hasDeltaIdentityTransform = false;
         if(_layoutFeatures == null)
         {
+            // flash will make a copy of this on assignment.
             super.transform.matrix = value;
             //invalidateSize();
             notifySizeChanged();
         }
         else
         {
+            // layout features will internally make a copy of this matrix rather than
+            // holding onto a reference to it.
             _layoutFeatures.layoutMatrix = value;
             invalidateTransform();
             invalidateParentSizeAndDisplayList();
         }
+    }
+
+    /**
+     *  Similarly to the layoutMatrix property, sets the layout Matrix, but
+     *  doesn't trigger a layout pass.
+     */
+    public function setLayoutMatrix(value:Matrix):void
+    {
+        hasDeltaIdentityTransform = false;
+        if (_layoutFeatures == null)
+        {
+            super.transform.matrix = value;
+        }
+        else
+        {
+            // layout features will internally make a copy of this matrix rather than
+            // holding onto a reference to it.
+            _layoutFeatures.layoutMatrix = value;
+            invalidateTransform();
+        }
+    }
+
+    /**
+     *  Similarly to the layoutMatrix3D property, sets the layout Matrix3D, but
+     *  doesn't trigger a layout pass.
+     */
+    public function setLayoutMatrix3D(value:Matrix3D):void
+    {
+        if (_layoutFeatures == null)
+            initAdvancedLayoutFeatures();
+        // layout features will internally make a copy of this matrix rather than
+        // holding onto a reference to it.
+        _layoutFeatures.layoutMatrix3D = value;
+        invalidateTransform();
     }

     /**
@@ -2408,6 +2489,9 @@
     public function set layoutMatrix3D(value:Matrix3D):void
     {
         if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+
+        // layout features will internally make a copy of this matrix rather than
+        // holding onto a reference to it.
         _layoutFeatures.layoutMatrix3D = value;
         invalidateTransform();
         invalidateParentSizeAndDisplayList();
@@ -2419,7 +2503,12 @@
     public function get layoutMatrix3D():Matrix3D
     {
         if(_layoutFeatures == null) initAdvancedLayoutFeatures();
-        return _layoutFeatures.layoutMatrix3D;
+
+        // esg: _layoutFeatures keeps a single internal copy of the layoutMatrix.
+        // since this is an internal class, we don't need to worry about developers
+        // accidentally messing with this matrix, _unless_ we hand it out. Instead,
+        // we hand out a clone.
+        return _layoutFeatures.layoutMatrix3D.clone();
     }

     private function setTransform(value:flash.geom.Transform):void
@@ -2507,6 +2596,13 @@
     /**
      * @private
      *
+     * when true, the transform on this component consists only of translation.  Otherwise, it may be arbitrarily complex.
+     */
+    protected var hasDeltaIdentityTransform:Boolean = true;
+
+    /**
+     * @private
+     *
      * storage for the modified Transform object that can dispatch change events correctly.
      */
     private var _transform:flash.geom.Transform;
@@ -2520,6 +2616,8 @@
     protected function initAdvancedLayoutFeatures():void
     {
         var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();
+
+        hasDeltaIdentityTransform = false;

         features.layoutScaleX = scaleX;
         features.layoutScaleY = scaleY;
@@ -2539,7 +2637,7 @@
         if(_layoutFeatures && _layoutFeatures.updatePending == false)
         {
             _layoutFeatures.updatePending = true;
-            applyComputedTransform();
+            applyComputedMatrix();
             notifySizeChanged();
         }
     }
@@ -2547,7 +2645,7 @@
     /**
      * Commits the computed matrix built from the combination of the layout matrix and the transform offsets to the flash displayObject's transform.
      */
-    private function applyComputedTransform():void
+    private function applyComputedMatrix():void
     {
         _layoutFeatures.updatePending = false;
         if(_layoutFeatures.is3D)
@@ -2585,6 +2683,139 @@
         }

         return p ? true : false;
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  ILayoutElement
+    //
+    //--------------------------------------------------------------------------
+
+
+    /**
+     *  @inheritDoc
+     */
+    public function getPreferredBoundsWidth(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getPreferredBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getPreferredBoundsHeight(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getPreferredBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getMinBoundsWidth(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getMinBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getMinBoundsHeight(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getMinBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getMaxBoundsWidth(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getMaxBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getMaxBoundsHeight(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getMaxBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutBoundsWidth(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getLayoutBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getLayoutBoundsHeight(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getLayoutBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutBoundsX(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getLayoutBoundsX(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getLayoutBoundsY(postTransform:Boolean=true):Number
+    {
+        return LayoutElementUIComponentUtils.getLayoutBoundsY(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function setLayoutBoundsPosition(x:Number, y:Number, postTransform:Boolean=true):void
+    {
+        LayoutElementUIComponentUtils.setLayoutBoundsPosition(this,x,y,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function setLayoutBoundsSize(width:Number = Number.NaN,
+                                  height:Number = Number.NaN,
+                                  postTransform:Boolean=true):void
+    {
+        LayoutElementUIComponentUtils.setLayoutBoundsSize(this,width,height,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutMatrix():Matrix
+    {
+        return layoutMatrix;
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutMatrix3D():Matrix3D
+    {
+        return layoutMatrix3D;
+    }
+
+    protected function nonDeltaLayoutMatrix():Matrix
+    {
+        if(hasDeltaIdentityTransform)
+            return null;
+        if(_layoutFeatures != null)
+        {
+            return _layoutFeatures.layoutMatrix;
+        }
+        else
+        {
+            // Lose scale
+            // if scale is actually set (and it's not just our "secret scale"), then
+            // layoutFeatures wont' be null and we won't be down here
+            return MatrixUtil.composeMatrix(x, y, 1, 1, rotation,
+                        transformX, transformY);
+        }
+
     }

     //--------------------------------------------------------------------------
@@ -3048,7 +3279,6 @@
      */
     public function setActualSize(newWidth:Number, newHeight:Number):void
     {
-        // TODO: is this how it should be?
         if (sizeChanged(_width, newWidth) || sizeChanged(_height, newHeight))
             dispatchResizeEvent();

@@ -3059,8 +3289,8 @@

         // Use scaleX/scaleY to change our size since the new size is based
         // on our measured size, which can be different than our actual size.
-        super.scaleX = newWidth / measuredWidth;
-        super.scaleY = newHeight / measuredHeight;
+        super.scaleX = scaleX*(newWidth / measuredWidth);
+        super.scaleY = scaleY*(newHeight / measuredHeight);
     }

     //--------------------------------------------------------------------------
@@ -3247,8 +3477,14 @@
         if (trackSizeChanges)
         {
             var currentBounds:Rectangle = bounds;
-            currentBounds.width *= scaleX;
-            currentBounds.height *= scaleY;
+
+            // secretScale is the amount we scaled by to change the width and height
+            var secretScaleX:Number = mx_internal::$scaleX/scaleX;
+            var secretScaleY:Number = mx_internal::$scaleY/scaleY;
+
+            // take secret scale into account as it's our real width/height
+            currentBounds.width *= secretScaleX;
+            currentBounds.height *= secretScaleY;

             if (isNaN(oldWidth))
                 oldWidth = _width = currentBounds.width;


Transferred from the Adobe Open Source Subversion Repository

Revision: 14381
Author:   klin@adobe.com
Date:     2010-02-24T00:54:43.099794Z

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

Fix for http://bugs.adobe.com/jira/browse/SDK-25622. We were checking against "inherit" instead of null in UIMovieClip.

QE notes: None
Doc notes: None
Bugs: SDK-25622
Reviewed By: 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/flash-integration/src/mx/flash/UIMovieClip.as</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -3129,7 +3129,7 @@
         // set the _layoutFeatures.mirror flag.  Similarly, if mirroring isn't
         // required, then clear the _layoutFeatures.mirror flag.

-        const mirror:Boolean = (_layoutDirection != "inherit") && (_layoutDirection != parentElt.layoutDirection);
+        const mirror:Boolean = (_layoutDirection != null) && (_layoutDirection != parentElt.layoutDirection);
         if ((_layoutFeatures) ? (mirror != _layoutFeatures.mirror) : mirror)
         {
             if (_layoutFeatures == null)


Transferred from the Adobe Open Source Subversion Repository

Revision: 4460
Author:   gosmith@adobe.com
Date:     2009-01-09T01:53:33.590972Z

Log Message:
-----------
Renamed UIComponentAccImpl to UIComponentAccProps because it extends AccessibilityProperties, not AccessibilityImplementation.

Added comments with the identifier for each magic role constant, so that it is easier to understand what roles our components are using.

Moved two static methods from UIComponentAccProperties to AccImpl because they make more sense there.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: None (no functional changes)

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/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LinkButtonAccImpl.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/RadioButtonAccImpl.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/PanelAccImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as" copyfrom-rev="4437" action="A">/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/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/RadioButtonAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/RadioButtonAccImpl.as
@@ -102,7 +102,7 @@
 	{
 		super(master);

-		role = 0x2D;
+		role = 0x2D; // ROLE_SYSTEM_RADIOBUTTON
 	}
 }


when creating complex objects, don't try to populate empty attributes on the sub-object

git-svn-id: 8a2ccb88241e16c78017770bc38d91d6d5396a5a@61118 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- generator/sources/as3/core/KClassFactory.as
+++ generator/sources/as3/core/KClassFactory.as
@@ -71,7 +71,11 @@
 							var objectKeys : Array = ObjectUtil.getObjectAllKeys( newComplexObject );
 							for(var i:int=0;i<objectKeys.length-1; i++)
 							{
-								instance[prop.name()][objectKeys[i]] = newComplexObject[objectKeys[i]];
+								//TODO if the value is an empty string, use the default value for the
+								// required type
+								if (newComplexObject[objectKeys[i]]) {
+									instance[prop.name()][objectKeys[i]] = newComplexObject[objectKeys[i]];
+								}
 							}
 						}
 	        		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 18556
Author:   cframpto@adobe.com
Date:     2010-11-12T18:18:29.899950Z

Log Message:
-----------
The grid item renderers are using UIFTETextField and UITextField in a non-standard way.  Both are intended to inherit their styles from their parents.  They don't support setStyle() and a few of the styles (direction, locale) are actually properties so when set with MXML, the compiler finds the properties rather than the styles.  In DefaultGridItemRenderer kludge in support for direction and locale.  For both renderers, layoutDirection must be inherited so hide the layoutDirection property and style metadata from FlashBuilder and add this info to the doc.

QE notes:
Doc notes:
Bugs: SDK-28290
Reviewer: Hans, Kevin
Tests run: cyclone
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/mx/core/UIFTETextField.as
+++ frameworks/projects/spark/src/mx/core/UIFTETextField.as
@@ -2211,8 +2211,8 @@
         if (styleChangedFlag)
         {
             // direction is used by getTextStyles() so update it first.
-            direction = getStyle("direction");
-            locale = getStyle("locale");
+            super.direction = getStyle("direction");
+            super.locale = getStyle("locale");

             var textFormat:TextFormat = getTextStyles();
             if (textFormat.font)


Transferred from the Adobe Open Source Subversion Repository

Revision: 16492
Author:   clucier@adobe.com
Date:     2010-06-08T04:24:18.102919Z

Log Message:
-----------
Fixed typo from previous checkin.

QE notes: None
Doc notes:  None
Bugs: None
Reviewer: Ryan
Tests run: Checkin
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/Image.as
+++ frameworks/projects/spark/src/spark/components/Image.as
@@ -647,7 +647,7 @@
      */
     public function set source(value:Object):void
     {
-        if (source != value)
+        if (source == value)
             return;

         _loading = false;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2011 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Bump up version number to 1.4.8: copy jbei-seq-xml to clipboard

git-svn-id: adbdea8fc1759bd16b0eaf24a244a7e5f870a654@278 fe3f0490-d73e-11de-a956-c71e7d3a9d2f

--- VectorEditorStandalone/src/org/jbei/registry/Constants.as
+++ VectorEditorStandalone/src/org/jbei/registry/Constants.as
@@ -7,7 +7,7 @@
 	{
         public static const APPLICATION_NAME:String = "Vector Editor (Beta)";

-		public static const VERSION:String = "1.4.7";
+		public static const VERSION:String = "1.4.8";

 		public static const ENTRY_REGISTRY_URL:String = "https://registry.jbei.org/entry/view/";


Another Crash Fix Bug Fixes: - Fixed a crash that could occur when switching qualities

--- HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
+++ HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
@@ -306,7 +306,7 @@

 			var newSegments:Vector.<HLSManifestSegment> = newManifest.segments;

-			var matchSegment:HLSManifestSegment = lastQualitySegments[lastSegmentIndex];
+			var matchSegment:HLSManifestSegment = lastQualitySegments[lastSegmentIndex < lastQualitySegments.length ? lastSegmentIndex : lastQualitySegments.length -1];

 			// Add the new manifest segments to the targetManifest
 			// Tasks: (in order)


Transferred from the Adobe Open Source Subversion Repository

Revision: 7866
Author:   jszeto@adobe.com
Date:     2009-06-15T23:11:45.128254Z

Log Message:
-----------
GraphicElement PARB Changes

- Deprecated mx.graphics.RoundedRectangle
- Added mx.geom.RoundedRectangle
- Removed GraphicElement.getStroke
- Moved code from GraphicElement.getStrokeExtents into StrokedElement.
- Updated the dependency checker

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/StrokedElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/RoundedRectangle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RoundedRectangle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/DissolveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Dissolve.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -42,7 +42,7 @@
 import mx.events.ScrollEvent;
 import mx.events.ScrollEventDetail;
 import mx.events.ScrollEventDirection;
-import mx.graphics.RoundedRectangle;
+import mx.geom.RoundedRectangle;
 import mx.managers.IFocusManager;
 import mx.managers.IFocusManagerContainer;
 import mx.managers.ILayoutManagerClient;