Transferred from the Adobe Open Source Subversion Repository

Revision: 5220
Author:   chaase@adobe.com
Date:     2009-03-10T15:55:06.496289Z

Log Message:
-----------
New Transform effects to handle correctly doing Move, Rotate, and Scale operations simultaneously. Also, added keyframe capabilities to new effects system (necessary for the transform effects, shouldn't affect operation of other effects). Fixed various issues with effects/transition infrastructure as necessary. Added transform utility functions to UIComponent, AdvancedLayoutFeatures, and GraphicElement.

QE Notes: This will break existing new effects tests due to changes in core Animation and AnimationEvent classes, QE is disabling them for now and will add them back in as changes are made.
Doc Notes: None
Bugs:
Reviewer: Ely (transform utilities) and Jason (the rest)
tests: checkintests, Mustella tests/Effects, tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/KeyFrame.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/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PropertyChanges.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate3D.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/effectClasses</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/effectClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/AnimationEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AnimationProperty.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -83,6 +83,8 @@
  *  @productversion Flex 4
  */
 [Event(name="animationEnd", type="mx.events.AnimationEvent")]
+
+[DefaultProperty("animationProperties")]

 //--------------------------------------
 //  Other metadata
@@ -144,28 +146,31 @@
     //--------------------------------------------------------------------------

     /**
-     * Constructs an Animation object.
-     *
+     * Constructs an Animation object. The optional startValue and
+     * endValue parameters are short-cuts for setting up a simple
+     * animation with a single MotionPath object with two KeyFrames. If either
+     * value is non-null,
+     * startValue will become the value of the
+     * first keyframe of animationProperties, at time 0, and
+     * endValue will become the value of
+     * the second keyframe, at time 1.
+     *
+     * @param duration The length of time, in milliseconds, that the animation
+     * will run
      * @param startValue The initial value that the animation starts at
      * @param endValue The final value that the animation ends on
-     * @param duration The length of time, in milliseconds, that the animation
-     * will run
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function Animation(startValue:Object=null, endValue:Object=null,
-                                  duration:Number=-1)
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function Animation(duration:Number = -1, startValue:Object = null,
+        endValue:Object = null)
     {
         this.duration = duration;
-        this.startValue = startValue;
-        this.endValue = endValue;
-        if (!isNaN(duration) && duration != -1)
-            this.duration = duration;
-        if (startValue is Array)
-            arrayMode = true;
+        if (startValue !== null || endValue !== null)
+            animationProperties = [new AnimationProperty("", startValue, endValue)];
     }

@@ -203,9 +208,6 @@
     // starting. This is set to a non-negative number only when
     // an Animation is paused during its startDelay phase
     private var delayTime:Number = -1;
-
-
-    private var easingFunction:Function;
     private static var defaultEaser:IEaser = new Sine(.5);
     private static var delayedStartAnims:Vector.<Animation> =
         new Vector.<Animation>();
@@ -224,6 +226,8 @@
     //
     //--------------------------------------------------------------------------

+    public var animationProperties:Array;
+
     /**
      * This variable indicates whether the animation is currently
      * running or not. The value is false unless the animation
@@ -240,44 +244,6 @@
         return _isPlaying;
     }

-    /**
-     * The value that the animation will produce at the beginning of the
-     * animation. Values during the animation are calculated using the
-     * startValue and endValue. This value
-     * can be any arbitray object, but this type must be the same as
-     * that for endValue, and types that are not Number
-     * or Arrays of Number can only be handled if an interpolator
-     * is supplied to the Animation to handle calculating intermediate
-     * values.
-     *
-     * @see #interpolator
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public var startValue:Object;
-
-    /**
-     * The value that the animation will produce at the beginning of the
-     * animation. Values during the animation are calculated using the
-     * startValue and endValue. This value
-     * can be any arbitray object, but this type must be the same as
-     * that for endValue, and types that are not Number
-     * or Arrays of Number can only be handled if an interpolator
-     * is supplied to the Animation to handle calculating intermediate
-     * values.
-     *
-     * @see #interpolator
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public var endValue:Object;
-
     /**
      * The length of time, in milliseconds, that this animation will run,
      * not counting any repetitions by use of repeatCount.
@@ -743,8 +709,8 @@
                             _elapsedTime = cycleTime;
                         else
                             _elapsedTime = duration; // must be in repeatDelay phase
-                        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE,
-                            getCurrentValue(_elapsedTime));
+                        calculateValue(_elapsedTime);
+                        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
                         return false;
                     }
                     else
@@ -753,8 +719,8 @@
                         // end value, then schedule a timer to wake up and
                         // start the next cycle
                         _elapsedTime = duration;
-                        var repeatValue:Object = getCurrentValue(_elapsedTime);
-                        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, repeatValue);
+                        calculateValue(_elapsedTime);
+                        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
                         removeAnimation(this);
                         var delayTimer:Timer = new Timer(repeatDelay, 1);
                         delayTimer.addEventListener(TimerEvent.TIMER, repeat);
@@ -765,7 +731,7 @@
             }
             _elapsedTime = currentTime;

-            var currentValue:Object = getCurrentValue(currentTime);
+            calculateValue(currentTime);

             if (currentTime >= duration)
             {
@@ -774,9 +740,9 @@
             }
             else
             {
-                sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, currentValue);
+                sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
                 if (repeated)
-                    sendAnimationEvent(AnimationEvent.ANIMATION_REPEAT, currentValue);
+                    sendAnimationEvent(AnimationEvent.ANIMATION_REPEAT);
             }
         }
         return animationEnded;
@@ -790,25 +756,39 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    private function sendAnimationEvent(eventType:String, value:Object):void
+    private function sendAnimationEvent(eventType:String):void
     {
         var event:AnimationEvent = new AnimationEvent(eventType);
-        event.value = value;
         event.animation = this;
         dispatchEvent(event);
     }

+    // TODO (chaase): Make currentValue a map instead, keyed off of
+    // property string. Then the mapping between the order in currentValue
+    // and that in an effect's motion paths array is not so magical
+    /**
+     * This array holds the values as of the current frame of the Animation.
+     * The order of the values are the same as the order given in the
+     * animationProperties array
+     */
+    public var currentValue:Array = [];
+
     /**
      * @private
      *
-     * Calculates and returns the appropriate value give the elapsed time
-     * of the animation
-     */
-    private function getCurrentValue(currentTime:Number):Object
-    {
+     * Calculates all values for this animation for the elapsed time
+     */
+    private function calculateValue(currentTime:Number):void
+    {
+        var i:int;
+
+        currentValue = [];
         if (duration == 0)
         {
-            return endValue;
+            for (i = 0; i < animationProperties.length; ++i)
+                currentValue[0] = animationProperties[i].
+                    keyframes[animationProperties[i].keyframes.length - 1].value;
+            return;
         }

         if (_invertValues)
@@ -816,7 +796,9 @@

         _elapsedFraction = easer.ease(currentTime/duration);

-        return interpolator.interpolate(_elapsedFraction, startValue, endValue);
+        if (animationProperties)
+            for (i = 0; i < animationProperties.length; ++i)
+                currentValue[i] = animationProperties[i].getValue(_elapsedFraction);
     }

     /**
@@ -863,10 +845,10 @@
             // removed
             // TODO (chaase): this will snap paused and startDelayed animations
             // to their end values. Seems correct, but should check this.
-            var value:Object = getCurrentValue(duration);
+            calculateValue(duration);

-            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, value);
-            sendAnimationEvent(AnimationEvent.ANIMATION_END, value);
+            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
+            sendAnimationEvent(AnimationEvent.ANIMATION_END);
         }

         // The rest of what we need to do is handled by the stop() function
@@ -996,7 +978,7 @@
                 }
             }
             // start/end values only valid after animation starts
-            sendAnimationEvent(AnimationEvent.ANIMATION_START, startValue);
+            sendAnimationEvent(AnimationEvent.ANIMATION_START);
             setupInterpolation();
             startTime = _intervalTime - playheadTime;
         }
@@ -1020,47 +1002,9 @@
      */
     private function setupInterpolation():void
     {
-        if (!interpolator)
-        {
-            if (startValue is Number && endValue is Number)
-                // Better: default to use actual start/end values instead
-                // of running an Interpolator on our internal Animation's result
-                interpolator = NumberInterpolator.getInstance();
-            else if (startValue is Array && endValue is Array)
-            {
-                // One more try - are they Arrays of Numbers?
-                var startArray:Array = startValue as Array;
-                var endArray:Array = endValue as Array;
-                for (var i:int = 0; i < startArray.length; ++i)
-                {
-                    if (isNaN(startArray[i]))
-                    {
-                        throw new Error(resourceManager.getString("sparkEffects", "startValContainsNonNums"));
-                        return;
-                    }
-                }
-                for (i = 0; i < endArray.length; ++i)
-                {
-                    if (isNaN(endArray[i]))
-                    {
-                        throw new Error(resourceManager.getString("sparkEffects", "endValContainsNonNums"));
-                        return;
-                    }
-                }
-                // Must be Arrays of Numbers
-                interpolator = NumberArrayInterpolator.getInstance();
-            }
-        }
-        else
-        {
-            // If they've given us an interpolator, but it doesn't
-            // interpolate arrays and our start/end values are arrays,
-            // then we will assume that they want to use that interpolator
-            // for the elements of the arrays, and we will use
-            // ArrayInterpolator for the overall arrays.
-            if (arrayMode && (interpolator.interpolatedType != Array))
-                interpolator = new ArrayInterpolator(interpolator);
-        }
+        if (interpolator && animationProperties)
+            for (var i:int = 0; i < animationProperties.length; ++i)
+                animationProperties[i].interpolator = interpolator;
     }

     /**
@@ -1178,11 +1122,11 @@
     {
         if (repeatBehavior == REVERSE)
             _invertValues = !_invertValues;
-        var repeatValue:Object = getCurrentValue(0);
+        calculateValue(0);
         // TODO (chaase): Make sure we're not already sending out an UPDATE
         // event with this value
-        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, repeatValue);
-        sendAnimationEvent(AnimationEvent.ANIMATION_REPEAT, repeatValue);
+        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
+        sendAnimationEvent(AnimationEvent.ANIMATION_REPEAT);
         Animation.addAnimation(this);
     }

@@ -1217,13 +1161,13 @@
             }
         }
         numRepeats = 1;
-        sendAnimationEvent(AnimationEvent.ANIMATION_START, startValue);
+        sendAnimationEvent(AnimationEvent.ANIMATION_START);

         // start/end values may be changed by FxAnimate (set dynamically),
         // so now we set up our interpolator based on the real values
         setupInterpolation();

-        var value:Object = getCurrentValue(0);
+        calculateValue(0);

         if (duration == 0)
         {
@@ -1234,7 +1178,7 @@
         {
             // TODO (chaase): Make sure we're not already sending out an
             // UPDATE event with this start value
-            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, value);
+            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
             Animation.addAnimation(this);
             _isPlaying = true;
             if (actualStartTime > 0)
@@ -1243,4 +1187,4 @@
     }

 }
-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 2954
Author:   chaase@adobe.com
Date:     2008-08-22T01:01:32.343242Z

Log Message:
-----------
Fixes to some ending and repeat bugs in the new Flex4 effects, plus refactoring of Sine/Power to subclass from new class, EaseInOut, which takes care of common easing in/out functionality and simplifies each subclass.

reviewed by: Jason S
tests: checkintests, mustella tests/Effects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animation.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/easing/EaseInOut.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/easing/Sine.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -113,7 +113,7 @@
     private var id:int;
     // TODO: re-think this variable in seeking
     private var _doSeek:Boolean = false;
-    private var _isPlaying:Boolean = true;
+    private var _isPlaying:Boolean = false;
     // TODO: rethink how we do reversing
     private var _doReverse:Boolean = false;
     private var _invertValues:Boolean = false;
@@ -607,23 +607,30 @@
      */
     public function end():void
     {
-        // TODO (chaase): Check whether we already send out a final
-        // UPDATE event with the end value; if so, this dup should be
-        // removed
-        var value:Object = getCurrentValue(duration);
-
-        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, value);
-        sendAnimationEvent(AnimationEvent.ANIMATION_END, value);
-
-        for each (var animationTarget:IAnimationTarget in animationTargets)
-        {
-            animationTarget.animationEnd(this, value);
-        }
-
-        // If animation has been added, id >= 0
-        // but if duration = 0, this might not be the case.
-        if (id >= 0)
-            Animation.removeAnimationAt(id);
+        if (_isPlaying)
+        {
+            // TODO (chaase): Check whether we already send out a final
+            // UPDATE event with the end value; if so, this dup should be
+            // removed
+            var value:Object = getCurrentValue(duration);
+
+            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, value);
+            sendAnimationEvent(AnimationEvent.ANIMATION_END, value);
+
+            for each (var animationTarget:IAnimationTarget in animationTargets)
+            {
+                animationTarget.animationEnd(this, value);
+            }
+
+            // If animation has been added, id >= 0
+            // but if duration = 0, this might not be the case.
+            if (id >= 0)
+                Animation.removeAnimationAt(id);
+
+            _invertValues = false;
+            _doReverse = false;
+            _isPlaying = false;
+        }
     }

     /**
@@ -776,6 +783,10 @@
     {
         if (id >= 0)
             Animation.removeAnimationAt(id);
+
+        _doReverse = false
+        _invertValues = false;
+        _isPlaying = false;
     }

     /**
@@ -833,7 +844,6 @@
     private function start(event:TimerEvent = null):void
     {
         numRepeats = 1;
-
         setupInterpolation();
         setupEasing();

@@ -855,6 +865,7 @@
             sendAnimationEvent(AnimationEvent.ANIMATION_START, value);
             sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, value);
             Animation.addAnimation(this);
+            _isPlaying = true;
         }
     }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.utils
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonAutomationImpl.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.automation.delegates.components
+{
+	import flash.display.DisplayObject;
+
+	import mx.automation.Automation;
+	import mx.core.mx_internal;
+
+	import spark.automation.delegates.components.supportClasses.SparkButtonBaseAutomationImpl;
+	import spark.components.Button;
+
+	use namespace mx_internal;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines methods and properties required to perform instrumentation for the
+	 *  Button control.
+	 *
+	 *  @see spark.components.Button
+	 *
+	 */
+	public class SparkButtonAutomationImpl extends SparkButtonBaseAutomationImpl
+	{
+
+		include "../../../core/Version.as";
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(spark.components.Button, SparkButtonAutomationImpl);
+		}
+
+		/**
+		 *  Constructor.
+		 * @param obj Button object to be automated.
+		 */
+		public function SparkButtonAutomationImpl(obj:spark.components.Button)
+		{
+			super(obj);
+
+		}
+
+
+	}
+
+}


insert.php, list_maps.php point to rework

--- Arguments/src/ValueObjects/AGORAParameters.as
+++ Arguments/src/ValueObjects/AGORAParameters.as
@@ -89,11 +89,11 @@

 		public function AGORAParameters()
 		{
-			listMapsURL = "http://agora.gatech.edu/dev/list_maps.php";
+			listMapsURL = "http://agora.gatech.edu/rework/list_maps.php";
 			myMapsURL = "http://agora.gatech.edu/rework/my_maps.php";
-
+
 			loginURL = "http://agora.gatech.edu/dev/login.php";
-			registrationURL = "http://agora.gatech.edu/dev/register.php";
+			registrationURL = "http://agora.gatech.edu/rework/register.php";
 			mapRemoveURL = "http://agora.gatech.edu/rework/remove_map.php";
 			deleteURL = "http://agora.gatech.edu/rework/remove.php";
 			insertURL = "http://agora.gatech.edu/rework/insert.php";


corrected wrong resource name

corrected wrong resource name

--- DroneAnarchy/Resources/Scripts/GameObjects.as
+++ DroneAnarchy/Resources/Scripts/GameObjects.as
@@ -176,11 +176,11 @@
 	{
 		AnimatedModel@ droneBody = node.CreateComponent("AnimatedModel");
 		droneBody.model = cache.GetResource("Model", "Resources/Models/drone_body.mdl");
-		droneBody.material = cache.GetResource("Material", "Resources/Materials/alt_drone_body.xml");
+		droneBody.material = cache.GetResource("Material", "Resources/Materials/drone_body.xml");

 		AnimatedModel@ droneArm = node.CreateComponent("AnimatedModel");
 		droneArm.model = cache.GetResource("Model", "Resources/Models/drone_arm.mdl");
-		droneArm.material = cache.GetResource("Material", "Resources/Materials/alt_drone_arm.xml");
+		droneArm.material = cache.GetResource("Material", "Resources/Materials/drone_arm.xml");

 		RigidBody@ droneRB = node.CreateComponent("RigidBody");
 		droneRB.mass = 1.0f;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package spark.core
 {


Accept Patch for FLEX-33948

Accept Patch for FLEX-33948

--- frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
@@ -29,7 +29,7 @@
 import flash.geom.Point;

 import mx.collections.IList;
-import mx.core.mx_internal;
+import mx.core.InteractionMode;
 import mx.events.CollectionEvent;
 import mx.events.FlexEvent;

@@ -37,8 +37,8 @@
 import spark.core.NavigationUnit;
 import spark.events.DropDownEvent;
 import spark.events.IndexChangeEvent;
-import spark.utils.LabelUtil;
-
+
+import mx.core.mx_internal;
 use namespace mx_internal;

 //--------------------------------------
@@ -437,11 +437,13 @@
             return;

         _dropDownController = value;
-
+
         _dropDownController.addEventListener(DropDownEvent.OPEN, dropDownController_openHandler);
         _dropDownController.addEventListener(DropDownEvent.CLOSE, dropDownController_closeHandler);

-        if (openButton)
+		_dropDownController.closeOnResize = _closeDropDownOnResize;
+
+		if (openButton)
             _dropDownController.openButton = openButton;
         if (dropDown)
             _dropDownController.dropDown = dropDown;
@@ -467,7 +469,72 @@
             return false;
     }

-    //----------------------------------
+	//----------------------------------
+	//  closeDropDownOnResize
+	//----------------------------------
+
+    /**
+     *  @private
+     *
+     *  cached value: getStyle("interactionMode") == InteractionMode.TOUCH
+     */
+    private var isTouchInteractionMode:Boolean = false;
+
+    /**
+     *  @private
+     *
+     *  do not know what default value for closeDropDownOnResize will be until styles have been applied,
+     *  but user may set property before that. this flag indicates whether property has been explicitly set,
+     *  and so will not need to be determined from css when stylesInitialized() or styleChanged() is called.
+     */
+    private var isCloseDropDownOnResizeExplicitlySet:Boolean = false;
+
+    /**
+     *  @private
+     */
+    protected var _closeDropDownOnResize:Boolean = true;
+
+    [Inspectable(category="General", enumeration="true,false", defaultValue="true")]
+
+    /**
+     *  When true, resizing the system manager
+     *  closes the drop down.
+     *  For mobile applications, this property is set
+ 	 *  to false so that the drop down stays open when the
+     *  page orientation changes.
+     *
+ 	 *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+    public function get closeDropDownOnResize():Boolean
+	{
+        return _closeDropDownOnResize;
+    }
+
+    /**
+     *  @private
+     */
+    public function set closeDropDownOnResize(value:Boolean):void
+	{
+        setCloseDropDownOnResize(value, true);
+    }
+
+    /**
+     *  @private
+     */
+    private function setCloseDropDownOnResize(value:Boolean, explicitlySet:Boolean):void
+	{
+        _closeDropDownOnResize = value;
+        isCloseDropDownOnResizeExplicitlySet ||= explicitlySet;
+        if (dropDownController)
+            dropDownController.closeOnResize = _closeDropDownOnResize;
+	}
+
+	//----------------------------------
     //  userProposedSelectedIndex
     //----------------------------------

@@ -498,6 +565,69 @@
     //
     //--------------------------------------------------------------------------

+	/**
+	 *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+    override public function stylesInitialized():void
+    {
+        super.stylesInitialized();
+        setInteractionMode();
+    }
+
+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+	override public function styleChanged(styleProp:String):void
+	{
+        super.styleChanged(styleProp);
+        if (!styleProp || styleProp == "styleName" || styleProp == "interactionMode")
+            setInteractionMode();
+    }
+
+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+    private function setInteractionMode():void
+    {
+	    isTouchInteractionMode = getStyle("interactionMode") == InteractionMode.TOUCH;
+        if (!isCloseDropDownOnResizeExplicitlySet)
+            setCloseDropDownOnResize(!isTouchInteractionMode, false);
+    }
+
+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+    override public function setSelectedIndex(rowIndex:int, dispatchChangeEvent:Boolean = false, changeCaret:Boolean = true):void
+    {
+	    super.setSelectedIndex(rowIndex, dispatchChangeEvent, changeCaret);
+	    if (isTouchInteractionMode)
+	    {
+            userProposedSelectedIndex = rowIndex;
+            closeDropDown(true);
+        }
+    }
+
+
     /**
      *  @private
      *  Called by the initialize() method of UIComponent
@@ -738,8 +868,11 @@
     override protected function item_mouseDownHandler(event:MouseEvent):void
     {
         super.item_mouseDownHandler(event);
-        userProposedSelectedIndex = selectedIndex;
-        closeDropDown(true);
+        if (!isTouchInteractionMode)
+	    {
+            userProposedSelectedIndex = selectedIndex;
+            closeDropDown(true);
+        }
     }

     /**


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

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

 package spark.automation.delegates.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTitleWindowAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTitleWindowAutomationImpl.as
@@ -0,0 +1,130 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.automation.delegates.components
+{
+	import flash.display.DisplayObject;
+
+	import mx.automation.Automation;
+	import mx.automation.IAutomationObject;
+	import mx.core.mx_internal;
+
+	import spark.components.TitleWindow;
+
+	use namespace mx_internal;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines the methods and properties required to perform instrumentation for the
+	 *  TitleWindow class.
+	 *
+	 *  @see spark.components.TitleWindow
+	 *
+	 */
+
+	public class SparkTitleWindowAutomationImpl extends SparkPanelAutomationImpl
+	{
+		include "../../../core/Version.as";
+
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 4
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(spark.components.TitleWindow, SparkTitleWindowAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 * @param obj TitleWindow object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 4
+		 */
+		public function SparkTitleWindowAutomationImpl(obj:spark.components.TitleWindow)
+		{
+			super(obj);
+			recordClick = true;
+		}
+
+		/**
+		 *  @private
+		 *  storage for the owner component
+		 */
+		protected function get sparkTitleWindow():spark.components.TitleWindow
+		{
+			return uiComponent as spark.components.TitleWindow;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden properties
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+
+		override public function getAutomationChildAt(index:int):IAutomationObject
+		{
+			if(sparkTitleWindow.closeButton != null)
+				if(index == 0)
+					return sparkTitleWindow.closeButton as  IAutomationObject;
+				else index -= 1;
+
+			return super.getAutomationChildAt(index);
+		}
+
+
+		override public function getAutomationChildren():Array
+		{
+			var childArray:Array = new Array();
+
+			if(sparkTitleWindow.closeButton != null)
+				childArray.push(sparkTitleWindow.closeButton as IAutomationObject);
+
+			var tempChildren:Array  = super.getAutomationChildren();
+			if(tempChildren)
+			{
+				var n:int = tempChildren.length;
+				for ( var i:int = 0; i < n ; i++)
+				{
+					childArray.push(tempChildren[i] as IAutomationObject);
+				}
+			}
+			return childArray;
+		}
+	}
+}


replace class Version by core.version

replace class Version by core.version

--- src/com/google/analytics/utils/Environment.as
+++ src/com/google/analytics/utils/Environment.as
@@ -26,6 +26,7 @@

     import core.strings.userAgent;
     import core.uri;
+    import core.version;

     import flash.system.Capabilities;
     import flash.system.Security;
@@ -41,7 +42,7 @@

         private var _protocol:String;
         private var _appName:String;
-        private var _appVersion:Version;
+        private var _appVersion:version;
         private var _userAgent:String;
         private var _url:String;

@@ -55,7 +56,7 @@
         public function Environment( url:String = "", app:String = "", version:String = "",
                                      debug:DebugConfiguration = null, dom:HTMLDOM = null )
         {
-            var v:Version;
+            var v:core.version;

             if( app == "" )
             {
@@ -75,7 +76,7 @@
             }
             else
             {
-                v = Version.fromString( version );
+                v = getVersionFromString( version );
             }

             _url        = url;
@@ -120,7 +121,7 @@
         /**
          * Indicates the version of the application.
          */
-        public function get appVersion():Version
+        public function get appVersion():version
         {
             return _appVersion;
         }
@@ -128,7 +129,7 @@
         /**
          * @private
          */
-        public function set appVersion( value:Version ):void
+        public function set appVersion( value:version ):void
         {
             _appVersion = value;
             _defineUserAgent();
@@ -270,9 +271,9 @@
          * </pre>
          * @return the flash version object representation of the application.
          */
-        public function get flashVersion():Version
-        {
-            var v:Version = Version.fromString( Capabilities.version.split( " " )[1], "," ) ;
+        public function get flashVersion():version
+        {
+            var v:version = getVersionFromString( Capabilities.version.split( " " )[1], "," ) ;
             return v ;
         }


Игнорирование ошибки создания Cookies

Игнорирование ошибки создания Cookies

--- src/main/org/shypl/common/util/Cookies.as
+++ src/main/org/shypl/common/util/Cookies.as
@@ -1,12 +1,21 @@
 package org.shypl.common.util {
 	import flash.net.SharedObject;
-
+
+	import org.shypl.common.lang.notNull;
+
 	public class Cookies extends ParametersObject {
 		private var _sharedObject:SharedObject;

 		public function Cookies(storageName:String = "cookies", sharedName:String = null) {
-			_sharedObject = SharedObject.getLocal(storageName, sharedName);
-			super(_sharedObject.data);
+			var data:Object;
+			try {
+				_sharedObject = SharedObject.getLocal(storageName, sharedName);
+				data = _sharedObject.data;
+			}
+			catch (ignored:Error) {
+				data = {};
+			}
+			super(data);
 		}

 		override public function remove(name:String):void {
@@ -20,10 +29,13 @@
 		}

 		private function save():void {
-			try {
-				_sharedObject.flush();
-			}
-			catch (ignored:Error) {
+			if (notNull(_sharedObject)) {
+				try {
+					_sharedObject.flush();
+				}
+				catch (ignored:Error) {
+
+				}
 			}
 		}
 	}


Улучшение AbstractMain

Улучшение AbstractMain

--- src/main/org/shypl/common/app/AbstractMain.as
+++ src/main/org/shypl/common/app/AbstractMain.as
@@ -5,7 +5,6 @@
 	import flash.display.StageScaleMode;
 	import flash.events.Event;

-	import org.shypl.common.lang.AbstractMethodException;
 	import org.shypl.common.lang.UncaughtErrorDelegate;
 	import org.shypl.common.util.progress.Progress;

@@ -22,6 +21,10 @@
 			}
 		}

+		public function run(parameters:Object, stage:Stage):Progress {
+			return new MainPreloader(parameters, stage);
+		}
+
 		protected function defineStageAlign():String {
 			return StageAlign.TOP_LEFT;
 		}
@@ -30,12 +33,9 @@
 			return StageScaleMode.NO_SCALE;
 		}

-		protected function createPreloaderScreen():AbstractPreloaderScreen {
+		//noinspection JSUnusedLocalSymbols
+		protected function createPreloaderScreen(parameters:Object):AbstractPreloaderScreen {
 			return new SimplePreloaderScreen();
-		}
-
-		public function run(parameters:Object, stage:Stage):Progress {
-			return new MainPreloader(parameters, stage);
 		}

 		private function main():void {
@@ -48,7 +48,7 @@

 			var parameters:Object = loaderInfo.parameters;

-			new Preloader(stage, createPreloaderScreen(), run(parameters, stage));
+			new Preloader(stage, createPreloaderScreen(parameters), run(parameters, stage));
 		}

 		private function onAddedToStage(event:Event):void {


simplified code

simplified code

Change-Id: Ic4de7ee6294f8949dd4280c7a0faa481be92304e

--- WeaveCore/src/weave/core/LinkableDynamicObject.as
+++ WeaveCore/src/weave/core/LinkableDynamicObject.as
@@ -259,17 +259,13 @@
 			if (lockObject)
 				_locked = true;

-			// to avoid possible problems with String casting, don't support empty string
-			if (newGlobalName == '')
-				newGlobalName = null;
-
 			// make sure callbacks only run once when initializing the internal object
 			delayCallbacks();

 			// handle both class definitions and class names
 			var newClassDef:Class = newClassNameOrDef as Class || ClassUtils.getClassDefinition(newClassNameOrDef as String);

-			if (newGlobalName == null) // local object
+			if (!newGlobalName) // null or "" => local object
 			{
 				// initialize the local object -- this may trigger childListCallback()
 				var result:ILinkableObject = _localHashMap.requestObject(LOCAL_OBJECT_NAME, newClassDef, lockObject);


Removed more "if" statements since creation is not deferred.

--- src/org/openPyro/aurora/AuroraCheckBoxSkin.as
+++ src/org/openPyro/aurora/AuroraCheckBoxSkin.as
@@ -102,27 +102,20 @@

 		override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
 			super.updateDisplayList(unscaledWidth, unscaledHeight);
-				if(!label){
-					if(_checkIcon)
-						_checkIcon.x = (unscaledWidth-_checkIcon.width)/2;
-					if(_uncheckIcon)
-						_uncheckIcon.x = 	(unscaledWidth-_uncheckIcon.width)/2
-				}
-				else{
-						if(_checkIcon){
-							_checkIcon.x = _skinnedControl.padding.left;
-							_checkIcon.y = (unscaledHeight-_checkIcon.height)/2;
-
-						}
-						if(_uncheckIcon){
-							_uncheckIcon.x =  _skinnedControl.padding.left;;
-							_uncheckIcon.y = (unscaledHeight-_uncheckIcon.height)/2;
-						}
-						var checkIconW:Number = _checkIcon ? _checkIcon.width:0
-						var uncheckIconW:Number = _uncheckIcon?_uncheckIcon.width:0
-						label.x = Math.max(checkIconW, uncheckIconW)+boxLabelGap;
-					}
-
+			if(!label){
+				_checkIcon.x = (unscaledWidth-_checkIcon.width)/2;
+				_uncheckIcon.x = 	(unscaledWidth-_uncheckIcon.width)/2
+			}
+			else{
+				_checkIcon.x = _skinnedControl.padding.left;
+				_checkIcon.y = (unscaledHeight-_checkIcon.height)/2;
+				_uncheckIcon.x =  _skinnedControl.padding.left;;
+				_uncheckIcon.y = (unscaledHeight-_uncheckIcon.height)/2;
+
+				var checkIconW:Number = _checkIcon ? _checkIcon.width:0
+				var uncheckIconW:Number = _uncheckIcon?_uncheckIcon.width:0
+				label.x = Math.max(checkIconW, uncheckIconW)+boxLabelGap;
+			}
 		}

 		protected function createDefaultUnCheckIcon():Sprite{
@@ -151,7 +144,5 @@
 			sp.mouseChildren=false;
 			return sp
 		}
-
-
 	}
 }


corrected file name to lower case to accomodate the case sensitive nature of linux files

--- DroneAnarchy/Resources/Scripts/DroneAnarchy.as
+++ DroneAnarchy/Resources/Scripts/DroneAnarchy.as
@@ -480,7 +480,7 @@
 	gameState_ = GS_OUTGAME;

 	CleanupScene();
-	PlayBackgroundMusic("Resources/Sounds/Defeated.ogg");
+	PlayBackgroundMusic("Resources/Sounds/defeated.ogg");

 	targetSprite_.visible = false;
 	statusText_.text = "YOU FAILED";


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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


Try to support non-modal windows on top of a modal window

--- frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as
@@ -25,16 +25,16 @@
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.EventDispatcher;
+import flash.events.FocusEvent;
 import flash.events.IEventDispatcher;
-import flash.events.FocusEvent;
 import flash.events.MouseEvent;

 import mx.core.IChildList;
 import mx.core.IFlexModuleFactory;
 import mx.core.IRawChildrenContainer;
 import mx.core.IUIComponent;
+import mx.core.Singleton;
 import mx.core.mx_internal;
-import mx.core.Singleton;
 import mx.events.DynamicEvent;
 import mx.events.Request;
 import mx.managers.IActiveWindowManager;
@@ -428,6 +428,30 @@

 	/**
 	 *  @private
+	 */
+	private function findHighestModalForm():int
+	{
+		var n:int = forms.length;
+		var rc:IChildList = systemManager.rawChildren;
+		for (var i:int = n - 1; n >= 0; i--)
+		{
+			var f:Object = forms[i];
+			if (f is DisplayObject)
+			{
+				var index:int = rc.getChildIndex(f as DisplayObject);
+				if (index > 0)
+				{
+					var under:DisplayObject = rc.getChildAt(index - 1);
+					if (under.name == "modalWindow")
+						return i;
+				}
+			}
+		}
+		return 0;
+	}
+
+	/**
+	 *  @private
 	 *  Track mouse clicks to see if we change top-level forms.
 	 */
 	private function mouseDownHandler(event:MouseEvent):void
@@ -437,106 +461,111 @@
 		    if (!dispatchEvent(new FocusEvent(MouseEvent.MOUSE_DOWN, false, true, InteractiveObject(event.target))))
 			    return;

-		if (numModalWindows == 0) // no modal windows are up
-		{
-			if (!systemManager.isTopLevelRoot() || forms.length > 1)
+		var startIndex:int = 0;
+		if (numModalWindows > 0)
+		{
+			// if there is a modal window, only non-modal
+			// windows above it are in play
+			startIndex = findHighestModalForm() + 1;
+		}
+
+		if (!systemManager.isTopLevelRoot() || forms.length > 1)
+		{
+			var n:int = forms.length;
+			var p:DisplayObject = DisplayObject(event.target);
+            var isApplication:Boolean = systemManager.document is IRawChildrenContainer ?
+                                        IRawChildrenContainer(systemManager.document).rawChildren.contains(p) :
+                                        systemManager.document.contains(p);
+			while (p)
 			{
-				var n:int = forms.length;
-				var p:DisplayObject = DisplayObject(event.target);
-                var isApplication:Boolean = systemManager.document is IRawChildrenContainer ?
-                                            IRawChildrenContainer(systemManager.document).rawChildren.contains(p) :
-                                            systemManager.document.contains(p);
-				while (p)
+				for (var i:int = startIndex; i < n; i++)
 				{
-					for (var i:int = 0; i < n; i++)
+					var form_i:Object = forms[i];
+                    if (hasEventListener("actualForm"))
+                    {
+					    var request:Request = new Request("actualForm", false, true);
+					    request.value = forms[i];
+                        if (!dispatchEvent(request))
+                            form_i = forms[i].window;
+                    }
+					if (form_i == p)
 					{
-						var form_i:Object = forms[i];
-                        if (hasEventListener("actualForm"))
-                        {
-						    var request:Request = new Request("actualForm", false, true);
-						    request.value = forms[i];
-                            if (!dispatchEvent(request))
-                                form_i = forms[i].window;
-                        }
-						if (form_i == p)
+						var j:int = 0;
+						var index:int;
+						var newIndex:int;
+						var childList:IChildList;
+
+						if (((p != form) && p is IFocusManagerContainer) ||
+						    (!systemManager.isTopLevelRoot() && p == form))
 						{
-							var j:int = 0;
-							var index:int;
-							var newIndex:int;
-							var childList:IChildList;
-
-							if (((p != form) && p is IFocusManagerContainer) ||
-							    (!systemManager.isTopLevelRoot() && p == form))
+							if (systemManager.isTopLevelRoot())
+							activate(IFocusManagerContainer(p));
+
+							if (p == systemManager.document)
+                            {
+                                if (hasEventListener("activateApplication"))
+								    dispatchEvent(new Event("activateApplication"));
+                            }
+							else if (p is DisplayObject)
+                            {
+                                if (hasEventListener("activateWindow"))
+									dispatchEvent(new FocusEvent("activateWindow", false, false, InteractiveObject(p)));
+                            }
+						}
+
+						if (systemManager.popUpChildren.contains(p))
+							childList = systemManager.popUpChildren;
+						else
+							childList = systemManager;
+
+						index = childList.getChildIndex(p);
+						newIndex = index;
+
+						//we need to reset n because activating p's
+						//FocusManager could have caused
+						//forms.length to have changed.
+						n = forms.length;
+						for (j = startIndex; j < n; j++)
+						{
+							var f:DisplayObject;
+                            isRemotePopUp = false;
+                            if (hasEventListener("isRemote"))
+                            {
+							    request = new Request("isRemote", false, true);
+							    request.value = forms[j];
+							    var isRemotePopUp:Boolean = false;
+							    if (!dispatchEvent(request))
+									isRemotePopUp = request.value as Boolean;
+                            }
+							if (isRemotePopUp)
 							{
-								if (systemManager.isTopLevelRoot())
-								activate(IFocusManagerContainer(p));
-
-								if (p == systemManager.document)
-                                {
-                                    if (hasEventListener("activateApplication"))
-									    dispatchEvent(new Event("activateApplication"));
-                                }
-								else if (p is DisplayObject)
-                                {
-                                    if (hasEventListener("activateWindow"))
-    									dispatchEvent(new FocusEvent("activateWindow", false, false, InteractiveObject(p)));
-                                }
+								if (forms[j].window is String)
+									continue;
+								f = forms[j].window;
 							}
-
-							if (systemManager.popUpChildren.contains(p))
-								childList = systemManager.popUpChildren;
-							else
-								childList = systemManager;
-
-							index = childList.getChildIndex(p);
-							newIndex = index;
-
-							//we need to reset n because activating p's
-							//FocusManager could have caused
-							//forms.length to have changed.
-							n = forms.length;
-							for (j = 0; j < n; j++)
+							else
+								f = forms[j];
+							if (isRemotePopUp)
 							{
-								var f:DisplayObject;
-                                isRemotePopUp = false;
-                                if (hasEventListener("isRemote"))
-                                {
-								    request = new Request("isRemote", false, true);
-								    request.value = forms[j];
-								    var isRemotePopUp:Boolean = false;
-								    if (!dispatchEvent(request))
-    									isRemotePopUp = request.value as Boolean;
-                                }
-								if (isRemotePopUp)
-								{
-									if (forms[j].window is String)
-										continue;
-									f = forms[j].window;
-								}
-								else
-									f = forms[j];
-								if (isRemotePopUp)
-								{
-									var fChildIndex:int = getChildListIndex(childList, f);
-									if (fChildIndex > index)
-										newIndex = Math.max(fChildIndex, newIndex);
-								}
-								else if (childList.contains(f))
-									if (childList.getChildIndex(f) > index)
-										newIndex = Math.max(childList.getChildIndex(f), newIndex);
+								var fChildIndex:int = getChildListIndex(childList, f);
+								if (fChildIndex > index)
+									newIndex = Math.max(fChildIndex, newIndex);
 							}
-							if (newIndex > index && !isApplication)
-								childList.setChildIndex(p, newIndex);
-
-							return;
+							else if (childList.contains(f))
+								if (childList.getChildIndex(f) > index)
+									newIndex = Math.max(childList.getChildIndex(f), newIndex);
 						}
+						if (newIndex > index && !isApplication)
+							childList.setChildIndex(p, newIndex);
+
+						return;
 					}
-					p = p.parent;
 				}
+				p = p.parent;
 			}
-			else if (hasEventListener("activateApplication"))
-				dispatchEvent(new Event("activateApplication"));
-		}
+		}
+		else if (hasEventListener("activateApplication"))
+			dispatchEvent(new Event("activateApplication"));
 	}

 	/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 7679
Author:   cframpto@adobe.com
Date:     2009-06-09T18:25:53.217425Z

Log Message:
-----------
Revert change for drawFocus (part of rev #7663 for SDK-21335).

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
@@ -940,8 +940,7 @@
             return;
         }

-        if (textView)
-            textView.drawFocus(isFocused);
+        super.drawFocus(isFocused);
     }

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateColorInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateColorInstance.as
@@ -8,11 +8,11 @@
 //  in accordance with the terms of the license agreement accompanying it.
 //
 ////////////////////////////////////////////////////////////////////////////////
+
 package mx.effects.effectClasses
 {
-import mx.effects.PropertyValuesHolder;
-import mx.effects.interpolation.ColorInterpolator;
-
+import mx.effects.AnimationProperty;
+import mx.effects.interpolation.RGBInterpolator;
 import mx.styles.StyleManager;

 /**
@@ -75,9 +75,11 @@
             }
         }

-        propertyValuesList =
-            [new PropertyValuesHolder(colorPropertyName, [colorFrom, colorTo])];
-        interpolator = ColorInterpolator.getInstance();
+        animationProperties =
+            [ new AnimationProperty(colorPropertyName, colorFrom, colorTo) ];
+
+        if (!interpolator)
+            interpolator = RGBInterpolator.getInstance();

         super.play();
     }


Fix: Comment updated for the correct file name with the compile command

--- media/as3/ZeroClipboardPdf.as
+++ media/as3/ZeroClipboardPdf.as
@@ -1,4 +1,4 @@
-/* Compile using: mxmlc --target-player=10.0.0 -library-path+=lib ZeroClipboard.as */
+/* Compile using: mxmlc --target-player=10.0.0 -library-path+=lib ZeroClipboardPdf.as */
 package {
 	import flash.display.Stage;
 	import flash.display.Sprite;


Allowing for more general CommandComplete messages.

--- driver/src/main/flex/org/postgresql/febe/message/CommandComplete.as
+++ driver/src/main/flex/org/postgresql/febe/message/CommandComplete.as
@@ -12,11 +12,10 @@
         public var oid:int;
         public var affectedRows:int;

-        // TODO: though the docs don't say so, I believe this can also be DROP, ALTER
         private static const SELECT_CMD:RegExp = /SELECT/;
         private static const INSERT_CMD:RegExp = /INSERT (\d+) (\d+)/;
         private static const COPY_CMD:RegExp = /COPY (\d+)?/;
-        private static const OTHER_CMD:RegExp = /(DELETE|UPDATE|MOVE|FETCH) (\d+)/;
+        private static const OTHER_ROW_CMD:RegExp = /(DELETE|UPDATE|MOVE|FETCH) (\d+)/;

         public function CommandComplete() {
             oid = -1;
@@ -36,8 +35,8 @@
                 command = 'INSERT';
                 oid = match[1];
                 affectedRows = match[2];
-            } else if (OTHER_CMD.test(commandTag)) {
-                match = commandTag.match(OTHER_CMD);
+            } else if (OTHER_ROW_CMD.test(commandTag)) {
+                match = commandTag.match(OTHER_ROW_CMD);
                 if (match.length != 3) {
                      badTag(commandTag);
                 }
@@ -51,7 +50,7 @@
                 command = 'COPY';
                 affectedRows = match.length > 1 ? match.length[1] : -1;
             } else {
-                badTag(commandTag);
+                command = commandTag;
             }
         }


HLSProviderOSMF.swf: release videoSurface when unloading

--- src/org/mangui/osmf/plugins/HLSMediaElement.as
+++ src/org/mangui/osmf/plugins/HLSMediaElement.as
@@ -64,7 +64,10 @@
             removeTrait(MediaTraitType.DYNAMIC_STREAM);
             removeTrait(MediaTraitType.DVR);
             removeTrait(MediaTraitType.ALTERNATIVE_AUDIO);
-            removeTrait(MediaTraitType.DVR);
+            if (videoSurface != null) {
+                videoSurface.attachNetStream(null);
+                videoSurface = null;
+            }
         }

         /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.logging.targets
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 14124
Author:   cframpto@adobe.com
Date:     2010-02-11T17:53:35.882363Z

Log Message:
-----------
Merge 14123 from 4.x branch to trunk.

Log Message:
***********
Two additions/corrections to 14076.  Add key mappings for layoutDirection="rtl" for spark list components.  Correct type of keyCode variable so it is an uint rather than an int to match event.keyCode.

BitmapImage has a hard-coded layout direction="ltr".

QE notes: For layoutDirection="rtl" need to test LEFT, RIGHT, UP and DOWN keys.
Doc notes: None
Bugs: SDK-25330
Reviewed By: Hans
Tests run: checkintests
Is noteworthy for integration: No

Ticket Links:
***********
    http://bugs.adobe.com/jira/browse/SDK-25330

Modified Paths:
**************
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/containers/Accordion.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/ButtonBar.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/CalendarLayout.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/ColorPicker.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/Menu.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/MenuBar.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/RadioButton.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/Tree.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/core/Container.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/core/UIComponent.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/List.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/RadioButton.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/primitives/BitmapImage.as

Property Changed:
****************
    flex/sdk/branches/4.x/frameworks/

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk/frameworks</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/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.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/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>

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

--- frameworks/projects/mx/src/mx/controls/sliderClasses/SliderThumb.as
+++ frameworks/projects/mx/src/mx/controls/sliderClasses/SliderThumb.as
@@ -287,9 +287,9 @@

 		var newVal:Number;

-        // If rtl layout, need to swap LEFT for RIGHT so correct action
+        // If rtl layout, need to swap LEFT and RIGHT so correct action
         // is done.
-        var keyCode:int = mapKeycodeForLayoutDirection(event);
+        var keyCode:uint = mapKeycodeForLayoutDirection(event);

 		if ((keyCode == Keyboard.DOWN && !isHorizontal) ||
 			(keyCode == Keyboard.LEFT && isHorizontal))


setting sound listener hear is redundant since it is still called in StartGame method

--- DroneAnarchy/Resources/Scripts/DroneAnarchy.as
+++ DroneAnarchy/Resources/Scripts/DroneAnarchy.as
@@ -128,7 +128,7 @@
     Light@ light = lightNode.CreateComponent("Light");
     light.lightType = LIGHT_DIRECTIONAL;

-	audio.listener = cameraNode_.CreateComponent("SoundListener");
+	cameraNode_.CreateComponent("SoundListener");

 	renderer.viewports[0] = Viewport(scene_, cameraNode_.GetComponent("Camera"));
 }


DEFAULT_TRIGGER_COUNT is now public static

Change-Id: I9a340489886f7a5267b9374e247edd0629e1cb51

--- WeaveCore/src/weave/core/CallbackCollection.as
+++ WeaveCore/src/weave/core/CallbackCollection.as
@@ -80,7 +80,7 @@
 		 * This is the default value of triggerCounter.
 		 * The default value is 1 to avoid being equal to a newly initialized uint=0.
 		 */
-		protected const DEFAULT_TRIGGER_COUNT:uint = 1;
+		public static const DEFAULT_TRIGGER_COUNT:uint = 1;

 		/**
 		 * This value keeps track of how many times callbacks were triggered, and is returned by the public triggerCounter accessor function.


* 修复了向帧数为 0 的图层插入（关键）帧时，没有设置第 0 帧为关键帧的 bug

--- ageb/src/ageb/modules/avatar/op/InsertFrame.as
+++ ageb/src/ageb/modules/avatar/op/InsertFrame.as
@@ -56,6 +56,12 @@
 				// 要插入的帧
 				var newFrame:FrameInfoEditable = new FrameInfoEditable()
 				layer = info.getLayerAt(rowIndex);
+
+				// 该图层没有任何帧，需要先插入一个空白关键帧
+				if (layer.numFrames == 0)
+				{
+					layer.addFrame(new FrameInfoEditable({ isKeyframe: true }));
+				}

 				// 插入位置超过了帧长度，需要补齐前面的帧
 				// 该操作属追加


fix Scene constructor to pass the children argument to the parent constructor and init. children properly (issue #1105)

--- src/aerys/minko/scene/node/Scene.as
+++ src/aerys/minko/scene/node/Scene.as
@@ -129,7 +129,7 @@

 		public function Scene(...children)
 		{
-			super();
+			super(children);
 		}

 		override protected function initialize() : void


- 删除文件以改文件名大小写

- 删除文件以改文件名大小写

--- ageb/src/ageb/modules/ae/BgRendererEditable.as
+++ ageb/src/ageb/modules/ae/BgRendererEditable.as
@@ -1,90 +0,0 @@
-package ageb.modules.ae
-{
-	import age.assets.BGInfo;
-	import age.renderers.BGRenderer;
-
-	public class BgRendererEditable extends BGRenderer implements ISelectableRenderer
-	{
-		public function BgRendererEditable()
-		{
-			super();
-			touchable = true;
-		}
-
-		override public function set info(value:BGInfo):void
-		{
-			if (infoEditable)
-			{
-				infoEditable.onIsDraggingChange.remove(onIsDraggingChange);
-				infoEditable.onPositionChange.remove(onXYChange);
-				infoEditable.onIsSelectedChange.remove(onIsSelectedChange);
-				infoEditable.onIsFlipXChange.remove(onIsFlipXChange);
-				infoEditable.onIsFlipYChange.remove(onIsFlipYChange);
-			}
-			super.info = value;
-
-			if (infoEditable)
-			{
-				infoEditable.onIsDraggingChange.add(onIsDraggingChange);
-				infoEditable.onPositionChange.add(onXYChange);
-				infoEditable.onIsSelectedChange.add(onIsSelectedChange);
-				infoEditable.onIsFlipXChange.add(onIsFlipXChange);
-				infoEditable.onIsFlipYChange.add(onIsFlipYChange);
-				onIsSelectedChange();
-				originAlpha = alpha;
-			}
-		}
-
-		private var originAlpha:Number;
-
-		private function onIsDraggingChange():void
-		{
-			super.alpha = originAlpha * (selectableInfo.isDragging ? 0.5 : 1);
-		}
-
-		override public function set alpha(value:Number):void
-		{
-			super.alpha = value;
-			originAlpha = value;
-		}
-
-		private function onXYChange():void
-		{
-			x = _info.x;
-			y = _info.y;
-			z = _info.z;
-		}
-
-		private function onIsFlipXChange():void
-		{
-			isFlipX = info.isFlipX;
-		}
-
-		private function onIsFlipYChange():void
-		{
-			isFlipY = info.isFlipY;
-		}
-
-		private function onIsSelectedChange():void
-		{
-			if (infoEditable.isSelected)
-			{
-				color = 0x00ffcc;
-			}
-			else
-			{
-				color = 0xffffff;
-			}
-		}
-
-		final protected function get infoEditable():BGInfoEditable
-		{
-			return _info as BGInfoEditable;
-		}
-
-		final public function get selectableInfo():ISelectableInfo
-		{
-			return _info as ISelectableInfo;
-		}
-	}
-}


Test for cloning of property with type CloneableClass in CompositeCloneableClass.

--- dolly-framework/src/test/actionscript/dolly/CloningOfCompositeCloneableClassTest.as
+++ dolly-framework/src/test/actionscript/dolly/CloningOfCompositeCloneableClassTest.as
@@ -16,6 +16,7 @@
 import org.hamcrest.collection.arrayWithSize;
 import org.hamcrest.collection.everyItem;
 import org.hamcrest.core.isA;
+import org.hamcrest.core.not;
 import org.hamcrest.object.equalTo;

 use namespace dolly_internal;
@@ -107,5 +108,18 @@
 		assertEquals(arrayCollection.getItemAt(3), 4);
 		assertEquals(arrayCollection.getItemAt(4), 5);
 	}
+
+	[Test]
+	public function cloningOfCloneableProperty():void {
+		const clone:CompositeCloneableClass = Cloner.clone(compositeCloneableClass);
+
+		const cloneable:CloneableClass = clone.cloneable;
+
+		assertNotNull(cloneable);
+		assertThat(cloneable, isA(CloneableClass));
+		assertEquals(cloneable.property1, "property1 value");
+		assertEquals(cloneable.writableField1, "writableField1 value");
+		assertThat(cloneable, not(compositeCloneableClass.cloneable));
+	}
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5366
Author:   gosmith@adobe.com
Date:     2009-03-17T22:11:17.242546Z

Log Message:
-----------
TextBox no longer supports a 'textRotation' style. This format is primarily intended for use with vertical Asian text, which TextBox doesn't support.

QE Notes: None
Doc Notes: None
Bugs: SDK-18629
Reviewer: Carol

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/AdvancedTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/BasicTextLayoutFormatStyles.as</path>

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

--- frameworks/projects/spark/src/spark/styles/metadata/AdvancedInheritingTextStyles.as
+++ frameworks/projects/spark/src/spark/styles/metadata/AdvancedInheritingTextStyles.as
@@ -90,6 +90,16 @@
 [Style(name="textIndent", type="Number", format="Length", inherit="yes")]

 /**
+ *  @copy flashx.textLayout.formats.ITextLayoutFormat#textRotation
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="textRotation", type="String", enumeration="auto,rotate0,rotate90,rotate180,rotate270", inherit="yes")]
+
+/**
  *  @copy flashx.textLayout.formats.ITextLayoutFormat#whiteSpaceCollapse
  *
  *  @langversion 3.0


removed code accessing callback['this']

removed code accessing callback['this']

--- WeaveCore/src/weave/core/CallbackCollection.as
+++ WeaveCore/src/weave/core/CallbackCollection.as
@@ -107,7 +107,7 @@
 			{
 				// increase the recursion count while the function is running
 				entry.recursionCount++;
-				callback.apply(relevantContext || callback['this']);
+				callback.apply(relevantContext);
 				entry.recursionCount--;
 			}
 		}
@@ -188,7 +188,7 @@
 						if (_preCallback != null)
 							_preCallback.apply(this, preCallbackParams);

-						entry.callback.apply(entry.context || entry.callback['this']);
+						entry.callback.apply(entry.context);

 						entry.recursionCount--; // decrease count because the callback finished.
 					}
@@ -294,7 +294,7 @@
 			{
 				var entry:CallbackEntry = _disposeCallbackEntries.shift() as CallbackEntry;
 				if (entry.callback != null && !WeaveAPI.SessionManager.objectWasDisposed(entry.context))
-					entry.callback.apply(entry.context || entry.callback['this']);
+					entry.callback.apply(entry.context);
 			}
 		}


Network bits.

Network bits.

git-svn-id: 41360ad359616a519dfba9f2f48af1afe653c9f7@19 be230a1c-449f-4488-b524-6273046f66f0

--- src/as/client/ClientApp.as
+++ src/as/client/ClientApp.as
@@ -28,6 +28,8 @@
 import flash.ui.ContextMenu;
 import flash.ui.ContextMenuItem;
 import flash.ui.Keyboard;
+
+import flash.utils.ByteArray;

 /**
  * The Witgap client application.
@@ -179,6 +181,7 @@
         _socket.writeShort(6);
         _socket.writeShort(event.type == KeyboardEvent.KEY_DOWN ? KEY_PRESSED : KEY_RELEASED);
         _socket.writeUnsignedInt(getQtKeyCode(event));
+        _socket.flush();
     }

     /**
@@ -186,6 +189,81 @@
      */
     protected function readMessages (event :ProgressEvent) :void
     {
+        while (true) {
+            if (_messageLength == 0) {
+                if (_socket.bytesAvailable < 2) {
+                    return;
+                }
+                _messageLength = _socket.readUnsignedShort();
+
+            } else {
+                if (_socket.bytesAvailable < _messageLength) {
+                    return;
+                }
+                var bytes :ByteArray = new ByteArray();
+                _socket.readBytes(bytes, 0, _messageLength);
+                _messageLength = 0;
+
+                bytes.position = 0;
+                decodeMessage(bytes);
+            }
+        }
+        updateDisplay();
+    }
+
+    /**
+     * Decodes the message contained in the provided byte array.
+     */
+    protected function decodeMessage (bytes :ByteArray) :void
+    {
+        var type :int = bytes.readUnsignedShort();
+        switch (type) {
+            case ADD_WINDOW:
+                addWindow(new Window(bytes.readInt(), bytes.readInt(),
+                    readRectangle(bytes), bytes.readInt()));
+                break;
+
+            case REMOVE_WINDOW:
+                removeWindow(bytes.readInt());
+                break;
+
+            case UPDATE_WINDOW:
+                updateWindow(bytes.readInt(), bytes.readInt(),
+                    readRectangle(bytes), bytes.readInt());
+                break;
+
+            case SET_CONTENTS:
+                var id :int = bytes.readInt();
+                var bounds :Rectangle = readRectangle(bytes);
+                var contents :Array = new Array(bounds.width * bounds.height);
+                for (var ii :int = 0; ii < contents.length; ii++) {
+                    contents[ii] = bytes.readInt();
+                }
+                setWindowContents(id, bounds, contents);
+                break;
+
+            case MOVE_CONTENTS:
+                moveWindowContents(bytes.readInt(), readRectangle(bytes),
+                    new Point(bytes.readInt(), bytes.readInt()), bytes.readInt());
+                break;
+
+            case COMPOUND:
+                for (var count :int = bytes.readInt(); count >= 0; count--) {
+                    decodeMessage(bytes);
+                }
+                break;
+
+            default:
+                trace("Unknown message type.", type);
+        }
+    }
+
+    /**
+     * Reads and returns a rectangle from the provided array.
+     */
+    protected function readRectangle (bytes :ByteArray) :Rectangle
+    {
+        return new Rectangle(bytes.readInt(), bytes.readInt(), bytes.readInt(), bytes.readInt());
     }

     /**
@@ -527,6 +605,9 @@
     /** The socket via which we communicate with the server. */
     protected var _socket :Socket;

+    /** The length of the current server message. */
+    protected var _messageLength :int = 0;
+
     /** The list of windows (sorted by layer). */
     protected var _windows :Array = [ ];

@@ -556,6 +637,9 @@

     /** Incoming message: move contents. */
     protected static var MOVE_CONTENTS :int = 5;
+
+    /** Incoming message: compound. */
+    protected static var COMPOUND :int = 6;
 }
 }


transfer

transfer

git-svn-id: 5c313c7b604ce6bf72d7224b35e7462ee01c5e2b@262 7a690eda-67ec-4556-b061-4c86d960b817

--- exe/SWPlayer/src/ascript.as
+++ exe/SWPlayer/src/ascript.as
@@ -46,20 +46,19 @@

 	this._swagent = new SWAgent();

-	this.readRcParams();
-
-
-	trace (' xcoef:'+this._x_coef+'='+this.width+'/'+this._defined_screen_width
-	+ '; ycoef:'+this._y_coef+'='+this.height+'/'+this._defined_screen_height+'.');
+//	this.readRcParams();
+
+
+	//trace (' xcoef:'+this._x_coef+'='+this.width+'/'+this._defined_screen_width + '; ycoef:'+this._y_coef+'='+this.height+'/'+this._defined_screen_height+'.');

-	var sw_screen:SWScreen = new SWScreen(this._screen_id);
-	this.addChild(sw_screen);
-	sw_screen.x = 0;
-	sw_screen.y = 0;
-	sw_screen.width = this.width;
-	sw_screen.height = this.height;
+//	var sw_screen:SWScreen = new SWScreen(this._screen_id);
+//	this.addChild(sw_screen);
+//	sw_screen.x = 0;
+//	sw_screen.y = 0;
+//	sw_screen.width = this.width;
+//	sw_screen.height = this.height;


FLEX-33592 missed one RTE check

FLEX-33592 missed one RTE check

--- frameworks/projects/mx/src/mx/controls/MenuBar.as
+++ frameworks/projects/mx/src/mx/controls/MenuBar.as
@@ -2031,7 +2031,7 @@
         {
             item.menuBarItemState = "itemDownSkin";

-            if (!isDown)
+            if (m && !isDown)
             {
                 m.supposedToLoseFocus = true;


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

--- frameworks/projects/mx/src/mx/events/TreeEvent.as
+++ frameworks/projects/mx/src/mx/events/TreeEvent.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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Rename properties in test class.

Rename properties in test class.

--- dolly-framework/src/test/actionscript/dolly/ClonerTest.as
+++ dolly-framework/src/test/actionscript/dolly/ClonerTest.as
@@ -11,45 +11,46 @@

 public class ClonerTest {

-	private var classMarkedAsCloneable:ClassLevelCloneable;
-	private var classWithSomeCloneableFields:PropertyLevelCloneable;
-	private var classMarkedAsCloneableType:Type;
-	private var classWithSomeCloneableFieldsType:Type;
+	private var classLevelCloneable:ClassLevelCloneable;
+	private var classLevelCloneableType:Type;
+
+	private var propertyLevelCloneable:PropertyLevelCloneable;
+	private var propertyLevelCloneableType:Type;

 	[Before]
 	public function before():void {
-		classMarkedAsCloneable = new ClassLevelCloneable();
-		classMarkedAsCloneable.property1 = "value 1";
-		classMarkedAsCloneable.property2 = "value 2";
-		classMarkedAsCloneable.property3 = "value 3";
-		classMarkedAsCloneable.writableField = "value 4";
+		classLevelCloneable = new ClassLevelCloneable();
+		classLevelCloneable.property1 = "value 1";
+		classLevelCloneable.property2 = "value 2";
+		classLevelCloneable.property3 = "value 3";
+		classLevelCloneable.writableField = "value 4";

-		classWithSomeCloneableFields = new PropertyLevelCloneable();
-		classWithSomeCloneableFields.property1 = "value 1";
-		classWithSomeCloneableFields.property2 = "value 2";
-		classWithSomeCloneableFields.property3 = "value 3";
-		classWithSomeCloneableFields.writableField = "value 4";
+		propertyLevelCloneable = new PropertyLevelCloneable();
+		propertyLevelCloneable.property1 = "value 1";
+		propertyLevelCloneable.property2 = "value 2";
+		propertyLevelCloneable.property3 = "value 3";
+		propertyLevelCloneable.writableField = "value 4";

-		classMarkedAsCloneableType = Type.forInstance(classMarkedAsCloneable);
-		classWithSomeCloneableFieldsType = Type.forInstance(classWithSomeCloneableFields);
+		classLevelCloneableType = Type.forInstance(classLevelCloneable);
+		propertyLevelCloneableType = Type.forInstance(propertyLevelCloneable);
 	}

 	[After]
 	public function after():void {
-		classMarkedAsCloneable = null;
-		classWithSomeCloneableFields = null;
-		classMarkedAsCloneableType = null;
-		classWithSomeCloneableFieldsType = null;
+		classLevelCloneable = null;
+		propertyLevelCloneable = null;
+		classLevelCloneableType = null;
+		propertyLevelCloneableType = null;
 	}

 	[Test]
 	public function testGetCloneableFieldsForType():void {
-		var cloneableFields:Vector.<Field> = Cloner.getCloneableFieldsForType(classMarkedAsCloneableType);
+		var cloneableFields:Vector.<Field> = Cloner.getCloneableFieldsForType(classLevelCloneableType);

 		assertNotNull(cloneableFields);
 		assertEquals(4, cloneableFields.length);

-		cloneableFields = Cloner.getCloneableFieldsForType(classWithSomeCloneableFieldsType);
+		cloneableFields = Cloner.getCloneableFieldsForType(propertyLevelCloneableType);

 		assertNotNull(cloneableFields);
 		assertEquals(3, cloneableFields.length);
@@ -57,33 +58,33 @@

 	[Test]
 	public function testCloneWithClassLevelMetadata():void {
-		const clone:ClassLevelCloneable = Cloner.clone(classMarkedAsCloneable) as ClassLevelCloneable;
+		const clone:ClassLevelCloneable = Cloner.clone(classLevelCloneable) as ClassLevelCloneable;

 		assertNotNull(clone);
 		assertNotNull(clone.property1);
-		assertEquals(clone.property1, classMarkedAsCloneable.property1);
+		assertEquals(clone.property1, classLevelCloneable.property1);
 		assertNotNull(clone.property2);
-		assertEquals(clone.property2, classMarkedAsCloneable.property2);
+		assertEquals(clone.property2, classLevelCloneable.property2);
 		assertNotNull(clone.property3);
-		assertEquals(clone.property3, classMarkedAsCloneable.property3);
+		assertEquals(clone.property3, classLevelCloneable.property3);
 		assertNotNull(clone.writableField);
-		assertEquals(clone.writableField, classMarkedAsCloneable.writableField);
+		assertEquals(clone.writableField, classLevelCloneable.writableField);
 	}

 	[Test]
 	public function testCloneWithPropertyLevelMetadata():void {
 		const clone:PropertyLevelCloneable = Cloner.clone(
-				classWithSomeCloneableFields
+				propertyLevelCloneable
 		) as PropertyLevelCloneable;

 		assertNotNull(clone);
 		assertNull(clone.property1);
 		assertNotNull(clone.property2);
-		assertEquals(clone.property2, classWithSomeCloneableFields.property2);
+		assertEquals(clone.property2, propertyLevelCloneable.property2);
 		assertNotNull(clone.property3);
-		assertEquals(clone.property3, classWithSomeCloneableFields.property3);
+		assertEquals(clone.property3, propertyLevelCloneable.property3);
 		assertNotNull(clone.writableField);
-		assertEquals(clone.writableField, classWithSomeCloneableFields.writableField);
+		assertEquals(clone.writableField, propertyLevelCloneable.writableField);
 	}
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19300
Author:   harishs@adobe.com
Date:     2010-12-11T17:05:41.985690Z

Log Message:
-----------
QE notes:
Doc notes:
Bugs: No bugs fixed. Just applied code reveiw feedback.
Reviewer: Gordon Smith
Tests run: checkintests and full cyclone tests.
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>

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

--- frameworks/projects/framework/src/mx/collections/ISort.as
+++ frameworks/projects/framework/src/mx/collections/ISort.as
@@ -156,7 +156,6 @@
      *  @productversion Flex 4.5
      */
     function get unique():Boolean;
-    function set unique(value:Boolean):void;

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