Transferred from the Adobe Open Source Subversion Repository

Revision: 17668
Author:   hmuller@adobe.com
Date:     2010-09-10T22:52:09.156291Z

Log Message:
-----------
Grid layers are now defined as type GridLayer (a private class), instead of Group.

GridLayer type no longer extends Group, it's now an object that has Group valued root property.   This makes the type's API relatively tiny - only two methods - and makes it possible for GridLayer to encapsulate the Grid itself as a layer (the item renderer layer).

Grid item renders are now consistently typed as IGridItemRenderer, rather than IVisualElement.

DefaultGridItemRenderer is now a UIFTETextField subclass and no longer supports the "textFieldClass" style.  A new UITextField based item renderer has been added, it's UITextFieldGridItemRenderer.

Support for the module implications of embedded fonts is now GridColumn's responsiblity.  GridColumn/itemToRenderer() now wraps item renderer ClassFactory item renders with a local ClassFactory subclass that delegates the newInstance() operation to the grid's moduleFactory.

QE notes:
Doc notes:
Bugs:
Reviewer: Carol, Kevin
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridItemRenderer.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ColumnHeaderBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.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="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridItemRendererOwner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/defaults.css</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@1281559 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.as
@@ -496,7 +496,7 @@

         // TBD(hmuller) - this code should be common with DefaultGridItemRenderer

-        const showDataTips:Boolean = column.getShowDataTips();
+        const showDataTips:Boolean = column && column.getShowDataTips();
         const dataTip:String = toolTip;
         if (showDataTips && !dataTip)
             toolTip = "<dataTip>";


Transferred from the Adobe Open Source Subversion Repository

Revision: 8400
Author:   srahim@adobe.com
Date:     2009-07-06T21:28:33.082387Z

Log Message:
-----------
ASDoc updates for Spark components

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.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/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
@@ -145,6 +145,28 @@
  *    the minimum range value and the maximum range value.

  *

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

+ *
+ *

+ *  <ScrollBar
+ *    Properties
+ *    pageSize="20"
+ *    snapInterval=""
+ *    viewport="null"
+ *
+ *    Styles
+ *    autoThumbVisibility="true"
+ *    fixedThumbSize="false"
+ *    repeatDelay="500"
+ *    repeatInterval="35"
+ *    smoothScrolling="true"
+ *    symbolColor=""
+ *  />
+ *

  *  @see spark.core.IViewport
  *  @see spark.skins.spark.ScrollerSkin
  *  @see spark.skins.spark.ScrollBarDownButtonSkin
@@ -373,7 +395,7 @@
      *
      *
The VScrollBar and HScrollBar classes override these methods to
      *  keep their pageSize, maximum, and value properties in sync with the
-     *  viewport.   Similarly, they override their changeValueByPage() and changeValueByStep() methods to
+     *  viewport. Similarly, they override their changeValueByPage() and changeValueByStep() methods to
      *  use the viewport's scrollPositionDelta methods to compute page and
      *  and step offsets.

      *
@@ -568,7 +590,7 @@
      *  smaller than the current value.
      *  The minimum value of value is pageSize.
      *
-     *  @param increase Whether the paging action adds (true)or
+     *  @param increase Whether the paging action adds (true) or
      *  decreases (false) value.
      *
      *  @langversion 3.0


Transferred from the Adobe Open Source Subversion Repository

Revision: 19922
Author:   hmuller@adobe.com
Date:     2011-01-25T00:18:22.191168Z

Log Message:
-----------
Moved the tooltip initialization code in TextFieldGridItemRendererInclude/validateDisplayList() updatePreferredSize() (same file) and factored it into an mx_internal static utility method in GridItemRenderer.

QE notes: 24 failures: 21 new bitmaps needed, 3 others also need to move the mouse (Jacob)
Doc notes:
Bugs: SDK-28616
Reviewer: Carol
Tests run: checkin, mustella
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.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@1287486 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as
@@ -102,8 +102,7 @@

         autoSize = TextFieldAutoSize.NONE;

-        addEventListener(ToolTipEvent.TOOL_TIP_SHOW,
-						 GridItemRenderer.toolTipShowHandler);
+        addEventListener(ToolTipEvent.TOOL_TIP_SHOW, GridItemRenderer.toolTipShowHandler);
     }

 include "TextFieldGridItemRendererInclude.as"


fixed building stream event

fixed building stream event

--- src/main/actionscript/com/castlabs/dash/loaders/FragmentLoader.as
+++ src/main/actionscript/com/castlabs/dash/loaders/FragmentLoader.as
@@ -134,7 +134,7 @@
         }

         if (!_audioSegment || !_videoSegment) { // notify end
-            dispatchEvent(new StreamEvent(StreamEvent.END));
+            dispatchEvent(_context.buildStreamEvent(StreamEvent.END));
             reset();
             return;
         }


add adStopped to the vpaid stop events

add adStopped to the vpaid stop events

--- plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
+++ plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
@@ -296,7 +296,7 @@
 				vpaidMetadata.addEventListener(MetadataEvent.VALUE_ADD, function(event:MetadataEvent):void
 				{
 					trace (event.key)
-					if (event.key == "adUserClose")
+					if (event.key == "adUserClose" ||event.key == "adStopped" )
 					{
 						(playerMediator["player"] as MediaPlayer).removeEventListener(TimeEvent.DURATION_CHANGE, onAdDurationReceived );
 						signalEnd();


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

--- frameworks/projects/framework/src/mx/utils/LinkedList.as
+++ frameworks/projects/framework/src/mx/utils/LinkedList.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.utils
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18173
Author:   jasonsj@adobe.com
Date:     2010-10-15T17:03:20.801634Z

Log Message:
-----------
Mobile Theme Initial check-in

* New light-look visuals from XD
* Changed airmobile-config.xml to use standalone Mobile theme instead of Spark overlay
* Added theme="spark, mobile" where spark was already white-listed and support is implemented and/or planned for Mobile/spark.css (see https://zerowing.corp.adobe.com/display/flexmobile/Mobile+Theme+Styles+Spec)
* MobileSkin has symbolColor and chromeColor support. Override beginChromeColorFill and drawChromeColor when defining custom chromeColor visuals.
* CheckBox and RadioButton now have chromeColor and symbolColor support
* Added textShadowColor and textShadowAlpha support to Button and ActionBar
* Added chromeColor support to HScrollBar and VScrollBar

QE notes: All mobile skins have been updaetd.
Doc notes: Update mobile skinning documentation for new APIs
Bugs:
SDK-28043 Investigate usage of "viewWidth", "viewHeight" for the Flex Mobile Skin Assets
SDK-27609 Mobile scroll bar skins should use chromeColor
SDK-27646 cornerradius has no effect on button in mobile application
Reviewer: gruehle
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</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/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TextInput_border.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<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/assets/Button_down.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_downSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/themes/Mobile/spark.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/airmobile-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_downSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/spark/src/spark/components/Button.as
+++ frameworks/projects/spark/src/spark/components/Button.as
@@ -27,7 +27,31 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="accentColor", type="uint", format="Color", inherit="yes", theme="spark")]
+[Style(name="accentColor", type="uint", format="Color", inherit="yes", theme="spark, mobile")]
+
+/**
+ *  Color of text shadows.
+ *
+ *  @default #FFFFFF
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="textShadowColor", type="uint", format="Color", inherit="yes", theme="mobile")]
+
+/**
+ *  Alpha of text shadows.
+ *
+ *  @default 0.55
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="textShadowAlpha", type="Number",inherit="yes", minValue="0.0", maxValue="1.0", theme="mobile")]

 [Exclude(name="textAlign", kind="style")]


indents

indents

--- src/battlecode/client/viewer/render/ExplosionAnimation.as
+++ src/battlecode/client/viewer/render/ExplosionAnimation.as
@@ -1,7 +1,7 @@
 package battlecode.client.viewer.render {
-import battlecode.common.RobotType;
-
-import mx.controls.Image;
+    import battlecode.common.RobotType;
+
+    import mx.controls.Image;
     import mx.core.UIComponent;

     public class ExplosionAnimation extends UIComponent implements DrawObject {


Handle null in validation elem iteration

--- as3/smartform/src/com/rpath/raf/views/CompoundInputItem.as
+++ as3/smartform/src/com/rpath/raf/views/CompoundInputItem.as
@@ -36,7 +36,8 @@
             // let our specific input controls mark themselves appropriately
             for each (var elem:UIComponent in inputFields)
             {
-                elem.validationResultHandler(event);
+                if (elem)
+                    elem.validationResultHandler(event);
             }

             // propagate events beyond ourselves


Minor change to pass the current fragmentation opcode into the frame parser more efficiently.

--- AS3WebSocket/src/com/worlize/websocket/WebSocket.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocket.as
@@ -351,7 +351,7 @@

 			// addData returns true if the frame is complete, and false
 			// if more data is needed.
-			while (currentFrame.addData(incomingBuffer, frameQueue.length > 0 ? frameQueue[0].opcode : 0)) {
+			while (currentFrame.addData(incomingBuffer, fragmentationOpcode)) {
 				processFrame(currentFrame);
 				currentFrame = new WebSocketFrame();
 			}


Updating comment about zlib window bits.

--- AS3WebSocket/src/com/worlize/websocket/WebSocket.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocket.as
@@ -603,7 +603,8 @@
 			var err:int;
 			// JZlib and subsequently as3zlib only support a minimum window
 			// bits size of 9 for deflate, not 8 like C zlib.  So we'll use
-			// that I guess.
+			// that I guess.  Had initially planned to use 8 because that's
+			// the value that Andy Green's libwebsockets C library uses.
 			var windowBitsOut:int = 9;
 			var windowBitsIn:int = 8;


Transferred from the Adobe Open Source Subversion Repository

Revision: 20845
Author:   mhorn@adobe.com
Date:     2011-03-14T15:29:23.391952Z

Log Message:
-----------
merge 20756,20790,20712,20805

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

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

--- frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as
+++ frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as
@@ -150,12 +150,15 @@

     /**
      *  Lets you determine if the host exposes a data-binding event
-     *  on the property.
+     *  on the property.
+     *
+     *
NOTE: Property chains are not supported by the canWatch() method.
+     * They are supported by the watch() method.

      *
      *  @param host The host of the property.
      *  See the watch() method for more information.
      *
-     *  @param name The name of the property, or property chain.
+     *  @param name The name of the property.
      *  See the watch() method for more information.
      *
      *  @param commitOnly Set to true if the handler


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

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

 package spark.accessibility
 {


Issue #85: Apply arguments properly when calling logger methods.

--- src/com/esri/builder/logging/SimpleLogDecorator.as
+++ src/com/esri/builder/logging/SimpleLogDecorator.as
@@ -37,14 +37,14 @@

     public function log(level:int, message:String, ... rest):void
     {
-        logger.log.apply(null, [ level, message, rest ]);
+        logger.log.apply(null, [ level, message ].concat(rest));
     }

     public function debug(message:String, ... rest):void
     {
         if (Log.isDebug())
         {
-            logger.debug.apply(null, [ message, rest ]);
+            logger.debug.apply(null, [ message ].concat(rest));
         }
     }

@@ -52,7 +52,7 @@
     {
         if (Log.isError())
         {
-            logger.error.apply(null, [ message, rest ]);
+            logger.error.apply(null, [ message ].concat(rest));
         }
     }

@@ -60,7 +60,7 @@
     {
         if (Log.isFatal())
         {
-            logger.fatal.apply(null, [ message, rest ]);
+            logger.fatal.apply(null, [ message ].concat(rest));
         }
     }

@@ -68,7 +68,7 @@
     {
         if (Log.isInfo())
         {
-            logger.info.apply(null, [ message, rest ]);
+            logger.info.apply(null, [ message ].concat(rest));
         }
     }

@@ -76,7 +76,7 @@
     {
         if (Log.isWarn())
         {
-            logger.warn.apply(null, [ message, rest ]);
+            logger.warn.apply(null, [ message ].concat(rest));
         }
     }


More tweaks to perf timings

More tweaks to perf timings

--- src/avm2/tests/performance/c4/basic.as
+++ src/avm2/tests/performance/c4/basic.as
@@ -4,7 +4,7 @@
   function clockUnder(max, name) {
     var elapsed = new Date() - last;
     // Keep this disabled when committing this file.
-    var elapsedSuffix = true ? " (" + elapsed + ")" : "";
+    var elapsedSuffix = false ? " (" + elapsed + ")" : "";
     var nameSuffix = name ? ": " + name : "";
     if (elapsed > max) {
       trace("FAIL: > " + max + " ms" + elapsedSuffix + nameSuffix);
@@ -184,7 +184,7 @@

   (function () {
     var s = 0;
-    for (var i = 0; i < 4000000; i++) {
+    for (var i = 0; i < 1000000; i++) {
       s += -Number.MAX_VALUE;
       s += Number.MAX_VALUE;
       s += Math.abs(i);


Refactor private `music` var to use `FlxG.music`.

--- src/PlayState.as
+++ src/PlayState.as
@@ -70,10 +70,10 @@

     // The music.
     private var targetMusicVolume:Number = 0;
-    private var music:FlxSound;
     private static const MUSIC_VOLUME_FACTOR:Number = 1.3;
     private static const MIN_MUSIC_VOLUME:Number = 0.2;
     private static const MAX_MUSIC_VOLUME:Number = 0.8;
+    private var playMusic:Boolean;

     // Flixel Methods
     // --------------
@@ -83,7 +83,8 @@

       // Globals.
       fallChecking = false;
-      FlxG.debug = false;
+      FlxG.debug = true;
+      playMusic = !FlxG.debug;

       // Start our setup chain.
       setupPlatform();
@@ -263,13 +264,11 @@
     }
     private function setupAudio():void
     {
-      music = FlxG.loadSound(SndMain, targetMusicVolume, true, false, false);
+      if (!playMusic) return;
+      FlxG.music = FlxG.loadSound(SndMain, targetMusicVolume, true, false, false);
       updateAudio(true);
-      if (!FlxG.debug)
-      {
-        music.play();
-      }
-      FlxG.watch(music, 'volume', 'Volume');
+      FlxG.music.play();
+      FlxG.watch(FlxG.music, 'volume', 'Volume');
     }
     private function setupBg():void
     {
@@ -361,6 +360,7 @@
     }
     private function updateAudio(force:Boolean=false):void
     {
+      if (!playMusic) return;
       if (didTheEnd) return;
       // The music gets louder the higher the player gets.
       // The volume smoothly updates on each landing.
@@ -369,8 +369,8 @@
         targetMusicVolume = (platform.startingPoint.y - player.cameraFocus.y) / platform.distanceToTravel.y;
         targetMusicVolume = Math.pow(targetMusicVolume, MUSIC_VOLUME_FACTOR);
       }
-      music.volume += (targetMusicVolume - music.volume) / player.cameraSpeed;
-      music.volume = FlxU.bound(music.volume, MIN_MUSIC_VOLUME, MAX_MUSIC_VOLUME);
+      FlxG.music.volume += (targetMusicVolume - FlxG.music.volume) / player.cameraSpeed;
+      FlxG.music.volume = FlxU.bound(FlxG.music.volume, MIN_MUSIC_VOLUME, MAX_MUSIC_VOLUME);
     }
     private function updateGameState(doChecks:Boolean=false):void
     {
@@ -426,7 +426,7 @@
       if ((didTheEnd && FlxG.mouse.justPressed()) || FlxG.keys.justPressed('Q'))
       {
         var fadeDuration:Number = 3;
-        music.fadeOut(fadeDuration);
+        FlxG.music.fadeOut(fadeDuration);
         gameStatePollInterval.stop();
         gameStatePollInterval.start(fadeDuration, 1,
           function(onTimer:FlxTimer):void {


Added bounds control to ForceDirectedLayout

git-svn-id: 6aa7ccb0a2048310a30f08a72aaff4ca39d980ed@96 91848ab2-c4ae-4e4f-8e6a-6a52ea0dccc3

--- flare.vis/flare/vis/operator/layout/ForceDirectedLayout.as
+++ flare.vis/flare/vis/operator/layout/ForceDirectedLayout.as
@@ -1,14 +1,14 @@
 package flare.vis.operator.layout
 {
+	import flare.animate.Transitioner;
+	import flare.physics.Particle;
 	import flare.physics.Simulation;
-	import flare.animate.Transitioner;
-	import flash.utils.Dictionary;
+	import flare.physics.Spring;
+	import flare.vis.data.Data;
 	import flare.vis.data.DataSprite;
 	import flare.vis.data.EdgeSprite;
-	import flash.filters.GradientBevelFilter;
-	import flare.physics.Particle;
-	import flare.physics.Spring;
-	import flare.vis.data.Data;
+
+	import flash.geom.Rectangle;

 	/**
 	 * Layout that positions graph items based on a physics simulation of
@@ -34,13 +34,13 @@
 	 */
 	public class ForceDirectedLayout extends Layout
 	{
-		private var _lookup:Dictionary = new Dictionary();
 		private var _sim:Simulation;
 		private var _step:Number = 1;
 		private var _iter:int = 1;
 		private var _gen:uint = 0;
-
-		// simlation defaults
+		private var _enforceBounds:Boolean = false;
+
+		// simulation defaults
 		private var _mass:Number = 1;
 		private var _restLength:Number = 30;
 		private var _tension:Number = 0.1;
@@ -75,6 +75,11 @@

 		/** The physics simulation driving this layout. */
 		public function get simulation():Simulation { return _sim; }
+
+		/** Flag indicating if the layout bounds should be enforced.
+		 *  If true, the layoutBounds will limit node placement. */
+		public function get enforceBounds():Boolean { return _enforceBounds; }
+		public function set enforceBounds(b:Boolean):void { _enforceBounds = b; }

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

@@ -85,7 +90,10 @@
 		 * @param sim the physics simulation to use for the layout. If null
 		 *  (the default), default simulation settings will be used
 		 */
-		public function ForceDirectedLayout(iterations:int=1, sim:Simulation=null) {
+		public function ForceDirectedLayout(enforceBounds:Boolean=false,
+			iterations:int=1, sim:Simulation=null)
+		{
+			_enforceBounds = enforceBounds;
 			_iter = iterations;
 			_sim = (sim==null ? new Simulation(0, 0, 0.05, -50) : sim);
 		}
@@ -109,6 +117,7 @@
 				if (_sim.springs[i].tag != _gen) _sim.removeSpring(i);

 			// run simulation
+			_sim.bounds = _enforceBounds ? layoutBounds : null;
 			for (i=0; i<_iter; ++i) {
 				_sim.tick(_step);
 			}
@@ -131,8 +140,9 @@
 		{
 			var p:Particle = d.props.particle;
 			if (!p.fixed) {
-				_t.$(d).x = p.x;
-				_t.$(d).y = p.y;
+				var o:Object = _t.$(d);
+				o.x = p.x;
+				o.y = p.y;
 			}
 			return true;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4977
Author:   pfarland@adobe.com
Date:     2009-02-17T00:08:48.217633Z

Log Message:
-----------
Updating CSSSelector to consider pseudo-selector conditions for descendant selectors too.

QE: Yes, please retest.
Doc: No
Checkintests: Pass
Reviewer: Glenn
Bugs:
SDK-19348 - [Advanced CSS] Descendant selectors do not work for Spark itemRenderers.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as

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

--- frameworks/projects/framework/src/mx/styles/CSSSelector.as
+++ frameworks/projects/framework/src/mx/styles/CSSSelector.as
@@ -251,7 +251,8 @@
     {
         var result:String = null;

-        if (kind == CSSSelectorKind.CONDITIONAL_SELECTOR && conditions != null)
+        if ((kind == CSSSelectorKind.CONDITIONAL_SELECTOR
+            || kind == CSSSelectorKind.DESCENDANT_SELECTOR) && conditions != null)
         {
             for each (var condition:CSSCondition in conditions)
             {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/framework/src/mx/events/PropertyChangeEvent.as
+++ frameworks/projects/framework/src/mx/events/PropertyChangeEvent.as
@@ -24,6 +24,11 @@
  * This event is also used by the Flex data binding mechanism.
  *
  * @see PropertyChangeEventKind
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class PropertyChangeEvent extends Event
 {
@@ -65,6 +70,11 @@
      *
      *  @eventType propertyChange
      *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const PROPERTY_CHANGE:String = "propertyChange";

@@ -91,6 +101,11 @@
      *
      *  @return A newly constructed PropertyChangeEvent
      *  with the specified properties.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function createUpdateEvent(
                                     source:Object,
@@ -139,6 +154,11 @@
      *  @param newValue The value of the property after the change.
      *
      *  @param source The object that the change occured on.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function PropertyChangeEvent(type:String, bubbles:Boolean = false,
                                         cancelable:Boolean = false,
@@ -171,6 +191,11 @@
      *  Specifies the kind of change.
      *  The possible values are PropertyChangeEventKind.UPDATE,
      *  PropertyChangeEventKind.DELETE, and null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var kind:String;

@@ -180,6 +205,11 @@

     /**
      *  The value of the property after the change.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var newValue:Object;

@@ -189,6 +219,11 @@

     /**
      *  The value of the property before the change.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var oldValue:Object;

@@ -198,6 +233,11 @@

     /**
      *  A String, QName, or int specifying the property that changed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var property:Object;

@@ -207,6 +247,11 @@

     /**
      *  The object that the change occured on.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var source:Object;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7986
Author:   gosmith@adobe.com
Date:     2009-06-18T23:30:43.672956Z

Log Message:
-----------
Fixed breakage in wireframe skins due to skin part renaming (textView -> textDisplay).

Also renamed private var textViewClass to richEditableTextClass in Container and CursorManagerImpl so that the old terminology "textView" is banished.

QE Notes: None
Doc Notes: None
Bugs: SDK-21893
Reviewer: Carol to review

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/NumericStepperTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as
@@ -121,10 +121,16 @@
 			}
 		}

-		// If available, get soft-link to the RichEditableText class to use in mouseMoveHandler().
+		// If available, get soft-link to the RichEditableText class
+		// to use in mouseMoveHandler().
         // ToDo: revisit the correct way to do this for modules.
-        if (ApplicationDomain.currentDomain.hasDefinition("spark.components.RichEditableText"))
-            textViewClass = Class(ApplicationDomain.currentDomain.getDefinition("spark.components.RichEditableText"));
+        if (ApplicationDomain.currentDomain.hasDefinition(
+				"spark.components.RichEditableText"))
+		{
+            richEditableTextClass =
+				Class(ApplicationDomain.currentDomain.getDefinition(
+					"spark.components.RichEditableText"));
+		}
     }

     //--------------------------------------------------------------------------
@@ -228,9 +234,9 @@

     /**
      *  @private
-     *  Soft-link to TextView class object, if available.
-     */
-    private var textViewClass:Class;
+     *  Soft-link to RichEditableText class object, if available.
+     */
+    private var richEditableTextClass:Class;

     //--------------------------------------------------------------------------
     //
@@ -860,7 +866,7 @@

         var isInputTextField:Boolean =
             (target is TextField && target.type == TextFieldType.INPUT) ||
-                (textViewClass && target is textViewClass && (target["editable"] || target["selectable"]));
+                (richEditableTextClass && target is richEditableTextClass && (target["editable"] || target["selectable"]));

         // Do target test.
         if (!overTextField && isInputTextField)


Transferred from the Adobe Open Source Subversion Repository

Revision: 6626
Author:   gosmith@adobe.com
Date:     2009-05-05T01:45:01.568612Z

Log Message:
-----------
Integrated a private build of TLF from Rich.

This build has an additional tabbing-related fix on top of TLF Build 424. We decided to take 424 because it allows all event handling in TextContainerManager to be overridden, which may be important for fixing beta bugs. But Rich also fixed a new bug that I found today: if you had moused over a TextInput or TextArea, then when you tabbed to it you couldn't enter text. This build passed the TextInput and TextArea Mustella tests. We'll take the official 425 tomorrow which will be 424 plus this new fix.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Carol

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swf</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/tlf.properties</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -2743,15 +2743,8 @@
             if (enabled)
             {
                 if (!getSelectionManager().hasSelection())
-                {
                     setSelection(int.MAX_VALUE, int.MAX_VALUE);

-                    // This is ugly but it's the only way to get tabbing into
-                    // the control to allow input without a mouse click.
-                    var controller:ContainerController =
-                                        textFlow.flowComposer.getControllerAt(0);
-                    controller.tlf_internal::requiredFocusInHandler(event);
-                }
                 releaseSelectionManager();
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20007
Author:   cframpto@adobe.com
Date:     2011-01-28T20:19:13.564049Z

Log Message:
-----------
Add [Inspectable] metadata to all spark text components

QE notes:
Doc notes:
Bugs: part of SDK-28942
Reviewer: Corey
Tests run: cyclone, FlashBuilder w/ DesignView
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -1096,7 +1096,7 @@
         //----------------------------------
         //  horizontalScrollPosition
         //----------------------------------
-
+
         /**
          *  @private
          */
@@ -1108,7 +1108,8 @@
         private var horizontalScrollPositionChanged:Boolean = false;

         [Bindable("propertyChange")]
-
+        [Inspectable(defaultValue="0", minValue="0.0")]
+
         /**
          *  The number of pixels by which the text is scrolled horizontally.
          *
@@ -1165,7 +1166,8 @@
         private var verticalScrollPositionChanged:Boolean = false;

         [Bindable("propertyChange")]
-
+        [Inspectable(defaultValue="0", minValue="0.0")]
+
         /**
          *  The number of pixels by which the text is scrolled vertically.
          *
@@ -1243,7 +1245,8 @@
          *  within <p>, <span>, etc.
          */
         [RichTextContent]
-
+        [Inspectable(environment="none")]
+
         /**
          *  This property is intended for use in MXML at compile time;
          *  to get or set rich text content at runtime,
@@ -1335,6 +1338,8 @@
          */
         private var displayAsPasswordChanged:Boolean = false;

+        [Inspectable(category="General", defaultValue="false")]
+
         /**
          *  @copy flash.text.TextField#displayAsPassword
          *
@@ -1377,6 +1382,8 @@
          *  @private
          */
         private var editableChanged:Boolean = false;
+
+        [Inspectable(category="General", defaultValue="true")]

         /**
          *  A flag indicating whether the user is allowed
@@ -1422,6 +1429,8 @@
         //  editingMode
         //----------------------------------

+        [Inspectable(category="General", defaultValue="readWrite", enumeration="readOnly,readWrite,readSelect")]
+
         /**
          *  @private
          *  The editingMode of this component's TextContainerManager.
@@ -1502,6 +1511,8 @@
          *  @private
          */
         private var heightInLinesChanged:Boolean = false;
+
+        [Inspectable(category="General", minValue="0.0")]

         /**
          *  The default height of the control, measured in lines.
@@ -1614,6 +1625,8 @@
         //  lineBreak
         //----------------------------------

+        [Inspectable(environment="none")]
+
         /**
          *  @private
          *
@@ -1642,6 +1655,8 @@
          *  @private
          */
         private var _maxChars:int = 0;
+
+        [Inspectable(category="General", defaultValue="0")]

         /**
          *  @copy flash.text.TextField#maxChars
@@ -1674,6 +1689,8 @@
          *  @private
          */
         private var _multiline:Boolean = true;
+
+        [Inspectable(category="General", defaultValue="true")]

         /**
          *  Determines whether the user can enter multiline text.
@@ -1713,6 +1730,8 @@
          */
         private var _restrict:String = null;

+        [Inspectable(category="General", defaultValue="null")]
+
         /**
          *  @copy flash.text.TextField#restrict
          *
@@ -1750,6 +1769,8 @@
          */
         private var selectableChanged:Boolean = false;

+        [Inspectable(category="General", defaultValue="true")]
+
         /**
          *  A flag indicating whether the content is selectable
          *  with the mouse, or with the keyboard when the control
@@ -1797,6 +1818,7 @@
         private var _selectionActivePosition:int = -1;

         [Bindable("selectionChange")]
+        [Inspectable(category="General", defaultValue="-1")]

         /**
          *  A character position, relative to the beginning of the
@@ -1838,6 +1860,7 @@
         private var _selectionAnchorPosition:int = -1;

         [Bindable("selectionChange")]
+        [Inspectable(category="General", defaultValue="-1")]

         /**
          *  A character position, relative to the beginning of the
@@ -1952,7 +1975,7 @@
         private var textChanged:Boolean = false;

         [Bindable("change")]
-        [Inspectable(category="General")]
+        [Inspectable(category="General", defaultValue="")]

         /**
          *  The text String displayed by this component.
@@ -2248,6 +2271,8 @@
          */
         private var _typicalTextFlow:TextFlow;

+        [Inspectable(category="General", defaultValue="null")]
+
         /**
          *  Text that is used to determine
          *  the default width and height of the control,
@@ -2307,6 +2332,8 @@
          */
         private var widthInCharsChanged:Boolean = true;

+        [Inspectable(category="General", minValue="0.0")]
+
         /**
          *  The default width of the control, measured in em units.
          *


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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -12,80 +12,24 @@
 {
 import __AS3__.vec.Vector;

-import flash.events.EventDispatcher;
 import flash.events.TimerEvent;
 import flash.utils.Dictionary;
 import flash.utils.Timer;
 import flash.utils.getTimer;

-import spark.effects.interpolation.ArrayInterpolator;
-import spark.effects.easing.IEaser;
-import spark.effects.interpolation.IInterpolator;
-import spark.effects.easing.Linear;
-import spark.effects.interpolation.NumberArrayInterpolator;
-import spark.effects.interpolation.NumberInterpolator;
-import spark.effects.AnimationProperty;
-import spark.effects.easing.Sine;
-import spark.events.AnimationEvent;
+import mx.events.EffectEvent;
 import mx.resources.IResourceManager;
 import mx.resources.ResourceManager;

-/**
- * Dispatched when the animation starts. The first
- * animationUpdate event is dispatched at the
- * same time.
- *
- * @eventType spark.events.AnimationEvent.ANIMATION_START
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-[Event(name="animationStart", type="spark.events.AnimationEvent")]
-
-/**
- * Dispatched every time the animation updates the target.
- *
- * @eventType spark.events.AnimationEvent.ANIMATION_UPDATE
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-[Event(name="animationUpdate", type="spark.events.AnimationEvent")]
-
-/**
- * Dispatched when the animation begins a new repetition, for
- * any effect that is repeated more than once.
- * An animationUpdate event is also dispatched
- * at the same time.
- *
- * @eventType spark.events.AnimationEvent.ANIMATION_REPEAT
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-[Event(name="animationRepeat", type="spark.events.AnimationEvent")]
-
-/**
- * Dispatched when the effect ends. An animationUpdate event
- * is also dispatched at the same time. A repeating animation dispatches
- * this event only after the final repetition.
- *
- * @eventType spark.events.AnimationEvent.ANIMATION_END
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-[Event(name="animationEnd", type="spark.events.AnimationEvent")]
-
-[DefaultProperty("animationProperties")]
+import spark.effects.SimpleMotionPath;
+import spark.effects.easing.IEaser;
+import spark.effects.easing.Linear;
+import spark.effects.easing.Sine;
+import spark.effects.interpolation.ArrayInterpolator;
+import spark.effects.interpolation.IInterpolator;
+import spark.effects.interpolation.NumberInterpolator;
+
+[DefaultProperty("motionPaths")]

 //--------------------------------------
 //  Other metadata
@@ -126,7 +70,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class Animation extends EventDispatcher
+public final class Animation
 {
     /**
      * TODOs:
@@ -140,6 +84,14 @@

     include "../../core/Version.as";

+    //--------------------------------------------------------------------------
+    //
+    //  Class Constants
+    //
+    //--------------------------------------------------------------------------
+
+    private static const TIMER_RESOLUTION:Number = 10;
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -147,17 +99,19 @@
     //--------------------------------------------------------------------------

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

@@ -181,13 +135,18 @@
     //
     //--------------------------------------------------------------------------

-    public static const LOOP:String = "loop";
-    public static const REVERSE:String = "reverse";
+
+    /**
+     * @private
+     *
+     * The time being used in the current frame calculations. This time is
+     * shared by all active animations.
+     */
+    private static var intervalTime:Number = NaN;

     // A single Timer object runs all animations in the process
     private static var activeAnimations:Array = [];
     private static var timer:Timer = null;
-    private static var minRequestedResolution:Number;

     private var arrayMode:Boolean;
     // TODO: more efficient way to store/remove these than in an array?
@@ -200,9 +159,10 @@
     // TODO: rethink how we do reversing
     private var _doReverse:Boolean = false;
     private var _invertValues:Boolean = false;
-    // Track when the current cycle started to compute elapsedTime
-    // and current fraction
+    // Original start time of animation
     private var startTime:Number;
+    // Time when the current cycle started
+    private var cycleStartTime:Number;
     // Track number of times repeated for use by repeatCount logic
     private var numRepeats:int;
     // The amount of time that the animation should delay before
@@ -221,14 +181,81 @@
     private var resourceManager:IResourceManager =
                                     ResourceManager.getInstance();

+
     //--------------------------------------------------------------------------
     //
     //  Properties
     //
     //--------------------------------------------------------------------------

-    public var animationProperties:Array;
-
+    /**
+     * This array holds the values as of the current frame of the Animation.
+     * The values are stored as map values, using property names as the key.
+     */
+    public var currentValue:Object;
+
+    /**
+     * The set of MotionPath objects that define the properties and values
+     * that the Animation will animate over time
+     */
+    public var motionPaths:Array;
+
+    //----------------------------------
+    //  animationTarget
+    //----------------------------------
+    /**
+     * @private
+     * Storage for the animationTarget property.
+     */
+    private var _animationTarget:IAnimationTarget = null;
+    /**
+     * The IAnimationTarget object that will be notified with all
+     * start, end, repeat, and update events for this animation.
+     * A value of null indicates that there is no target that will
+     * be notified with these events.
+     *
+     * @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get animationTarget():IAnimationTarget
+    {
+        return _animationTarget;
+    }
+    public function set animationTarget(value:IAnimationTarget):void
+    {
+        _animationTarget = value;
+    }
+
+    //----------------------------------
+    //  playheadTime
+    //----------------------------------
+    /**
+     * @private
+     * Storage for the animationTarget property.
+     */
+    private var _playheadTime:Number;
+    /**
+     * The total elapsed time of the Animation, including any startDelay
+     * and repetitions. For an Animation playing through its first cycle,
+     * this value will equal that of cycleTime/
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get playheadTime():Number
+    {
+        return _playheadTime;
+    }
+    public function set playheadTime(value:Number):void
+    {
+        seek(value, true);
+    }
     /**
      * This variable indicates whether the animation is currently
      * running or not. The value is false unless the animation
@@ -261,20 +288,21 @@
     //----------------------------------
     /**
      * @private
-     * Storage for the repeatDelay property.
-     */
-    private var _repeatBehavior:String = LOOP;
+     * Storage for the repeatBehavior property.
+     */
+    private var _repeatBehavior:String = RepeatBehavior.LOOP;
     /**
      * Sets the behavior of a repeating animation (an animation
      * with repeatCount equal to either 0 or >1). This
-     * value should be either LOOP, where the animation
-     * will repeat in the same order each time, or REVERSE,
+     * value should be either RepeatBehavior.LOOP, where the animation
+     * will repeat in the same order each time, or
+     * RepeatBehavior.REVERSE,
      * where the animation will reverse direction each iteration.
      *
      * @param value A String describing the behavior, either
-     * Animation.LOOP or Animation.REVERSE
-     *
-     * @default LOOP
+     * RepeatBehavior.LOOP or RepeatBehavior.REVERSE
+     *
+     * @default RepeatBehavior.LOOP
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -298,15 +326,13 @@
      * @private
      * Storage for the repeatCount property.
      */
-    private var _repeatCount:Number = 1;
+    private var _repeatCount:int = 1;
     /**
      * Number of times that this animation will repeat. A value of
-     * 0 means that it will repeat indefinitely. Only integer values are
-     * supported, with fractional values rounded up to the next higher integer.
+     * 0 means that it will repeat indefinitely.
      *
      * @param value Number of repetitions for this animation, with 0 being
-     * an infinitely repeating animation. This value must be a positive
-     * number.
+     * an infinitely repeating animation. This value must be >= 0.
      *
      * @default 1
      *
@@ -315,11 +341,11 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function set repeatCount(value:Number):void
+    public function set repeatCount(value:int):void
     {
         _repeatCount = value;
     }
-    public function get repeatCount():Number
+    public function get repeatCount():int
     {
         return _repeatCount;
     }
@@ -392,29 +418,6 @@
     }

     //----------------------------------
-    //  intervalTime
-    //----------------------------------
-
-    /**
-     * @private
-     * Storage for the repeatDelay property.
-     */
-    private static var _intervalTime:Number = NaN;
-    /**
-     * The time being used in the current frame calculations. This time is
-     * shared by all active animations.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public static function get intervalTime():Number
-    {
-        return _intervalTime;
-    }
-
-    //----------------------------------
     //  interpolator
     //----------------------------------

@@ -434,78 +437,43 @@
      *  @productversion Flex 4
      */
     public var interpolator:IInterpolator = null;
-
-    //----------------------------------
-    //  resolution
-    //----------------------------------
-
-    /**
-     * @private
-     * Storage for the resolution property. This variable is static
-     * because all animations in the system share the same Timer, which
-     * uses this single resolution.
-     */
-    private static var _resolution:Number = 10;
-    /**
-     * The maximum time between timing events, in milliseconds. It is
-     * possible that the underlying timing mechanism may not be able to
-     * achieve the rate requested by resolution. Since
-     * all Animation objects run off the same underlying timer,
-     * they will all be serviced with the lowest resolution
-     * requested.
-     *
-     * @default 10
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get resolution():Number
-    {
-        return _resolution;
-    }
-    public function set resolution(value:Number):void
-    {
-        if (isNaN(minRequestedResolution) || value < minRequestedResolution)
-        {
-            _resolution = value;
-            if (timer)
-                timer.delay = _resolution;
-            minRequestedResolution = value;
-        }
-    }
-
-    //----------------------------------
-    //  elapsedTime
-    //----------------------------------
-
-    private var _elapsedTime:Number = 0;
+
+    //----------------------------------
+    //  cycleTime
+    //----------------------------------
+
+    private var _cycleTime:Number = 0;
     /**
      *  @private
-     *  The current millisecond position in the animation.
+     *  The current millisecond position in the current cycle animation.
      *  This value is between 0 and duration.
+     *  An animation 'cycle' is defined as a single repetition of the animation,
+     *  where the repeatCount property defines the number of
+     *  cycles that will be played.
      *  Use the seek() method to change the position of the animation.
      */
-    public function get elapsedTime():Number
-    {
-        return _elapsedTime;
-    }
-
-
-    //----------------------------------
-    //  elapsedFraction
-    //----------------------------------
-
-    private var _elapsedFraction:Number;
+    public function get cycleTime():Number
+    {
+        return _cycleTime;
+    }
+
+
+    //----------------------------------
+    //  cycleFraction
+    //----------------------------------
+
+    private var _cycleFraction:Number;
     /**
      *  @private
      *  The current fraction elapsed in the animation, after easing
      *  has been applied. This value is between 0 and 1.
-     */
-    public function get elapsedFraction():Number
-    {
-        return _elapsedFraction;
+     *  An animation 'cycle' is defined as a single repetition of the animation,
+     *  where the repeatCount property defines the number of
+     *  cycles that will be played.
+     */
+    public function get cycleFraction():Number
+    {
+        return _cycleFraction;
     }

     //----------------------------------
@@ -524,7 +492,7 @@
      * calculate the value at that fraction.
      *
      * @param value The IEaser object which will be used to calculate the
-     * eased elapsed fraction every time a animation event occurs. A value
+     * eased elapsed fraction every time an animation event occurs. A value
      * of null will be interpreted as meaning no easing is
      * desired, which is equivalent to using a Linear ease, or
      * animation.easer = Linear.getInstance();.
@@ -584,14 +552,14 @@
         if (!timer)
         {
             Timeline.pulse();
-            timer = new Timer(_resolution);
+            timer = new Timer(TIMER_RESOLUTION);
             timer.addEventListener(TimerEvent.TIMER, timerHandler);
             timer.start();
         }

-        _intervalTime = Timeline.currentTime;
-
-        animation.startTime = _intervalTime;
+        intervalTime = Timeline.currentTime;
+
+        animation.startTime = animation.cycleStartTime = intervalTime;
     }

     private static function removeAnimationAt(index:int):void
@@ -610,7 +578,7 @@
         // If no more animations running or pending, stop the timer
         if (timer && activeAnimations.length == 0 && delayedStartAnims.length == 0)
         {
-            _intervalTime = NaN;
+            intervalTime = NaN;
             timer.reset();
             timer = null;
         }
@@ -627,7 +595,7 @@
     private static function timerHandler(event:TimerEvent):void
     {
         var oldTime:Number = intervalTime;
-        _intervalTime = Timeline.pulse();
+        intervalTime = Timeline.pulse();

         var n:int = activeAnimations.length;
         var i:int = 0;
@@ -683,7 +651,8 @@
         if (_isPlaying || _doSeek)
         {

-            var currentTime:Number = intervalTime - startTime;
+            var currentTime:Number = intervalTime - cycleStartTime;
+            _playheadTime = intervalTime - startTime;
             if (currentTime >= duration &&
                 (repeatCount == 0 || numRepeats < repeatCount))
             {
@@ -695,9 +664,9 @@
                     else
                         numRepeats = 1 + currentTime / (duration + repeatDelay);
                 if (repeatDelay == 0) {
-                    startTime += duration;
-                    currentTime = intervalTime - startTime;
-                    if (repeatBehavior == REVERSE)
+                    cycleStartTime += duration;
+                    currentTime = intervalTime - cycleStartTime;
+                    if (repeatBehavior == RepeatBehavior.REVERSE)
                         _invertValues = !_invertValues;
                     repeated = true;
                 }
@@ -705,13 +674,11 @@
                 {
                     if (_doSeek)
                     {
-                        var cycleTime:Number = currentTime % (duration + repeatDelay);
-                        if (cycleTime < duration)
-                            _elapsedTime = cycleTime;
-                        else
-                            _elapsedTime = duration; // must be in repeatDelay phase
-                        calculateValue(_elapsedTime);
-                        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
+                        _cycleTime = currentTime % (duration + repeatDelay);
+                        if (_cycleTime > duration)
+                            _cycleTime = duration; // must be in repeatDelay phase
+                        calculateValue(_cycleTime);
+                        sendUpdateEvent();
                         return false;
                     }
                     else
@@ -719,9 +686,9 @@
                         // repeatDelay: send out a final update for this cycle with the
                         // end value, then schedule a timer to wake up and
                         // start the next cycle
-                        _elapsedTime = duration;
-                        calculateValue(_elapsedTime);
-                        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
+                        _cycleTime = duration;
+                        calculateValue(_cycleTime);
+                        sendUpdateEvent();
                         removeAnimation(this);
                         var delayTimer:Timer = new Timer(repeatDelay, 1);
                         delayTimer.addEventListener(TimerEvent.TIMER, repeat);
@@ -730,7 +697,7 @@
                     }
                 }
             }
-            _elapsedTime = currentTime;
+            _cycleTime = currentTime;

             calculateValue(currentTime);

@@ -741,16 +708,34 @@
             }
             else
             {
-                sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
+                sendUpdateEvent();
                 if (repeated)
-                    sendAnimationEvent(AnimationEvent.ANIMATION_REPEAT);
+                    sendAnimationEvent(EffectEvent.EFFECT_REPEAT);
             }
         }
         return animationEnded;
     }

     /**
-     * Utility function for dispatching a specified AnimationEvent.
+     * Utility function for dispatching an update event to the
+     * animationTarget. This is a separate function for performance
+     * reasons; don't want to bother switching on the event type for the
+     * common case of update events.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    private function sendUpdateEvent():void
+    {
+        if (_animationTarget)
+            _animationTarget.animationUpdate(this);
+    }
+
+    /**
+     * Utility function for dispatching a specified event to
+     * the animationTarget.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -759,20 +744,23 @@
      */
     private function sendAnimationEvent(eventType:String):void
     {
-        var event:AnimationEvent = new AnimationEvent(eventType);
-        event.animation = this;
-        dispatchEvent(event);
-    }
-
-    // TODO (chaase): Make currentValue a map instead, keyed off of
-    // property string. Then the mapping between the order in currentValue
-    // and that in an effect's motion paths array is not so magical
-    /**
-     * This array holds the values as of the current frame of the Animation.
-     * The order of the values are the same as the order given in the
-     * animationProperties array
-     */
-    public var currentValue:Array = [];
+        if (_animationTarget)
+            switch (eventType) {
+                case EffectEvent.EFFECT_START:
+                    _animationTarget.animationStart(this);
+                    break;
+                case EffectEvent.EFFECT_END:
+                    _animationTarget.animationEnd(this);
+                    break;
+                case EffectEvent.EFFECT_REPEAT:
+                    _animationTarget.animationRepeat(this);
+                    break;
+                case EffectEvent.EFFECT_UPDATE:
+                    // here for completeness; usually handled in sendUpdateEvent
+                    _animationTarget.animationUpdate(this);
+                    break;
+            }
+    }

     /**
      * @private
@@ -783,23 +771,24 @@
     {
         var i:int;

-        currentValue = [];
+        currentValue = new Object();
         if (duration == 0)
         {
-            for (i = 0; i < animationProperties.length; ++i)
-                currentValue[0] = animationProperties[i].
-                    keyframes[animationProperties[i].keyframes.length - 1].value;
+            for (i = 0; i < motionPaths.length; ++i)
+                currentValue[motionPaths[i].property] = motionPaths[i].
+                    keyframes[motionPaths[i].keyframes.length - 1].value;
             return;
         }

         if (_invertValues)
             currentTime = duration - currentTime;

-        _elapsedFraction = easer.ease(currentTime/duration);
-
-        if (animationProperties)
-            for (i = 0; i < animationProperties.length; ++i)
-                currentValue[i] = animationProperties[i].getValue(_elapsedFraction);
+        _cycleFraction = easer.ease(currentTime/duration);
+
+        if (motionPaths)
+            for (i = 0; i < motionPaths.length; ++i)
+                currentValue[motionPaths[i].property] =
+                    motionPaths[i].getValue(_cycleFraction);
     }

     /**
@@ -848,8 +837,8 @@
             // to their end values. Seems correct, but should check this.
             calculateValue(duration);

-            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
-            sendAnimationEvent(AnimationEvent.ANIMATION_END);
+            sendUpdateEvent();
+            sendAnimationEvent(EffectEvent.EFFECT_END);
         }

         // The rest of what we need to do is handled by the stop() function
@@ -862,7 +851,7 @@
         if (!timer)
         {
             Timeline.pulse();
-            timer = new Timer(_resolution);
+            timer = new Timer(TIMER_RESOLUTION);
             timer.addEventListener(TimerEvent.TIMER, timerHandler);
             timer.start();
         }
@@ -886,7 +875,8 @@
     }

     /**
-     * Start the animation
+     * Start the animation. If the animation is already playing, it
+     * will be stopped first, then played.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -895,6 +885,9 @@
      */
     public function play():void
     {
+        // stop an already-playing animation first
+        stop();
+
         if (startDelay > 0)
             addToDelayedAnimations(startDelay);
         else
@@ -921,12 +914,12 @@
         // TODO (chaase): Redundant for cases that set this again below
         // Should only do this for playing animation, as the stopped animations
         // do it for themselves
-        startTime = _intervalTime - playheadTime;
+        startTime = cycleStartTime = intervalTime - playheadTime;
         _doSeek = true;

         if (!_isPlaying)
         {
-            _intervalTime = Timeline.currentTime;
+            intervalTime = Timeline.currentTime;
             // TODO: comments...
             if (includeStartDelay && startDelay > 0)
             {
@@ -947,7 +940,7 @@
                     var postDelaySeekTime:Number = playheadTime - startDelay;
                     if (postDelaySeekTime < 0)
                     {
-                        animPendingTime = _intervalTime + (startDelay - playheadTime);
+                        animPendingTime = intervalTime + (startDelay - playheadTime);
                         // add it back into the array in the proper order
                         var insertIndex:int = -1;
                         for (i = 0; i < delayedStartAnims.length; ++i)
@@ -971,7 +964,7 @@
                         // seek into the now-playing animation by that much
                         playheadTime -= startDelay;
                         start();
-                        startTime = _intervalTime - playheadTime;
+                        startTime = cycleStartTime = intervalTime - playheadTime;
                         doInterval();
                         _doSeek = false;
                         return;
@@ -979,22 +972,16 @@
                 }
             }
             // start/end values only valid after animation starts
-            sendAnimationEvent(AnimationEvent.ANIMATION_START);
+            sendAnimationEvent(EffectEvent.EFFECT_START);
             setupInterpolation();
-            startTime = _intervalTime - playheadTime;
+            startTime = cycleStartTime = intervalTime - playheadTime;
         }
         doInterval();
         _doSeek = false;
     }

     /**
-     * Sets up interpolation for the animation. If there is no interpolator
-     * set on the animation, then it figures out whether it should use
-     * NumberInterpolator or NumberArrayInterpolator, based on whether the
-     * start/end values are arrays or not. Also, if the start/end values
-     * are arrays but the supplied interpolator does not interpolate
-     * Arrays, then it sets up an ArrayInterpolator that uses the supplied
-     * interpolator for each element.
+     * Sets up interpolation for the animation.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -1003,9 +990,9 @@
      */
     private function setupInterpolation():void
     {
-        if (interpolator && animationProperties)
-            for (var i:int = 0; i < animationProperties.length; ++i)
-                animationProperties[i].interpolator = interpolator;
+        if (interpolator && motionPaths)
+            for (var i:int = 0; i < motionPaths.length; ++i)
+                motionPaths[i].interpolator = interpolator;
     }

     /**
@@ -1022,7 +1009,7 @@
         if (_isPlaying)
         {
             _doReverse = false;
-            seek(duration - _elapsedTime);
+            seek(duration - _cycleTime);
             _invertValues = !_invertValues;
         }
         else
@@ -1033,6 +1020,8 @@

     /**
      * Pauses the effect until the resume() method is called.
+     * If stop() is called before resume(), then
+     * the animation cannot be resumed.
      *
      * @see resume()
      *
@@ -1095,7 +1084,8 @@
         }
         else
         {
-            startTime = intervalTime - _elapsedTime;
+            cycleStartTime = intervalTime - _cycleTime;
+            startTime = intervalTime - _playheadTime;
             if (_doReverse)
             {
                 reverse();
@@ -1121,13 +1111,13 @@
      */
     private function repeat(event:TimerEvent = null):void
     {
-        if (repeatBehavior == REVERSE)
+        if (repeatBehavior == RepeatBehavior.REVERSE)
             _invertValues = !_invertValues;
         calculateValue(0);
         // TODO (chaase): Make sure we're not already sending out an UPDATE
         // event with this value
-        sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
-        sendAnimationEvent(AnimationEvent.ANIMATION_REPEAT);
+        sendUpdateEvent();
+        sendAnimationEvent(EffectEvent.EFFECT_REPEAT);
         Animation.addAnimation(this);
     }

@@ -1162,7 +1152,7 @@
             }
         }
         numRepeats = 1;
-        sendAnimationEvent(AnimationEvent.ANIMATION_START);
+        sendAnimationEvent(EffectEvent.EFFECT_START);

         // start/end values may be changed by Animate (set dynamically),
         // so now we set up our interpolator based on the real values
@@ -1179,7 +1169,7 @@
         {
             // TODO (chaase): Make sure we're not already sending out an
             // UPDATE event with this start value
-            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE);
+            sendUpdateEvent();
             Animation.addAnimation(this);
             _isPlaying = true;
             if (actualStartTime > 0)


Fixed a bug that caused ResourceLoader to not properly clean up its queue when dealing with immediately finishing resources using the "attach://"-protocol

--- src/reprise/external/ResourceLoader.as
+++ src/reprise/external/ResourceLoader.as
@@ -62,15 +62,21 @@
 			{
 				cmd.execute();
 				m_numCommandsExecuted++;
+				m_numResourcesLoaded++;
 				//Some attached resources finish loading immediately, while others take a frame
 				if (!IResource(cmd).didFinishLoading())
 				{
+					m_isExecutingAsynchronously = true;
+					cmd.id = m_nextResourceId++;
+					cmd.setQueueParent(this);
+					m_currentCommands.push(cmd);
 					registerListenersForAsynchronousCommand(IAsynchronousCommand(cmd));
 					return;
 				}
-				m_numResourcesLoaded++;
-				m_currentCommands.push(cmd);
-				m_numBytesLoaded += cmd.bytesTotal();
+				else
+				{
+					m_numBytesLoaded += cmd.bytesTotal();
+				}
 				return;
 			}
 			addCommand(cmd);


Transferred from the Adobe Open Source Subversion Repository

Revision: 3279
Author:   chaase@adobe.com
Date:     2008-09-20T00:11:18.055533Z

Log Message:
-----------
Fixed SDK-16883, which was causing artifacts with transparent pixels in BitmapGraphic. Also fixed various initializations of Graphics.lineStyle() in the graphics elements classes (lineStyle(0,0,0) is incorrect; should be lineStyle(), which sets the weight to the default NaN).

Reviewed by Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/FilledElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/BitmapGraphic.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
@@ -143,7 +143,7 @@
 		if (stroke)
 			stroke.draw(g,new Rectangle(measuredX, measuredY, width, height));
 		else
-			g.lineStyle(0, 0, 0);
+			g.lineStyle();

 		// Even though this is a stroked element, we still need to beginFill/endFill
 		// otherwise subsequent fills could get messed up.


Transferred from the Adobe Open Source Subversion Repository

Revision: 22448
Author:   build@adobe.com
Date:     2011-09-08T19:26:12.465737Z

Log Message:
-----------
Version update to 4.6.0

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/airspark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_air/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/flex-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_spark/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark_dmv/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/rpc/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/charts/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_flashflexkit/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_dmv/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/build.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/modules/compiler/src/java/flex2/tools/VersionInfo.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/airframework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/advancedgrids/src/mx/core/Version.as</path>

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

--- frameworks/projects/airspark/src/spark/core/Version.as
+++ frameworks/projects/airspark/src/spark/core/Version.as
@@ -15,4 +15,4 @@
  *  @private
  *  Version string for this class.
  */
-mx_internal static const VERSION:String = "4.5.2.0";
+mx_internal static const VERSION:String = "4.6.0.0";


Transferred from the Adobe Open Source Subversion Repository

Revision: 6182
Author:   jimurphy@adobe.com
Date:     2009-04-21T17:17:58.392301Z

Log Message:
-----------
Merge 3.x revisions 5830,5880,5891,5992,6136 -> trunk

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LoaderUtil.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/ChannelSet.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/ChannelSet.as
+++ frameworks/projects/rpc/src/mx/messaging/ChannelSet.as
@@ -1698,6 +1698,7 @@
 import mx.messaging.messages.CommandMessage;
 import mx.messaging.messages.ErrorMessage;
 import mx.rpc.AsyncToken;
+import mx.collections.ArrayCollection;

 use namespace mx_internal;

@@ -1768,10 +1769,10 @@
      */
     override protected function resultHandler(message:IMessage):void
     {
-        if ((message.body != null) && (message.body is Array))
+        if ((message.body != null) && (message.body is Array || message.body is ArrayCollection))
         {
             var channelFailoverURIs:Object = {};
-            var mappings:Array = message.body as Array;
+            var mappings:Array = message.body is Array? message.body as Array : (message.body as ArrayCollection).toArray();
             var n:int = mappings.length;
             for (var i:int = 0; i < n; i++)
             {


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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22385
Author:   smgilson@adobe.com
Date:     2011-09-02T16:15:19.044266Z

Log Message:
-----------
Remove ASDoc content that should not have been copied from Halo List to Spark List.as

Update allowed values for contentBackgroundAppearance in Callout.as

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

Modified Paths:
--------------
<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/mobilecomponents/src/spark/components/Callout.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -829,11 +829,6 @@
      *  such as dragEnter and dragOver,
      *  and call the DragEvent's preventDefault() method
      *  to customize the way the list class accepts dropped data.

-     *
-     *
When you set dropEnabled to true,
-     *  Flex automatically calls the showDropFeedback()
-     *  and hideDropFeedback() methods to display the drop
-     *  indicator.

      *
      *
Drag and drop is not supported on mobile devices where
      *  interactionMode is set to touch.