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

--- frameworks/projects/rpc/src/mx/rpc/soap/SOAPFault.as
+++ frameworks/projects/rpc/src/mx/rpc/soap/SOAPFault.as
@@ -0,0 +1,115 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.rpc.soap
+{
+
+import flash.xml.XMLNode;
+import mx.rpc.Fault;
+
+/**
+ * A subclass of mx.rpc.Fault that provides SOAP specific information from
+ * a SOAP envelope Fault element.
+ */
+public class SOAPFault extends Fault
+{
+    public function SOAPFault(faultCode:QName,
+                       faultString:String,
+                       detail:String = null,
+                       element:XML = null,
+                       faultactor:String = null)
+    {
+        super(faultCode.localName, faultString, detail);
+
+        this.element = element;
+        this.faultactor = faultactor;
+        this.faultcode = faultCode;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * The raw XML of this SOAP Fault.
+     */
+    public var element:XML;
+
+    /**
+     * A SOAP Fault may provide information about who caused the fault through
+     * a faultactor property.
+     */
+    public var faultactor:String;
+
+    /**
+     * The faultcode property is similar to faultCode but exists to both
+     * match the case of the faultcode element in a SOAP Fault and to provide
+     * the fully qualified name of the code.
+     *
+     * @see mx.rpc.Fault#faultDetail
+     */
+    public var faultcode:QName;
+
+
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * The detail property is the same as faultDetail but exists
+     * to match the case of the detail element in a SOAP Fault.
+     *
+     * @see mx.rpc.Fault#faultDetail
+     */
+    public function get detail():String
+    {
+        return _faultDetail;
+    }
+
+    public function set detail(value:String):void
+    {
+        _faultDetail = value;
+    }
+
+    /**
+     * The faultstring property is the same as faultString but exists
+     * to match the case of the faultstring element in a SOAP envelope Fault.
+     *
+     * @see mx.rpc.Fault#faultString
+     */
+    public function get faultstring():String
+    {
+        return _faultString;
+    }
+
+    public function set faultstring(value:String):void
+    {
+        _faultString = value;
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+    override public function toString():String
+    {
+        return "SOAPFault (" + faultCode + "): " + faultString + " " + faultDetail;
+    }
+}
+
+}


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

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

 package
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22564
Author:   tkraikit@adobe.com
Date:     2011-09-14T19:50:07.656843Z

Log Message:
-----------
Update ASDoc "@productversion Flex 4.5.2" => "@productversion Flex 4.6"

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/OnDemandDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/FlexVersion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/FormatPattern.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListScrollerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ToggleSwitchSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImageSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/CalendarDate.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/DateTimeFormatterEx.as</path>

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

--- frameworks/projects/spark/src/spark/collections/NumericDataProvider.as
+++ frameworks/projects/spark/src/spark/collections/NumericDataProvider.as
@@ -35,7 +35,7 @@
  *  @langversion 3.0
  *  @playerversion Flash 11
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  *
  *  @see
  */
@@ -53,7 +53,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function NumericDataProvider()
     {
@@ -107,7 +107,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get maximum():Number
     {
@@ -140,7 +140,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get minimum():Number
     {
@@ -178,7 +178,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get stepSize():Number
     {
@@ -214,7 +214,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function addItem(item:Object):void
     {
@@ -229,7 +229,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function addItemAt(item:Object, index:int):void
     {
@@ -297,7 +297,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function itemUpdated(item:Object, property:Object=null, oldValue:Object=null, newValue:Object=null):void
     {
@@ -312,7 +312,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function removeAll():void
     {
@@ -327,7 +327,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function removeItemAt(index:int):Object
     {
@@ -343,7 +343,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 11
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function setItemAt(item:Object, index:int):Object
     {


Factored out slider-gen

Factored out slider-gen

--- src/LevelStates/LevelState.as
+++ src/LevelStates/LevelState.as
@@ -392,7 +392,7 @@
 			if (recentModules.length) {
 				moduleButtons.push(new TextButton( -1, -1, "---").setDisabled(true));
 				for each (moduleType in recentModules) {
-					archetype = Module.getArchetype(moduleType);
+					var archetype:Module = Module.getArchetype(moduleType);
 					moduleButtons.push(new TextButton( -1, -1, archetype.name, function chooseModule(moduleType:Class):void {
 						createNewModule(moduleType);

@@ -412,28 +412,14 @@
 			});
 			moduleList.setSpacing(4);

-			moduleSliders = new Vector.<FlxBounded>;
-			for (i = recentModules.length - 1; i >= 0; i-- ) {
-				moduleType = recentModules[i];
-				var archetype:Module = Module.getArchetype(moduleType);
-				if (archetype.canGenerateConfigurationTool()) {
-					var button:MenuButton = moduleButtons[i + ModuleCategory.ALL.length + 2];
-					var slider:FlxBounded = archetype.generateConfigurationTool(moduleList.x + moduleList.width,
-																				button.Y, button.fullHeight);
-					moduleSliders.push(slider);
-					upperLayer.add(slider.basic);
-				}
-			}
+			makeModuleSliders(recentModules, moduleButtons.slice(ModuleCategory.ALL.length + 2));

 			upperLayer.add(moduleList);

 			for (i = 1; i < ModuleCategory.ALL.length; i++) {
 				category = ModuleCategory.ALL[i-1];
-				if (!SeenModules.SEEN.unknownInListInCategory(level.allowedModules, category))
-					continue;
-
-				button = moduleButtons[i];
-				upperLayer.add(new ButtonFlasher(button));
+				if (SeenModules.SEEN.unknownInListInCategory(level.allowedModules, category))
+					upperLayer.add(new ButtonFlasher(moduleButtons[i]));
 			}
 		}

@@ -476,29 +462,14 @@
 			moduleList.setSpacing(4);

 			//make some sliders
-			moduleSliders = new Vector.<FlxBounded>;
-			for (i = 0; i < moduleTypes.length; i++ ) {
-				moduleType = moduleTypes[i];
-				archetype = Module.getArchetype(moduleType);
-				if (archetype.getConfiguration())
-				if (archetype.canGenerateConfigurationTool()) {
-					var button:MenuButton = moduleButtons[i + 1];
-					var slider:FlxBounded = archetype.generateConfigurationTool(moduleList.x + moduleList.width,
-																				button.Y, button.fullHeight);
-					moduleSliders.push(slider);
-					upperLayer.add(slider.basic);
-				}
-			}
+			moduleSliders = makeModuleSliders(moduleTypes, moduleButtons.slice(1));

 			upperLayer.add(moduleList);

 			for (i = 0; i < moduleTypes.length; i++) {
 				moduleType = moduleTypes[i];
-				if (SeenModules.SEEN.moduleSeen(moduleType))
-					continue;
-
-				button = moduleButtons[i+1]; //offset for back button
-				upperLayer.add(new ButtonFlasher(button));
+				if (!SeenModules.SEEN.moduleSeen(moduleType))
+					upperLayer.add(new ButtonFlasher(moduleButtons[i+1]));
 			}
 			SeenModules.SEEN.setSeen(moduleTypes);
 		}
@@ -526,6 +497,22 @@
 			else if (recentModules.length >= 3)
 				recentModules.pop();
 			recentModules.unshift( moduleType);
+		}
+
+		private function makeModuleSliders(moduleTypes:Vector.<Class>, moduleButtons:Vector.<MenuButton>):Vector.<FlxBounded> {
+			moduleSliders = new Vector.<FlxBounded>;
+			for (var i:int = 0; i < moduleTypes.length; i++ ) {
+				var moduleType:Class = moduleTypes[i];
+				var archetype:Module = Module.getArchetype(moduleType);
+				if (archetype.canGenerateConfigurationTool()) {
+					var button:MenuButton = moduleButtons[i];
+					var slider:FlxBounded = archetype.generateConfigurationTool(moduleList.x + moduleList.width,
+																				button.Y, button.fullHeight);
+					moduleSliders.push(slider);
+					upperLayer.add(slider.basic);
+				}
+			}
+			return moduleSliders;
 		}


Fix for multi source streams.

Fix for multi source streams.

Static watermark variables caused filtering logic to go AWOL in
multi-source scenarios.

--- HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
@@ -407,9 +407,9 @@
 			return basicProcessFileSegment(input || new ByteArray(), true);
 		}

-		public static var flvLowWaterAudio:uint = 0;
-		public static var flvLowWaterVideo:uint = 0;
-		public static var flvRecoveringIFrame:Boolean = false;
+		public var flvLowWaterAudio:uint = 0;
+		public var flvLowWaterVideo:uint = 0;
+		public var flvRecoveringIFrame:Boolean = false;
 		public const filterThresholdMs:uint = 64;

 		private function clearFLVWaterMarkFilter():void


#SUP-965 #comment on Ad error sometimes ad related UI remained on video content #time 2h

--- plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
+++ plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
@@ -237,6 +237,7 @@
 					setStartingTranslatorIndex();

 				createMediaElements();
+
 			//In case there was an error parsing or loading the VAST xml
 			} else if (e.newState == LoadState.LOAD_ERROR) {
 				//Stop the timeout timer
@@ -661,6 +662,7 @@
 				removeClickThrough();
 				sendNotification("enableGui", {guiEnabled : true, enableType : "full"});
 				dispatchEvent(new Event(VastLinearAdProxy.SIGNAL_END));
+				(facade.retrieveMediator("kMediaPlayerMediator")["player"] as MediaPlayer).removeEventListener(TimeEvent.DURATION_CHANGE, onAdDurationReceived );
 				sendNotification("sequenceItemPlayEnd");
 			}
 		}


Added setter for the percent property.

Added setter for the percent property.

--- net/flashpunk/Tween.as
+++ net/flashpunk/Tween.as
@@ -103,6 +103,7 @@
 		 * The completion percentage of the Tween.
 		 */
 		public function get percent():Number { return _time / _target; }
+		public function set percent(value:Number):void { _time = _target * value; }

 		/**
 		 * The current time scale of the Tween (after easer has been applied).


Updated docs

Updated docs

--- src/org/flintparticles/integration/away3d/v4/initializers/BufferInitializer.as
+++ src/org/flintparticles/integration/away3d/v4/initializers/BufferInitializer.as
@@ -1,4 +1,4 @@
-package org.flintparticles.threeD.away3d.away4.initializers
+package org.flintparticles.integration.away3d.v4.initializers
 {
 	import away3d.containers.ObjectContainer3D;
 	import away3d.core.base.Object3D;
@@ -16,6 +16,16 @@
 		private var _parameters:Array;
 		private var _buffer:Vector.<Object3D>=new Vector.<Object3D>();
 		private var _bufferLength:uint=0;
+		/**
+		 * imageClass -is a regular Away3D object Class
+		 * bufferLength- is the number of the image instance we want to hold in the buffer,
+		 * make sure that you take into account the life length of th particle when calculating
+		 * buffer length.So that if your particles should live between 1 and 3 seconds and you spawn
+		 * steady 300 per second the buffer should be around 900 objects in total.
+		 * parameters-are the rest of image Class constructor arguments
+		 * */
+
+
 		public function BufferInitializer(imageClass:Class,bufferLength:uint, parameters:Array)
 		{
 			//TODO: implement function
@@ -26,8 +36,7 @@

 		}
 		private function init():void{
-			//var sph:Sphere=new Sphere(
-			//	var s:Sprite3D=new Sprite3D(
+
 			var obj3d:Object3D=construct(_imageClass,_parameters);//new _imageClass(null,0,0);

@@ -52,7 +61,7 @@
 			//	trace(particle.image);
 			}
 			if(_buffer.length==0){
-			//	trace("out of particles");
+			//	do nothing
 			}
 		}
 		override public function removedFromEmitter(emitter:Emitter) : void{


Transferred from the Adobe Open Source Subversion Repository

Revision: 15909
Author:   hmuller@adobe.com
Date:     2010-05-05T20:46:25.790531Z

Log Message:
-----------
Added IGridItemRenderer and redefined GridItemRenderer as a Group subclass that implements IGridItemRenderer.  In GridColumn, don't dispatch a change event if no one is listening.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/IGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRenderer.as
@@ -0,0 +1,82 @@
+package spark.components
+{
+import spark.components.supportClasses.GridColumn;
+
+/**
+ *  Grid item renderers must implement this interface.  The Grid component
+ *  uses this API to provide the item renderer with the information needed
+ *  to render one grid cell.
+ *
+ *
This interface extends the IItemRenderer interface which is used by the List
+ *  component.  The semantics of the inherited properties are specific to Grid:
+ *

+ *
Property	Grid Usage

+ *
owner	The Grid that created this item renderer.

+ *
data	The value of the dataProvider "item" for this
+ *       row, i.e. dataProvider.getItemAt(itemIndex).  Item renderers often
+ *       bind visual element attributes to data properties.  Note that, despite its name,
+ *       this property does not depend on the column's "dataField".

+ *
itemIndexThe index of the dataProvider item for this
+ *       item renderer's row.

+ *
label	The string to display in the item
+ *       renderer's cell.  The GridItemRenderer class automatically copies the
+ *       value of this property to the text property of its labelDisplay.
+ *       The Grid sets the label to the value returned by the column's
+ *       itemToLabel() method.

+ *
selected	True if the item renderer's cell is part
+ *       of the current selection.  Unlike a List item renderer,
+ *       grid item renderers do not have exclusive responsibility for displaying the
+ *       selection indicator.  The Grid itself renders the selection indicator for the
+ *       selected row or cell.  The item renderer can also change its visual properties
+ *       to emphasize that it's part of the selection.

+ *
showsCaret	True if the item renderer's cell
+ *        is contained within the caret indicator.  As with the selected property,
+ *        grid item renderers do not have exclusive responsibility for displaying
+ *        the caret indicator.

+ *
draggable	TBD(hmulller)

+ *

+ *
+ *
All of the renderer's properties are set by Grid during updateDisplayList().
+ *  After they've been set, the renderer's preprare() method is called.  IGridItemRenderer
+ *  implementations should override the preprare() method to make any final adjustments to
+ *  its properties or any aspect of its visual elements.   When an item renderer is no longer
+ *  needed, either because it's going to be added to the Grid's internal reusable renderer "free"
+ *  list, or because it's no longer needed, the discard() method is called.

+ */
+public interface IGridItemRenderer extends IItemRenderer
+{
+
+    /**
+     *  The column for the item renderer's cell.   This property is set by the Grid by its
+     *  updateDisplayList() method.
+     */
+    function get column():GridColumn;
+    function set column(value:GridColumn):void;
+
+    /**
+     *  Called from the Grid's updateDisplayList() method after all of the
+     *  column's properties have been set.  The recycle parameter is false
+     *  if this renderer hasn't been used be for, i.e. if it wasn't "recycled".  This method is
+     *  called when a renderer is about to become visible, typically because it was
+     *  scrolled into view.
+     *
+     *
This method is not intended to be called directly, it's called by the Grid implementation.

+     *
+     *  @param recycle True if this renderer is being reused.
+     */
+    function prepare(recycle:Boolean):void;
+
+    /**
+     *  Called from the Grid's updateDisplayList() when it has been determined
+     *  that this renderer will no longer be visible.   If the recycle parameter
+     *  is true, then the Grid will add this renderer to its internal "free" list.  Implementations
+     *  can use this method to clear any renderer properties that are no longer needed.
+     *
+     *
This method is not intended to be called directly, it's called by the Grid implementation.

+     *
+     *  @param recycle True if this renderer is going to be added to the Grid's internal free list, to be reused later.
+     */
+    function discard(recycle:Boolean):void;
+}
+
+}


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

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

 package mx.containers.dividedBoxClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17483
Author:   hmuller@adobe.com
Date:     2010-08-25T21:02:17.986081Z

Log Message:
-----------
Support for DataGrid column styling.

QE notes: One reported failure in gumbo/components/DataGrid/Methods/DataGrid_Methods_basic
Doc notes:
Bugs: SDK-27436
Reviewer: Kevin, Darrel
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -908,10 +908,10 @@
     {
         renderer.visible = visible;

-        // This is needed so DataGrid's NonInheriting styles will be seen
-        // by the renderer.
-        if (renderer is ISimpleStyleClient)
-            ISimpleStyleClient(renderer).styleName = grid.gridOwner;
+        // If this renderer has not specified a styleName then use the DataGrid's styles
+        const rendererStyleClient:ISimpleStyleClient = renderer as ISimpleStyleClient;
+        if (rendererStyleClient && !rendererStyleClient.styleName)
+            rendererStyleClient.styleName = grid.gridOwner;

         const gridRenderer:IGridItemRenderer = renderer as IGridItemRenderer;
         const gridColumn:GridColumn = getGridColumn(columnIndex);


Transferred from the Adobe Open Source Subversion Repository

Revision: 6443
Author:   rfrishbe@adobe.com
Date:     2009-04-30T22:46:07.257552Z

Log Message:
-----------
Renaming SkinnableComponent's loadSkin() and unloadSkin() skinning lifecycle methods to createSkin() and destroySkin() as no loading actually occurs here.

Also fixing up a few ASDoc bugs in the videoplayer stuff.  Also, checking in modifications to TrackBase, which was a file I missed yesterday when checking in.  The changes add 3 new events to TrackBase and clean it up so the setters don't do any extra work if it's being set to the same value as it was before.

QE Notes: -
Doc Notes: -
Bugs: SDK-19779
Reviewer: Jason
tests: checkintests, mustella SkinnableComponent tests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerScrubBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBarMuteButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
+++ frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
@@ -66,14 +66,14 @@
 /**
  *  Dispatched when the user presses the mute button control.
  *
- *  @eventType mx.events.FlexEvent
+ *  @eventType flash.events.MouseEvent
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="muteButtonClick", type="mx.events.MouseEvent")]
+[Event(name="muteButtonClick", type="flash.events.MouseEvent")]

 /**
  *  Open State of the DropDown component
@@ -86,10 +86,10 @@
 [SkinState("open")]

 /**
- *  The VideoPlayerVolumeBar is a drop-down button
- *  that functions as a mute/unmute button and also has a
- *  pop-up to control the volume.
- *
+ *  The VideoPlayerVolumeBar is a drop-down slider to control
+ *  the volume of the video player.  By default it pops up when the
+ *  muteButton is rolled over (with a delay of 200 milliseconds).  The
+ *  muteButton functions as a mute/unmute button when clicked.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/containers/utilityClasses/FlexChildInfo.as
+++ frameworks/projects/framework/src/mx/containers/utilityClasses/FlexChildInfo.as
@@ -32,6 +32,11 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function FlexChildInfo()
 	{


Setting length of arrays before adding items

--- WeaveData/src/weave/data/DataSources/CSVDataSource.as
+++ WeaveData/src/weave/data/DataSources/CSVDataSource.as
@@ -391,7 +391,7 @@
 				var newColumn:IAttributeColumn;
 				if (isNumericColumn)
 				{
-					var numericVector:Vector.<Number> = new Vector.<Number>();
+					var numericVector:Vector.<Number> = new Vector.<Number>(csvDataColumn.length);
 					for (i = 0; i < csvDataColumn.length; i++)
 						numericVector[i] = getNumberFromString(csvDataColumn[i]);

@@ -422,6 +422,7 @@
 		 */
 		private function getColumnValues(rows:Array, columnIndex:int, outputArrayOrVector:*):void
 		{
+			outputArrayOrVector.length = rows.length;
 			var i:int;
 			if (columnIndex < 0)
 			{
@@ -435,7 +436,6 @@
 				for (i = 1; i < rows.length; i++)
 					outputArrayOrVector[i-1] = rows[i][columnIndex];
 			}
-			outputArrayOrVector.length = rows.length;
 		}

 		private function getNumberFromString(value:String):Number


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

--- frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.as
+++ frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.as
@@ -0,0 +1,233 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+
+/**
+ *  The DefaultSummaryCalculator class provides summary calculation logic for
+ *  SUM, MIN, MAX, AVG, and COUNT operations.
+ *
+ *  @see mx.collections.SummaryField2
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 4
+ */
+public class DefaultSummaryCalculator implements ISummaryCalculator
+{
+	//--------------------------------------------------------------------------
+	//
+	// Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+ 	public function summaryCalculationBegin(field:SummaryField2):Object
+ 	{
+		var dataField:String = field.dataField;
+		var newObj:Object = {};
+		switch (field.summaryOperation)
+		{
+			case "SUM": newObj[dataField] = 0;
+						break;
+			case "MIN": newObj[dataField] = Number.MAX_VALUE;
+						break;
+			case "MAX": newObj[dataField] = -Number.MAX_VALUE;
+						break;
+			case "COUNT": newObj[dataField] = [];
+						  newObj[dataField + "Counter"] = 0;
+						  break;
+			case "AVG": newObj[dataField] = 0;
+						newObj[dataField + "Count"] = 0;
+						break;
+		}
+		return newObj;
+ 	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+ 	public function calculateSummary(data:Object, field:SummaryField2, rowData:Object):void
+ 	{
+		var dataField:String = field.dataField;
+		var value:Number = rowData[dataField];
+		if (typeof(value) == "xml")
+			value = Number(value.toString());
+
+		switch (field.summaryOperation)
+		{
+			case "SUM": if (!data.hasOwnProperty(dataField))
+							data[dataField] = value ;
+						else
+							data[dataField] += value;
+						break;
+			case "MIN": if (!data.hasOwnProperty(dataField))
+							data[dataField] = value;
+						else
+							data[dataField] =  data[dataField] < value ? data[dataField] : value;
+						break;
+			case "MAX": if (!data.hasOwnProperty(dataField))
+							data[dataField] = value;
+						else
+							data[dataField] =  data[dataField] > value ? data[dataField] : value;
+						break;
+			case "COUNT": if (!data.hasOwnProperty(dataField))
+						  {
+							  data[dataField] = [rowData[dataField]];
+							  data[dataField + "Counter"] = 1;
+						  }
+						  else
+						  {
+							  data[dataField].push(rowData[dataField]);
+							  data[dataField + "Counter"] = data[dataField + "Counter"] + 1;
+						  }
+						  break;
+			case "AVG": if (!data.hasOwnProperty(dataField))
+						{
+							data[dataField] = value;
+							data[dataField + "Count"] = 1;
+						}
+						else
+						{
+							data[dataField] += value;
+							data[dataField + "Count"] = data[dataField + "Count"] + 1;
+						}
+						break;
+		}
+ 	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+ 	public function returnSummary(data:Object, field:SummaryField2):Number
+ 	{
+		var summary:Number = 0;
+		var dataField:String = field.dataField;
+		switch (field.summaryOperation)
+		{
+			case "SUM":
+			case "MIN":
+			case "MAX": summary = data[dataField];
+						break;
+			case "COUNT": 	summary = data[dataField + "Counter"];
+							break;
+			case "AVG": summary = data[dataField]/data[dataField + "Count"];
+						break;
+		}
+
+		return summary;
+ 	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	public function summaryOfSummaryCalculationBegin(value:Object, field:SummaryField2):Object
+	{
+		var newObj:Object = {};
+		for (var p:String in value)
+		{
+			newObj[p] = value[p];
+		}
+		return newObj;
+	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	public function calculateSummaryOfSummary(oldValue:Object, newValue:Object, field:SummaryField2):void
+	{
+		var p:String;
+		switch (field.summaryOperation)
+		{
+			case "AVG":
+			case "SUM": for (p in newValue)
+						{
+							oldValue[p] += newValue[p];
+						}
+						break;
+			case "MIN": for (p in newValue)
+						{
+							oldValue[p] = oldValue[p] < newValue[p] ? oldValue[p] : newValue[p];
+						}
+						break;
+			case "MAX": for (p in newValue)
+						{
+							oldValue[p] = oldValue[p] > newValue[p] ? oldValue[p] : newValue[p];
+						}
+						break;
+			case "COUNT": 	for (p in newValue)
+							{
+								if (oldValue[p] is Array)
+									oldValue[p] = oldValue[p].concat(newValue[p]);
+								else
+									oldValue[p] += newValue[p];
+							}
+							break;
+		}
+	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	public function returnSummaryOfSummary(oldValue:Object, field:SummaryField2):Number
+	{
+		var summary:Number = 0;
+		var dataField:String = field.dataField;
+		switch (field.summaryOperation)
+		{
+			case "SUM":
+			case "MIN":
+			case "MAX": summary = oldValue[dataField];
+						break;
+			case "COUNT":   summary = oldValue[dataField + "Counter"];
+							break;
+			case "AVG": summary = oldValue[dataField]/oldValue[dataField + "Count"];
+						break;
+		}
+
+		return summary;
+	}
+}
+}


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

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

 package mx.graphics
 {


fixed DrawCall.setBindings() to use DataBindings.propertyExists() instead of testing the actual value of the property

--- src/aerys/minko/render/DrawCall.as
+++ src/aerys/minko/render/DrawCall.as
@@ -234,11 +234,10 @@
 					parameterChangedHandler
 				);

-				var value : Object = meshBindings.getProperty(parameter)
-					|| sceneBindings.getProperty(parameter);
-
-				if (value)
-					setParameter(parameter, value);
+				if (meshBindings.propertyExists(parameter))
+					setParameter(parameter, meshBindings.getProperty(parameter));
+				else if (sceneBindings.propertyExists(parameter))
+					setParameter(parameter, sceneBindings.getProperty(parameter));
 			}
 		}


Fix for typo

Fix for typo

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
@@ -258,7 +258,7 @@
         }
         else if (q is String)
         {
-            qname.localName == q;
+            qname.localName = q;
             qname.uri="";
         }


add TransformController.setSharedLocalToWorldTransformReference() and TransformController.setSharedWorldToLocalTransformReference() to share Matrix4x4 references and avoid copies

--- src/aerys/minko/scene/controller/TransformController.as
+++ src/aerys/minko/scene/controller/TransformController.as
@@ -24,23 +24,26 @@
      */
     public final class TransformController extends AbstractController
     {
-        private static const INIT_NONE                  : uint  = 0;
-        private static const INIT_LOCAL_TO_WORLD        : uint  = 1;
-        private static const INIT_WORLD_TO_LOCAL        : uint  = 2;
-
-        private var _target								: ISceneNode;
-
-        private var _invalidList						: Boolean;
-
-        private var _nodeToId							: Dictionary;
-        private var _idToNode							: Vector.<ISceneNode>
-        private var _transforms							: Vector.<Matrix4x4>;
-        private var _initialized	                    : Vector.<uint>;
-        private var _localToWorldTransforms 			: Vector.<Matrix4x4>;
-        private var _worldToLocalTransforms 			: Vector.<Matrix4x4>;
-        private var _numChildren						: Vector.<uint>;
-        private var _firstChildId						: Vector.<uint>;
-        private var _parentId							: Vector.<int>;
+
+        private static const FLAG_NONE                      : uint  = 0;
+        private static const FLAG_INIT_LOCAL_TO_WORLD       : uint  = 1;
+        private static const FLAG_INIT_WORLD_TO_LOCAL       : uint  = 2;
+        private static const FLAG_SYNCHRONIZE_TRANSFORMS    : uint  = 4;
+        private static const FLAG_LOCK_TRANSFORMS           : uint  = 8;
+
+        private var _target					: ISceneNode;
+
+        private var _invalidList			: Boolean;
+
+        private var _nodeToId				: Dictionary;
+        private var _idToNode				: Vector.<ISceneNode>
+        private var _transforms				: Vector.<Matrix4x4>;
+        private var _flags	                : Vector.<uint>;
+        private var _localToWorldTransforms : Vector.<Matrix4x4>;
+        private var _worldToLocalTransforms : Vector.<Matrix4x4>;
+        private var _numChildren			: Vector.<uint>;
+        private var _firstChildId			: Vector.<uint>;
+        private var _parentId				: Vector.<int>;

         public function TransformController()
         {
@@ -62,30 +65,53 @@
                 updateLocalToWorld();
         }

-        private function updateLocalToWorld(nodeId : uint = 0, subtreeOnly : Boolean = false) : void
-        {
-            var numNodes 			: uint 			= _transforms.length;
-            var childrenOffset		: uint			= 1;
+        private function updateRootLocalToWorld(nodeId : uint = 0) : void
+        {
             var rootLocalToWorld	: Matrix4x4		= _localToWorldTransforms[nodeId];
             var rootTransform		: Matrix4x4		= _transforms[nodeId];
             var root				: ISceneNode	= _idToNode[nodeId];
-            var subtreeMax          : uint          = nodeId;
-
-            if (rootTransform._hasChanged || _initialized[nodeId] == INIT_NONE)
-            {
+            var rootFlags           : uint          = _flags[nodeId];
+
+            if (rootTransform._hasChanged || !(rootFlags & FLAG_INIT_LOCAL_TO_WORLD))
+            {
+                if (rootFlags & FLAG_LOCK_TRANSFORMS)
+                    rootLocalToWorld.lock();
+
                 rootLocalToWorld.copyFrom(rootTransform);

                 if (nodeId != 0)
                     rootLocalToWorld.append(_localToWorldTransforms[_parentId[nodeId]]);

+                if (rootFlags & FLAG_LOCK_TRANSFORMS)
+                    rootLocalToWorld.unlock();
+
                 rootTransform._hasChanged = false;
-                _initialized[nodeId] = INIT_LOCAL_TO_WORLD;
+                _flags[nodeId] |= FLAG_INIT_LOCAL_TO_WORLD;
                 root.localToWorldTransformChanged.execute(root, rootLocalToWorld);
-            }
+
+                if (rootFlags & FLAG_SYNCHRONIZE_TRANSFORMS)
+                {
+                    var rootWorldToLocal : Matrix4x4 = _worldToLocalTransforms[nodeId]
+                        || (_worldToLocalTransforms[nodeId] = new Matrix4x4());
+
+                    if (rootFlags & FLAG_LOCK_TRANSFORMS)
+                        rootWorldToLocal.lock();
+
+                    rootWorldToLocal.copyFrom(rootLocalToWorld).invert();
+
+                    if (rootFlags & FLAG_LOCK_TRANSFORMS)
+                        rootWorldToLocal.unlock();
+                }
+            }
+        }
+
+        private function updateLocalToWorld(nodeId : uint = 0, subtreeOnly : Boolean = false) : void
+        {
+            var numNodes 			: uint 			= _transforms.length;
+            var subtreeMax          : uint          = nodeId;
+
+            updateRootLocalToWorld(nodeId);

-            if (lastChildId > subtreeMax)
-                subtreeMax = lastChildId;
-
             while (nodeId < numNodes)
             {
                 var localToWorld 	: Matrix4x4	= _localToWorldTransforms[nodeId];
@@ -96,24 +122,48 @@

                 localToWorld._hasChanged = false;

+                if (lastChildId > subtreeMax)
+                    subtreeMax = lastChildId;
+
                 for (var childId : uint = firstChildId; childId < lastChildId; ++childId)
                 {
                     var childTransform		: Matrix4x4		= _transforms[childId];
                     var childLocalToWorld	: Matrix4x4		= _localToWorldTransforms[childId];
+                    var childFlags          : uint          = _flags[childId];
                     var childIsDirty		: Boolean		= isDirty || childTransform._hasChanged
-                        || !_initialized[childId];
+                        || !(childFlags & FLAG_INIT_LOCAL_TO_WORLD);

                     if (childIsDirty)
                     {
                         var child	: ISceneNode	= _idToNode[childId];

+                        if (childFlags & FLAG_LOCK_TRANSFORMS)
+                            childLocalToWorld.lock();
+
                         childLocalToWorld
                             .copyFrom(childTransform)
                             .append(localToWorld);
+
+                        if (childFlags & FLAG_LOCK_TRANSFORMS)
+                            childLocalToWorld.unlock();

                         childTransform._hasChanged = false;
-                        _initialized[childId] = INIT_LOCAL_TO_WORLD;
+                        _flags[childId] |= FLAG_INIT_LOCAL_TO_WORLD;
                         child.localToWorldTransformChanged.execute(child, childLocalToWorld);
+
+                        if (childFlags & FLAG_SYNCHRONIZE_TRANSFORMS)
+                        {
+                            var childWorldToLocal : Matrix4x4 = _worldToLocalTransforms[childId]
+                                || (_worldToLocalTransforms[childId] = new Matrix4x4());
+
+                            if (childFlags & FLAG_LOCK_TRANSFORMS)
+                                childWorldToLocal.lock();
+
+                            childWorldToLocal.copyFrom(childLocalToWorld).invert();
+
+                            if (childFlags & FLAG_LOCK_TRANSFORMS)
+                                childWorldToLocal.unlock();
+                        }
                     }
                 }

@@ -142,7 +192,7 @@

             while (nodeId >= 0)
             {
-                if ((_transforms[nodeId] as Matrix4x4)._hasChanged || !_initialized[nodeId])
+                if ((_transforms[nodeId] as Matrix4x4)._hasChanged || !_flags[nodeId])
                     dirtyRoot = nodeId;

                 nodeId = _parentId[nodeId];
@@ -196,7 +246,7 @@

             _nodeToId = null;
             _transforms = null;
-            _initialized = null;
+            _flags = null;
             _localToWorldTransforms = null;
             _worldToLocalTransforms = null;
             _numChildren = null;
@@ -234,19 +284,27 @@
             _invalidList = true;
         }

+        private function getNodeId(node : ISceneNode) : uint
+        {
+            if (_invalidList || !(node in _nodeToId))
+                updateTransformsList();
+
+            return _nodeToId[node];
+        }
+
         private function updateTransformsList() : void
         {
             var root    	                : ISceneNode 			= _target.root;
             var nodes   	                : Vector.<ISceneNode> 	= new <ISceneNode>[root];
             var nodeId  	                : uint 					= 0;
             var oldNodeToId                 : Dictionary            = _nodeToId;
-            var oldInitialized              : Vector.<uint>         = _initialized;
+            var oldInitialized              : Vector.<uint>         = _flags;
             var oldLocalToWorldTransforms   : Vector.<Matrix4x4>    = _localToWorldTransforms;
             var oldWorldToLocalTransform    : Vector.<Matrix4x4>    = _worldToLocalTransforms;

             _nodeToId = new Dictionary(true);
             _transforms = new <Matrix4x4>[];
-            _initialized = new <uint>[];
+            _flags = new <uint>[];
             _localToWorldTransforms = new <Matrix4x4>[];
             _worldToLocalTransforms = new <Matrix4x4>[];
             _numChildren = new <uint>[];
@@ -269,13 +327,13 @@

                     _localToWorldTransforms[nodeId] = oldLocalToWorldTransforms[oldNodeId];
                     _worldToLocalTransforms[nodeId] = oldWorldToLocalTransform[oldNodeId];
-                    _initialized[nodeId] = oldInitialized[oldNodeId];
+                    _flags[nodeId] = oldInitialized[oldNodeId];
                 }
                 else
                 {
                     _localToWorldTransforms[nodeId] = new Matrix4x4().lock();
                     _worldToLocalTransforms[nodeId] = null;
-                    _initialized[nodeId] = INIT_NONE;
+                    _flags[nodeId] = FLAG_NONE;
                 }

                 if (group)
@@ -307,10 +365,7 @@
         public function getLocalToWorldTransform(node 			: ISceneNode,
                                                  forceUpdate 	: Boolean = false) : Matrix4x4
         {
-            if (_invalidList || _nodeToId[node] == undefined)
-                updateTransformsList();
-
-            var nodeId : uint = _nodeToId[node];
+            var nodeId : uint = getNodeId(node);

             if (forceUpdate)
                 updateAncestorsAndSelfLocalToWorld(nodeId);
@@ -321,10 +376,7 @@
         public function getWorldToLocalTransform(node           : ISceneNode,
                                                  forceUpdate    : Boolean   = false) : Matrix4x4
         {
-            if (_invalidList || _nodeToId[node] == undefined)
-                updateTransformsList();
-
-            var nodeId                  : uint      = _nodeToId[node];
+            var nodeId                  : uint      = getNodeId(node);
             var worldToLocalTransform   : Matrix4x4 = _worldToLocalTransforms[nodeId];

             if (!worldToLocalTransform)
@@ -333,23 +385,69 @@
                 if (!forceUpdate)
                 {
                     worldToLocalTransform.copyFrom(_localToWorldTransforms[nodeId]).invert();
-                    _initialized[nodeId] |= INIT_WORLD_TO_LOCAL;
+                    _flags[nodeId] |= FLAG_INIT_WORLD_TO_LOCAL;
                 }
             }

             if (forceUpdate)
                 updateAncestorsAndSelfLocalToWorld(nodeId);
-
-            if (!(_initialized[nodeId] & INIT_WORLD_TO_LOCAL))
-            {
-                _initialized[nodeId] |= INIT_WORLD_TO_LOCAL;
+
+            var flags : uint = _flags[nodeId];
+
+            if (!(flags & FLAG_INIT_WORLD_TO_LOCAL))
+            {
+                _flags[nodeId] |= FLAG_INIT_WORLD_TO_LOCAL;
+
+                if (flags & FLAG_LOCK_TRANSFORMS)
+                    worldToLocalTransform.lock();

                 worldToLocalTransform
                     .copyFrom(_localToWorldTransforms[nodeId])
                     .invert();
+
+                if (flags & FLAG_LOCK_TRANSFORMS)
+                    worldToLocalTransform.unlock();
             }

             return worldToLocalTransform;
+        }
+
+        public function setSharedLocalToWorldTransformReference(node      : ISceneNode,
+                                                                matrix    : Matrix4x4) : void
+        {
+            var nodeId : uint = getNodeId(node);
+
+            if (_flags[nodeId] & FLAG_INIT_LOCAL_TO_WORLD)
+                matrix.copyFrom(_localToWorldTransforms[nodeId]);
+            _localToWorldTransforms[nodeId] = matrix;
+        }
+
+        public function setSharedWorldToLocalTransformReference(node      : ISceneNode,
+                                                                matrix    : Matrix4x4) : void
+        {
+            var nodeId : uint = getNodeId(node);
+
+            if (_flags[nodeId] & FLAG_INIT_WORLD_TO_LOCAL)
+                matrix.copyFrom(_worldToLocalTransforms[nodeId]);
+            _worldToLocalTransforms[nodeId] = matrix;
+        }
+
+        public function synchronizeTransforms(node : ISceneNode, enabled : Boolean) : void
+        {
+            var nodeId : uint = getNodeId(node);
+
+            _flags[nodeId] = enabled
+                ? _flags[nodeId] | FLAG_SYNCHRONIZE_TRANSFORMS
+                : _flags[nodeId] & ~FLAG_SYNCHRONIZE_TRANSFORMS;
+        }
+
+        public function lockTransformsBeforeUpdate(node : ISceneNode, enabled : Boolean) : void
+        {
+            var nodeId : uint = getNodeId(node);
+
+            _flags[nodeId] = enabled
+                ? _flags[nodeId] | FLAG_LOCK_TRANSFORMS
+                : _flags[nodeId] & ~FLAG_LOCK_TRANSFORMS;
         }
     }
 }


Avoid crash when KeyActionBinder.stop() called from action handler.

--- src/com/zehfernando/input/binding/KeyActionBinder.as
+++ src/com/zehfernando/input/binding/KeyActionBinder.as
@@ -594,7 +594,7 @@
 				}

 				// Find "split" controls, where one control has more than one binding
-				if (gameInputDeviceDefinitions[deviceIndex].controlsSplit.hasOwnProperty(control.id)) {
+				if (gameInputDeviceDefinitions.length && gameInputDeviceDefinitions[deviceIndex].controlsSplit.hasOwnProperty(control.id)) {
 					var deviceControlInfos:Vector.<AutoGamepadControlInfo> = gameInputDeviceDefinitions[deviceIndex].controlsSplit[control.id];
 					var i:uint;
 					for (i = 0; i < deviceControlInfos.length; i++) {


Updates for popouts

Updates for popouts

--- src/org/jivesoftware/xiff/core/XMPPBOSHConnection.as
+++ src/org/jivesoftware/xiff/core/XMPPBOSHConnection.as
@@ -56,17 +56,38 @@

 		private var callbacks:Object = {};

-		public function resumeExistingConnection(existingSID:String, lastRID:Number, pollTime:Date, secureSetting:Boolean, holdSetting:Number, portSetting:Number, pollingInterval:Number):void
-		{
+		private static const stateVersion:String = "1";
+
+		public function set serializedState (state:XML):void
+		{
+			if(active)
+				throw new Error("Can't unserialize into an already active connection");
+
 			BindExtension.enable();
-			sid = existingSID;
-			rid = lastRID;
-			secure = secureSetting;
-			port = portSetting;
-			boshPollingInterval = pollingInterval;
+			sid = state.sid;
+			rid = state.rid;
+			var tempJID:JID = new JID(state.jid);
+			myUsername = tempJID.node;
+			port = state.port;
+			server = state.domain;
+			boshPollingInterval = state.pollingInterval;
+			secure = state.secure;

 			active = true;
 			loggedIn = true;
+		}
+
+		public function get serializedState ():XML
+		{
+			return <state version={stateVersion}>
+						<sid>{sid}</sid>
+						<rid>{rid}</rid>
+						<secure>{https}</secure>
+						<port>{port}</port>
+						<domain>{server}</domain>
+						<jid>{jid}</jid>
+						<pollingInterval>{boshPollingInterval}</pollingInterval>
+					</state>;
 		}

 		public override function connect(streamType:String=null):Boolean


Transferred from the Adobe Open Source Subversion Repository

Revision: 18231
Author:   rfrishbe@adobe.com
Date:     2010-10-19T23:46:20.180026Z

Log Message:
-----------
Changing ActionBarSkin, TextInputSkin, and ButtonBaseSkin for performance reasons so we don't call measureText() anymore (atleast in the 90% case--when the label is empty, we still might call measureText()).  We now rely on textWidth and textHeight.

For TextInput, the measured size algorithm now doesn't use maxChars * (measureText("W")).  Instead it uses maxChars * (fontSize-2).  The mesureText("W") was only an approximation and seemed to large in most cases.  Using fontSize is a much cheaper approximation and seems to work just as well.

QE notes: None
Doc notes: None
Bugs: -
Reviewer: Jason SJ
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
@@ -16,7 +16,6 @@
 import flash.events.Event;
 import flash.geom.Matrix;
 import flash.text.TextFormatAlign;
-import flash.text.TextLineMetrics;

 import mx.core.UIComponent;
 import mx.core.UITextField;
@@ -448,20 +447,26 @@
     {
         var textWidth:Number = 0;
         var textHeight:Number = 0;
-        var lineMetrics:TextLineMetrics;
+
+        // reset text if it was truncated before.
+        if (titleDisplay.isTruncated)
+            titleDisplay.text = title;
+        titleDisplay.commitStyles();

         if (title != "")
         {
-            lineMetrics = measureText(title);
-            textWidth = lineMetrics.width + TEXT_WIDTH_PADDING;
+            textWidth = titleDisplay.textWidth + TEXT_WIDTH_PADDING;
+            textHeight = titleDisplay.textHeight + UITextField.TEXT_HEIGHT_PADDING;
+            descent = titleDisplay.getLineMetrics(0).descent;
         }
         else
         {
-            lineMetrics = measureText("Wj");
-        }
-
-        textHeight = lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING;
-        descent = lineMetrics.descent;
+            // ignore text width...we just need textHeight, but we need to use
+            // measureText("Wj") to figure this out
+            var lineMetrics:TextLineMetrics = measureText("Wj");
+            textHeight = measureText("Wj").height + UITextField.TEXT_HEIGHT_PADDING;
+            descent = lineMetrics.descent;
+        }

         measuredWidth = textWidth;
         measuredHeight = textHeight;
@@ -471,13 +476,15 @@
     {
         super.updateDisplayList(unscaledWidth, unscaledHeight);

-        titleDisplay.commitStyles();
         titleDisplay.width = unscaledWidth;
         titleDisplay.height = unscaledHeight;

-        // before truncating text, we need to reset it to its original value
+        // reset text if it was truncated before.
         if (titleDisplay.isTruncated)
             titleDisplay.text = title;
+        titleDisplay.commitStyles();
+
+        // now truncate the text
         titleDisplay.truncateToFit();

         titleDisplayShadow.commitStyles();


specified images are now displayed whether or not the geometry data is
point data

Change-Id: Iae398e12c7a0c13995575fa73e2d0f6a6d9c29f1

--- WeaveUISpark/src/weave/visualization/plotters/GeometryPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/GeometryPlotter.as
@@ -352,6 +352,7 @@
 			if (debugGridSkip)
 				simplifyDataBounds = null;

+			var drawImages:Boolean = pointDataImageColumn.getInternalColumn() != null;
 			var recordIndex:Number = task.asyncState[RECORD_INDEX];
 			var minImportance:Number = task.asyncState[MIN_IMPORTANCE];
 			var d_progress:Dictionary = task.asyncState[D_PROGRESS];
@@ -370,34 +371,47 @@
 					_singleGeom[0] = value;
 				}

-				if (geoms && geoms.length > 0)
-				{
-					var graphics:Graphics = tempShape.graphics;
-					var styleSet:Boolean = false;
+				for (var pass:int = 0; pass < 2; pass++)
+				{
+					if (pass == 1 && !drawImages)
+						break;

-					// draw the geom
-					for (var i:int = 0; i < geoms.length; i++)
+					if (geoms && geoms.length > 0)
 					{
-						var geom:GeneralizedGeometry = geoms[i] as GeneralizedGeometry;
-						if (geom)
+						var graphics:Graphics = tempShape.graphics;
+						var styleSet:Boolean = false;
+
+						// draw the geom
+						for (var i:int = 0; i < geoms.length; i++)
 						{
-							// skip shapes that are considered unimportant at this zoom level
-							if (geom.geomType == GeometryType.POLYGON && geom.bounds.getArea() < minImportance)
-								continue;
-							if (!styleSet)
+							var geom:GeneralizedGeometry = geoms[i] as GeneralizedGeometry;
+							if (geom)
 							{
-								graphics.clear();
-								fill.beginFillStyle(recordKey, graphics);
-								line.beginLineStyle(recordKey, graphics);
-								styleSet = true;
+								// skip shapes that are considered unimportant at this zoom level
+								if (geom.geomType == GeometryType.POLYGON && geom.bounds.getArea() < minImportance)
+									continue;
+								if (pass == 0)
+								{
+									if (!styleSet)
+									{
+										graphics.clear();
+										fill.beginFillStyle(recordKey, graphics);
+										line.beginLineStyle(recordKey, graphics);
+										styleSet = true;
+									}
+									drawMultiPartShape(recordKey, geom, geom.getSimplifiedGeometry(minImportance, simplifyDataBounds), task.dataBounds, task.screenBounds, graphics, task.buffer);
+								}
+								else
+								{
+									drawImage(recordKey, geom.bounds.getXCenter(), geom.bounds.getYCenter(), task.dataBounds, task.screenBounds, graphics, task.buffer);
+								}
 							}
-							drawMultiPartShape(recordKey, geom.getSimplifiedGeometry(minImportance, simplifyDataBounds), geom.geomType, task.dataBounds, task.screenBounds, graphics, task.buffer);
 						}
-					}
-					if (styleSet)
-					{
-						graphics.endFill();
-						task.buffer.draw(tempShape);
+						if (pass == 0 && styleSet)
+						{
+							graphics.endFill();
+							task.buffer.draw(tempShape);
+						}
 					}
 				}

@@ -443,25 +457,26 @@

 		/**
 		 * This function draws a list of GeneralizedGeometry objects
-		 * @param geometryParts A 2-dimensional Array or Vector of objects, each having x and y properties.
-		 */
-		private function drawMultiPartShape(key:IQualifiedKey, geometryParts:Object, shapeType:String, dataBounds:IBounds2D, screenBounds:IBounds2D, graphics:Graphics, bitmapData:BitmapData):void
-		{
-			for (var i:int = 0; i < geometryParts.length; i++)
-				drawShape(key, geometryParts[i], shapeType, dataBounds, screenBounds, graphics, bitmapData);
+		 * @param geomParts A 2-dimensional Array or Vector of objects, each having x and y properties.
+		 */
+		private function drawMultiPartShape(key:IQualifiedKey, geom:GeneralizedGeometry, geomParts:Object, dataBounds:IBounds2D, screenBounds:IBounds2D, graphics:Graphics, bitmapData:BitmapData):void
+		{
+			var geomType:String = geom.geomType;
+			for (var i:int = 0; i < geomParts.length; i++)
+				drawShape(key, geomParts[i], geomType, dataBounds, screenBounds, graphics, bitmapData);
 		}
 		/**
 		 * This function draws a single geometry.
 		 * @param points An Array or Vector of objects, each having x and y properties.
 		 */
-		private function drawShape(key:IQualifiedKey, points:Object, shapeType:String, dataBounds:IBounds2D, screenBounds:IBounds2D, outputGraphics:Graphics, outputBitmapData:BitmapData):void
+		private function drawShape(key:IQualifiedKey, points:Object, geomType:String, dataBounds:IBounds2D, screenBounds:IBounds2D, outputGraphics:Graphics, outputBitmapData:BitmapData):void
 		{
 			if (points.length == 0)
 				return;

 			var currentNode:Object;

-			if (shapeType == GeometryType.POINT)
+			if (geomType == GeometryType.POINT)
 			{
 				for each (currentNode in points)
 				{
@@ -471,27 +486,13 @@
 					// round coordinates for faster & more consistent rendering
 					tempPoint.x = Math.round(tempPoint.x);
 					tempPoint.y = Math.round(tempPoint.y);
-					if (pointDataImageColumn.getInternalColumn())
-					{
-						var bitmapData:BitmapData = pointDataImageColumn.getValueFromKey(key) || _missingImage;
-						var imgWidth:Number = useFixedImageSize.value ? iconSize.value : bitmapData.width;
-						var imgHeight:Number = useFixedImageSize.value ? iconSize.value : bitmapData.height;
-						tempMatrix.identity();
-						if (useFixedImageSize.value)
-							tempMatrix.scale(iconSize.value / bitmapData.width, iconSize.value / bitmapData.height);
-						tempMatrix.translate(tempPoint.x - imgWidth / 2, tempPoint.y - imgHeight / 2);
-						outputBitmapData.draw(bitmapData, tempMatrix, null, null, null, true);
-					}
-					else
-					{
-						drawCircle(outputBitmapData, fill.color.getValueFromKey(key, Number), tempPoint.x, tempPoint.y);
-					}
+					drawCircle(outputBitmapData, fill.color.getValueFromKey(key, Number), tempPoint.x, tempPoint.y);
 				}
 				return;
 			}

 			// prevent moveTo/lineTo from drawing a filled polygon if the shape type is line
-			if (shapeType == GeometryType.LINE)
+			if (geomType == GeometryType.LINE)
 				outputGraphics.endFill();

 			var numPoints:int = points.length;
@@ -528,11 +529,34 @@
 				outputGraphics.lineTo(x, y);
 			}

-			if (debug)
-				return;
-
-			if (shapeType == GeometryType.POLYGON)
-				outputGraphics.lineTo(firstX, firstY);
+			if (!debug)
+				if (geomType == GeometryType.POLYGON)
+					outputGraphics.lineTo(firstX, firstY);
+		}
+
+		private function drawImage(key:IQualifiedKey, dataX:Number, dataY:Number, dataBounds:IBounds2D, screenBounds:IBounds2D, outputGraphics:Graphics, outputBitmapData:BitmapData):void
+		{
+			tempPoint.x = dataX;
+			tempPoint.y = dataY;
+			dataBounds.projectPointTo(tempPoint, screenBounds);
+			// round coordinates for faster & more consistent rendering
+			tempPoint.x = Math.round(tempPoint.x);
+			tempPoint.y = Math.round(tempPoint.y);
+
+			var bitmapData:BitmapData = pointDataImageColumn.getValueFromKey(key) || _missingImage;
+			var w:Number = bitmapData.width;
+			var h:Number = bitmapData.height;
+			tempMatrix.identity();
+			if (useFixedImageSize.value)
+			{
+				var maxSize:Number = Math.max(w, h);
+				var scale:Number = iconSize.value / maxSize;
+				tempMatrix.scale(scale, scale);
+				tempMatrix.translate(Math.round(Math.abs(maxSize - w) / 2), Math.round(Math.abs(maxSize - h) / 2));
+				w = h = iconSize.value;
+			}
+			tempMatrix.translate(Math.round(tempPoint.x - w / 2), Math.round(tempPoint.y - h / 2));
+			outputBitmapData.draw(bitmapData, tempMatrix, null, null, null, true);
 		}

 		public function dispose():void


Must use bracket syntax to keep closure compiler from renaming fields

--- examples/FlexJSTest_again/src/StockDataJSONItemConverter.as
+++ examples/FlexJSTest_again/src/StockDataJSONItemConverter.as
@@ -30,7 +30,7 @@
         override public function convertItem(data:String):Object
         {
             var obj:Object = super.convertItem(data);
-            return obj.query.results.quote.Ask;
+            return obj['query']['results']['quote']['Ask'];
         }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11910
Author:   gruehle@adobe.com
Date:     2009-11-17T21:47:03.551464Z

Log Message:
-----------
Move halo WindowBackground skin to the Halo theme project from airframework. This fixes the problem with building Halo as a CSS module.

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

Modified Paths:
--------------
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/AIRFrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/HaloClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/WindowBackground.as</path>

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

--- frameworks/projects/airframework/src/AIRFrameworkClasses.as
+++ frameworks/projects/airframework/src/AIRFrameworkClasses.as
@@ -24,7 +24,6 @@

     import mx.managers.NativeDragManagerImpl; NativeDragManagerImpl;
     import mx.skins.halo.StatusBarBackgroundSkin; StatusBarBackgroundSkin;
-    import mx.skins.halo.WindowBackground; WindowBackground
     import mx.skins.halo.ApplicationTitleBarBackgroundSkin; ApplicationTitleBarBackgroundSkin;
     import mx.skins.halo.WindowCloseButtonSkin; WindowCloseButtonSkin;
     import mx.skins.halo.WindowMinimizeButtonSkin; WindowMinimizeButtonSkin;


Transferred from the Adobe Open Source Subversion Repository

Revision: 9779
Author:   chaase@adobe.com
Date:     2009-08-29T01:17:24.968838Z

Log Message:
-----------
Fixed bug with transform effects acting on optimized FXG objects. We did not have some of the required functionality on SpriteVisualElement that would allow objects of that type (optimized FXG objects) to be animated by the flex 4 transform effects. We have added that functionality and pushed that common property (postLayoutTransformOffsets) and function (transformAround()) into interfaces implemented by  the objects that can be so transformed.
Also fixed some unrelated bugs lurking in the transformAround() and AnimateTransform code.

QE notes: None
Doc notes: None
Bugs: sdk-22576
Reviewer: Ely
Tests run: checkintests, Mustella (tests/spark/effects/AnimateTransform, Move, Rotate, Rotate3D)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.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/effects/AnimateTransform.as</path>

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

--- frameworks/projects/framework/src/mx/core/ILayoutElement.as
+++ frameworks/projects/framework/src/mx/core/ILayoutElement.as
@@ -15,6 +15,7 @@
 import flash.events.IEventDispatcher;
 import flash.geom.Matrix;
 import flash.geom.Matrix3D;
+import flash.geom.Vector3D;

 /**
  *  The ILayoutElement interface is used primarily by the layout classes to query,
@@ -751,6 +752,39 @@
      *  @productversion Flex 3
      */
     function setLayoutMatrix3D(m:Matrix3D, invalidateLayout:Boolean):void;
+
+    /**
+     * A utility method to update the rotation, scale, and translation of the
+     * transform while keeping a particular point, specified in the component's
+     * own coordinate space, fixed in the parent's coordinate space.
+     * This function will assign the rotation, scale, and translation values
+     * provided, then update the x/y/z properties as necessary to keep
+     * the transform center fixed.
+     * @param transformCenter the point, in the component's own coordinates,
+     * to keep fixed relative to its parent.
+     * @param scale the new values for the scale of the transform
+     * @param rotation the new values for the rotation of the transform
+     * @param translation the new values for the translation of the transform
+     * @param postLayoutScale the new values for the post-layout scale
+     * of the transform
+     * @param postLayoutRotation the new values for the post-layout rotation
+     * of the transform
+     * @param postLayoutTranslation the new values for the post-layout translation
+     * of the transform
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function transformAround(transformCenter:Vector3D,
+                                    scale:Vector3D = null,
+                                    rotation:Vector3D = null,
+                                    translation:Vector3D = null,
+                                    postLayoutScale:Vector3D = null,
+                                    postLayoutRotation:Vector3D = null,
+                                    postLayoutTranslation:Vector3D = null):void;
+
 }

 }


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

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

 package mx.controls.tabBarClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11118
Author:   gosmith@adobe.com
Date:     2009-10-23T23:35:38.504561Z

Log Message:
-----------
Did some code cleanup on the Spark components to enforce the conventions about how to order stuff within an AS file.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: None; no functional changes
Tests run: ant checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.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/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -11,6 +11,7 @@

 package spark.components
 {
+
 import flash.events.Event;
 import flash.events.FocusEvent;

@@ -76,13 +77,13 @@
 //  Other metadata
 //--------------------------------------

+[AccessibilityClass(implementation="spark.accessibility.TextInputAccImpl")]
+
 [DefaultProperty("text")]

 [DefaultTriggerEvent("change")]

 [IconFile("TextInput.png")]
-
-[AccessibilityClass(implementation="spark.accessibility.TextInputAccImpl")]

 /**
  *  TextInput is a text-entry control that lets users enter and edit
@@ -317,7 +318,6 @@
     //
     //--------------------------------------------------------------------------

-
     /**
      *  @private
      */
@@ -346,4 +346,3 @@
 }

 }
-


simplified code

simplified code

--- WeaveData/src/weave/data/Transforms/ForeignDataMappingTransform.as
+++ WeaveData/src/weave/data/Transforms/ForeignDataMappingTransform.as
@@ -71,23 +71,19 @@
             if (!_rootNode)
             {
                 var source:ForeignDataMappingTransform = this;
-                var dataColumnNames:Array = [];
-
                 _rootNode = new ColumnTreeNode({
-                    source: source,
+                    source: dataColumns,
                     data: source,
                     label: WeaveAPI.globalHashMap.getName(this),
                     isBranch: true,
                     hasChildBranches: false,
                     children: function():Array {
-                        if (detectLinkableObjectChange(_rootNode, dataColumns))
-							dataColumnNames = dataColumns.getNames();
-                        return dataColumnNames.map(
+                        return dataColumns.getNames().map(
                             function(dataColumnName:String, ..._):* {
                                 var column:IAttributeColumn = dataColumns.getObject(dataColumnName) as IAttributeColumn;
-                                var columnLabel:String = column.getMetadata(ColumnMetadata.TITLE);
+                                var title:String = column.getMetadata(ColumnMetadata.TITLE);
                                 var metadata:Object = {};
-                                metadata[ColumnMetadata.TITLE] = columnLabel;
+                                metadata[ColumnMetadata.TITLE] = title;
                                 metadata[DATA_COLUMNNAME_META] = dataColumnName;
                                 return generateHierarchyNode(metadata);
                             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 1262
Author:   jimurphy@adobe.com
Date:     2008-04-16T18:53:40.899270Z

Log Message:
-----------
Merged revisions 1219,1241,1261 via svnmerge from
http://opensource.adobe.com/svn/opensource/flex/sdk/branches/3.0.x

........
  r1219 | gosmith@adobe.com | 2008-04-15 14:00:39 -0400 (Tue, 15 Apr 2008) | 1 line

  Fixed a problem with the bin/asdoc tool. asDocHelper and asDocHelper.linux in asdoc/templates need to have the svn:executable property set.
........
  r1241 | genovese@adobe.com | 2008-04-15 21:55:32 -0400 (Tue, 15 Apr 2008) | 1 line

  ASDoc updates, added missing parameter descriptions, etc.
........
  r1261 | mhorn@adobe.com | 2008-04-16 14:38:28 -0400 (Wed, 16 Apr 2008) | 1 line

  bug fix FlexDocs-420
........

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/asdoc/templates/asDocHelper.linux</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/asdoc/templates/asDocHelper</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/AbstractTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ActionEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as
@@ -499,7 +499,10 @@
     // Protected Methods
     //
     //--------------------------------------------------------------------------
-
+
+    /**
+     * @private
+     */
     protected function internalPingComplete(msg:AsyncMessage):void
     {
         if (msg != 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@1274433 13f79535-47bb-0310-9956-ffa450edef68

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

 package mx.rpc.soap.types
 {


ADDED 'logout' API

ADDED 'logout' API

--- actionscript/src/com/marpies/ane/facebook/accountkit/AccountKit.as
+++ actionscript/src/com/marpies/ane/facebook/accountkit/AccountKit.as
@@ -143,6 +143,17 @@
             CONFIG::ane {
                 if( callback === null ) throw new ArgumentError( "Parameter callback cannot be null." );
                 mContext.call( "login", configuration, registerCallback( callback ) );
+            }
+        }
+
+        /**
+         * Logs out currently logged in account.
+         */
+        public static function logout():void {
+            if( !isSupported || !initExtensionContext() ) return;
+
+            CONFIG::ane {
+                mContext.call( "logout" );
             }
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 16623
Author:   klin@adobe.com
Date:     2010-06-23T00:45:44.447218Z

Log Message:
-----------
The following changes apply to Spark DataGrid only.   Code reviews have been deferred until the implementation is closer to completion.

First check-in for GridDimensions implementation and accompanying classes. GridLayout now has basic support for variable row heights and column widths. New classes include:

-GridRowList - an open linked list implementation for caching the row heights.
-GridRowNode - a node that represents the cell heights of a particular row.

I've also included the first round of ASDoc for GridDimensions.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridRowNode.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridRowList.as</path>

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 6122
Author:   chaase@adobe.com
Date:     2009-04-10T14:30:17.762458Z

Log Message:
-----------
Various refactorings/renamings/changes from effects PARB review.

QE Notes: mx/effects and spark/effects currently broken (and disabled) due to these API changes. Matt is fixing.
Doc Notes: None
Bugs:
Reviewer: Hans
tests: checkintests, mustella tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EffectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/NumberArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/SimpleMotionPath.as
+++ frameworks/projects/spark/src/spark/effects/animation/SimpleMotionPath.as
@@ -11,7 +11,7 @@

 package spark.effects
 {
-import spark.effects.interpolation.NumberArrayInterpolator;
+import spark.effects.interpolation.ArrayInterpolator;

 /**
@@ -27,7 +27,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class AnimationProperty extends MotionPath
+public class SimpleMotionPath extends MotionPath
 {

     //--------------------------------------------------------------------------
@@ -37,7 +37,7 @@
     //--------------------------------------------------------------------------

     /**
-     * Constructs an AnimationProperty object. The from/to/by values are used
+     * Constructs a SimpleMotionPath object. The from/to/by values are used
      * to construct a simple one-keyframe MotionPath where the from value
      * is defined in the MotionPath object itself and the single keyframe.
      *
@@ -48,7 +48,7 @@
      * @param valueBy An optional parameter that specifies the delta with
      * which to calculate either the from or to values.
      */
-    public function AnimationProperty(property:String = null,
+    public function SimpleMotionPath(property:String = null,
         valueFrom:Object = null, valueTo:Object = null,
         duration:Number = NaN, valueBy:Object = null)
     {
@@ -56,9 +56,21 @@
         this.property = property;
         keyframes = [new KeyFrame(0, valueFrom), new KeyFrame(duration, valueTo, valueBy)];
         if (valueFrom is Array && valueTo is Array)
-            interpolator = NumberArrayInterpolator.getInstance();
+        {
+            if (!numberArrayInterpolator)
+                numberArrayInterpolator = new ArrayInterpolator();
+            interpolator = numberArrayInterpolator;
+        }
     }

+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    private static var numberArrayInterpolator:ArrayInterpolator = null;
+
     //--------------------------------------------------------------------------
     //
     //  Properties