Transferred from the Adobe Open Source Subversion Repository

Revision: 5097
Author:   gauravj@adobe.com
Date:     2009-02-27T02:06:23.424936Z

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:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemTreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/WindowExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemControlHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/airframework/src/mx/managers/WindowedSystemChildrenList.as
+++ frameworks/projects/airframework/src/mx/managers/WindowedSystemChildrenList.as
@@ -47,6 +47,10 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function WindowedSystemChildrenList(owner:WindowedSystemManager,
 									   lowerBoundReference:QName,
@@ -96,6 +100,10 @@

 	/**
 	 *  @copy mx.core.IChildList#numChildren
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get numChildren():int
 	{
@@ -104,6 +112,10 @@

 	/**
 	 *  @copy mx.core.IChildList#addChild
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function addChild(child:DisplayObject):DisplayObject
 	{
@@ -115,6 +127,10 @@

 	/**
 	 *  @copy mx.core.IChildList#addChildAt
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function addChildAt(child:DisplayObject, index:int):DisplayObject
 	{
@@ -126,6 +142,10 @@

 	/**
 	 *  @copy mx.core.IChildList#removeChild
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function removeChild(child:DisplayObject):DisplayObject
 	{
@@ -141,6 +161,10 @@

 	/**
 	 *  @copy mx.core.IChildList#removeChildAt
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function removeChildAt(index:int):DisplayObject
 	{
@@ -153,6 +177,10 @@

 	/**
 	 *  @copy mx.core.IChildList#getChildAt
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
   	public function getChildAt(index:int):DisplayObject
   	{
@@ -164,6 +192,10 @@

 	/**
 	 *  @copy mx.core.IChildList#getChildByName
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
   	public function getChildByName(name:String):DisplayObject
   	{
@@ -172,6 +204,10 @@

 	/**
 	 *  @copy mx.core.IChildList#getChildIndex
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
   	public function getChildIndex(child:DisplayObject):int
   	{
@@ -182,6 +218,10 @@

 	/**
 	 *  @copy mx.core.IChildList#setChildIndex
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function setChildIndex(child:DisplayObject, newIndex:int):void
 	{
@@ -191,6 +231,10 @@

 	/**
 	 *  @copy mx.core.IChildList#getObjectsUnderPoint
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function getObjectsUnderPoint(point:Point):Array
 	{
@@ -199,6 +243,10 @@

 	/**
 	 *  @copy mx.core.IChildList#contains
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function contains(child:DisplayObject):Boolean
 	{


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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/advancedDataGrid/OLAPDataGridGroupRendererAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/advancedDataGrid/OLAPDataGridGroupRendererAutomationImpl.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 mx.automation.delegates.advancedDataGrid
 {


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

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

 package mx.collections
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7404
Author:   aharui@adobe.com
Date:     2009-05-29T04:29:49.110556Z

Log Message:
-----------
Fix resourcemanager injection from frame1 cleanup

QE Notes: None
Doc Notes: None
Bugs: SDK-21413
Reviewer: corey
tests: checkintests mustella/resources

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as

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

--- frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
@@ -282,6 +282,11 @@
             localName = bundleName.substring(colonIndex + 1);
         }

+        // If a bundle with that locale and bundle name already exists
+        // in the ResourceManager, don't replace it.
+        if (getResourceBundle(locale, bundleName))
+            return;
+
         // The autogenerated resource bundle classes produced by the
         // mxmlc and compc compilers have names that incorporate
         // the locale and bundle name, such as "en_US$core_properties".


Added ArrayUtil.stableSort

Added ArrayUtil.stableSort

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@4990 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/ArrayUtil.as
+++ src/as/com/threerings/util/ArrayUtil.as
@@ -39,7 +39,7 @@
     {
         return arr.slice();
     }
-
+
     /**
      * Sort the specified array according to natural order- all elements
      * must implement Comparable or be null.
@@ -47,6 +47,34 @@
     public static function sort (arr :Array) :void
     {
         arr.sort(Comparators.COMPARABLE);
+    }
+
+    /**
+     * Perform a stable sort on the specified array.
+     * @param comp a function that takes two objects in the array and returns -1 if the first
+     * object should appear before the second in the container, 1 if it should appear after,
+     * and 0 if the order does not matter.
+     */
+    public static function stableSort (arr :Array, comp :Function) :void
+    {
+        // insertion sort implementation
+
+        var n :int = arr.length;
+        for (var i :int = 1; i < n; ++i) {
+            var val :* = arr[i];
+            var j :int = i - 1;
+            while (j >= 0) {
+                var compVal :* = arr[j];
+                if (comp(val, compVal) < 0) {
+                    break;
+                }
+
+                arr[j + 1] = compVal;
+                --j;
+            }
+
+            arr[j + 1] = val;
+        }
     }

     /**


fixed xpath evaluator to get the children when nodeType == '*'

--- src/aerys/minko/scene/SceneIterator.as
+++ src/aerys/minko/scene/SceneIterator.as
@@ -89,6 +89,8 @@

 				method.apply(null, parameters);
 			}
+
+			return this;
 		}

 		private function initialize(path : String, selection : Vector.<ISceneNode>) : void
@@ -106,7 +108,7 @@
 			}

 			// parse
-			while (token)
+			while (token = getToken())
 			{
 				switch (token)
 				{
@@ -123,8 +125,6 @@
 						parseNodeType(token);
 						break ;
 				}
-
-				token = getToken();
 			}
 		}

@@ -214,19 +214,18 @@
 				if (node is Group)
 				{
 					var group 		: Group = node as Group;
-					var numChildren : int 	= group.numChildren;
+					var numChildren : uint 	= group.numChildren;

-					for (var i : int = 0; i < numChildren; ++i)
+					for (var i : uint = 0; i < numChildren; ++i)
 					{
 						var child 		: ISceneNode 	= group.getChildAt(i);
-						var childType 	: String 		= getQualifiedClassName(child).split('::')[1];
+						var className	: String		= getQualifiedClassName(child)
+						var childType 	: String 		= className.substr(className.lastIndexOf(':') + 1);

 						if (typeName == null || childType.toLowerCase() == typeName)
 							_selection.push(child);
 					}
 				}
-//				else
-//					_selection.push(node);
 			}
 		}

@@ -269,18 +268,16 @@

 		private function parseNodeType(nodeType : String) : void
 		{
-			if (nodeType == '*' || nodeType == '.')
+			if (nodeType == '.')
 			{
 				// nothing
 			}
-			else if (nodeType == '..')
-			{
+			if (nodeType == '..')
 				selectParents();
-			}
+			else if (nodeType == '*')
+				selectChildren();
 			else
-			{
 				selectChildren(nodeType);
-			}

 			// apply predicates
 			var token : String = getToken();


adding a try/catch because ExternalInterface.available doesn't work as expected

--- src/patternpark/net/navigateToWindow.as
+++ src/patternpark/net/navigateToWindow.as
@@ -48,10 +48,19 @@
             }
         ]]>).toString();

-        if(!ExternalInterface.available || !ExternalInterface.call(js, url, winName, toolbar, scrollbars, location, status, menubar, resizable, width, height, left, top, uniqueWinName)) {
+        var openWithNavigate:Function = function(url:String):void {
             var urlRequest:URLRequest = new URLRequest(url);
             navigateToURL(urlRequest, "_blank");
             uniqueWinName = null;
+        }
+
+        try {
+            if(!ExternalInterface.available || !ExternalInterface.call(js, url, winName, toolbar, scrollbars, location, status, menubar, resizable, width, height, left, top, uniqueWinName)) {
+                openWithNavigate(url);
+            }
+        }
+        catch(e:SecurityError) {
+            openWithNavigate(url);
         }

         return new WindowContext(uniqueWinName);


Some changes in RacingScreen class.

Some changes in RacingScreen class.

--- src/project/view/racing/RacingScreen.as
+++ src/project/view/racing/RacingScreen.as
@@ -177,7 +177,6 @@
 		private function onEnterFrame():void
 		{
 			_racetrackSystem.updateTimer();
-			//Debug.trace(_racetrackSystem.currentLapTime);
 		}

@@ -280,7 +279,13 @@
 		override protected function setup():void
 		{
 			super.setup();
+
 			_audioManager = main.moduleManager.getModule(AudioManager.defaultID);
+
+			_width = main.stage.stageWidth;
+			_height = main.stage.stageHeight;
+			_render2D = screenManager.render2D;
+			_render2D.antiAliasing = 0;
 		}

@@ -302,14 +307,7 @@
 		 */
 		override protected function createChildren():void
 		{
-			_width = main.stage.stageWidth;
-			_height = main.stage.stageHeight;
-
-			_render2D = screenManager.render2D;
-			_render2D.antiAliasing = 0;
-
 			/* Prepare sounds. */
-
 			_sounds = new Dictionary();
 			_sounds["checkpointSound"] = getResource("soundCheckpoint");
 			_sounds["ringCollectSound"] = getResource("soundRing");


simply disable frustum culling in Mesh.initialize() as it doesn't work properly for now

--- src/aerys/minko/scene/node/mesh/Mesh.as
+++ src/aerys/minko/scene/node/mesh/Mesh.as
@@ -244,7 +244,7 @@
 			_geometry = geometry;
 			this.effect = effect || DEFAULT_EFFECT;

-			_visibility.frustumCulling = FrustumCulling.ENABLED ^ FrustumCulling.TOP;
+//			_visibility.frustumCulling = FrustumCulling.BOX ^ FrustumCulling.TOP_BOX;
 			addController(_visibility);

 			while (controllers && !(controllers[0] is AbstractController))


I-frame recovery logic.

I-frame recovery logic.

This still needs to take into account frame duration but it’s a lot
closer. With this change I can see a skip in video playback but I don’t
get looping nor do I see invalid P-frame decoding. Appears to work
properly with seeking and other corner cases.

--- HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
@@ -96,8 +96,7 @@
 			{
 				// Reset low water mark for the file handler so we don't drop stuff.
 				trace("RESETTING LOW WATER MARK");
-				flvLowWaterAudio = 0;
-				flvLowWaterVideo = 0;
+				clearFLVWaterMarkFilter();
 			}

 			if( key && !key.isLoading && !key.isLoaded)
@@ -355,7 +354,15 @@

 		public static var flvLowWaterAudio:uint = 0;
 		public static var flvLowWaterVideo:uint = 0;
+		public static var flvRecoveringIFrame:Boolean = false;
 		public const filterThresholdMs:uint = 0;
+
+		private function clearFLVWaterMarkFilter():void
+		{
+			flvLowWaterAudio = 0;
+			flvLowWaterVideo = 0;
+			flvRecoveringIFrame = false;
+		}

 		private function handleFLVMessage(timestamp:uint, message:ByteArray):void
 		{
@@ -381,9 +388,10 @@
 			var isKeyFrame:Boolean = false;
 			if(type == 9)
 			{
-				if(message[11] == FLVTags.VIDEO_CODEC_AVC_KEYFRAME)
-				{
-					trace("Got AVCC or keyframe, always pass");
+				if(message[11] == FLVTags.VIDEO_CODEC_AVC_KEYFRAME
+					&& message[12] == FLVTags.AVC_MODE_AVCC)
+				{
+					trace("Got AVCC, always pass.");
 					alwaysPass = true;
 				}

@@ -393,7 +401,30 @@

 			if(type == 9)
 			{
-				if(timestamp < flvLowWaterVideo - filterThresholdMs && !alwaysPass)
+				var videoWasBelowWatermark:Boolean = (timestamp < flvLowWaterVideo - filterThresholdMs);
+				var willSkip:Boolean = false;
+
+				if(flvRecoveringIFrame)
+				{
+					// Skip until we encounter an I-frame past the filter threshold.
+					willSkip = true;
+					if(isKeyFrame && !videoWasBelowWatermark)
+					{
+						// We got past filter and saw an I-frame... stop recovery.
+						flvRecoveringIFrame = false;
+						willSkip = false;
+					}
+				}
+				else
+				{
+					if(videoWasBelowWatermark && !alwaysPass)
+					{
+						flvRecoveringIFrame = true;
+						willSkip = true;
+					}
+				}
+
+				if(willSkip)
 				{
 					trace("SKIPPING TOO LOW FLV VID TS @ " + timestamp);
 					if(SEND_LOGS)
@@ -409,7 +440,7 @@
 			}
 			else if(type == 8)
 			{
-				if(timestamp < flvLowWaterAudio - filterThresholdMs)
+				if(timestamp <= flvLowWaterAudio - filterThresholdMs)
 				{
 					trace("SKIPPING TOO LOW FLV AUD TS @ " + timestamp);
 					if(SEND_LOGS)


far plane 60.0f when in VR mode. Fixes perfomance issues on NUCs.


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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPHierarchy.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPHierarchy.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


simplify ADTS header parsing code related to #135

--- src/org/mangui/hls/demux/AACDemuxer.as
+++ src/org/mangui/hls/demux/AACDemuxer.as
@@ -7,13 +7,15 @@
     CONFIG::LOGGING {
         import org.mangui.hls.utils.Log;
     }
-    /** Constants and utilities for the AAC audio format. **/
+    /** Constants and utilities for the AAC audio format, refer to
+     *  http://wiki.multimedia.cx/index.php?title=ADTS
+     **/
     public class AACDemuxer implements Demuxer {
-        /** ADTS Syncword (111111111111), ID (MPEG4), layer (00) and protection_absent (1).**/
+        /** ADTS Syncword (0xFFF), ID:0 (MPEG4), layer (00) and protection_absent (1:no CRC).**/
         private static const SYNCWORD : uint = 0xFFF1;
-        /** ADTS Syncword with MPEG2 stream ID (used by e.g. Squeeze 7). **/
+        /** ADTS Syncword (0xFFF), ID:1 (MPEG2), layer (00) and protection_absent (1: no CRC).**/
         private static const SYNCWORD_2 : uint = 0xFFF9;
-        /** ADTS Syncword with MPEG2 stream ID (used by e.g. Envivio 4Caster). **/
+        /** ADTS Syncword (0xFFF), ID:1 (MPEG2), layer (00) and protection_absent (0: CRC).**/
         private static const SYNCWORD_3 : uint = 0xFFF8;
         /** ADTS/ADIF sample rates index. **/
         private static const RATES : Array = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];
@@ -115,8 +117,9 @@
             // we need at least 6 bytes, 2 for sync word, 4 for frame length
             while ((adts.bytesAvailable > 5) && (short != SYNCWORD) && (short != SYNCWORD_2) && (short != SYNCWORD_3)) {
                 short = adts.readUnsignedShort();
-            }
-
+                adts.position--;
+            }
+            adts.position++;
             if (short == SYNCWORD || short == SYNCWORD_2 || short == SYNCWORD_3) {
                 var profile : uint = (adts.readByte() & 0xF0) >> 6;
                 // Correcting zero-index of ADIF and Flash playing only LC/HE.
@@ -169,20 +172,15 @@
                     if (frame_start) {
                         frames.push(new AudioFrame(frame_start, frame_length, frame_length, samplerate));
                     }
-                    if (short == SYNCWORD_3) {
-                        // ADTS header is 9 bytes.
-                        frame_length = ((adts.readUnsignedInt() & 0x0003FFE0) >> 5) - 9;
-                        frame_start = adts.position + 3;
-                        adts.position += frame_length + 3;
-                    } else {
-                        // ADTS header is 7 bytes.
-                        frame_length = ((adts.readUnsignedInt() & 0x0003FFE0) >> 5) - 7;
-                        frame_start = adts.position + 1;
-                        adts.position += frame_length + 1;
-                    }
+                    // protection_absent=1, crc_len = 0,protection_absent=0,crc_len=2
+                    var crc_len : int = (1 - (short & 0x1)) << 1;
+                    // ADTS header is 7+crc_len bytes.
+                    frame_length = ((adts.readUnsignedInt() & 0x0003FFE0) >> 5) - 7 - crc_len;
+                    frame_start = adts.position + 1 + crc_len;
+                    adts.position += frame_length + 1 + crc_len;
                 } else {
                     CONFIG::LOGGING {
-                        Log.debug("no ADTS header found, probing...");
+                        Log.debug2("no ADTS header found, probing...");
                     }
                     adts.position--;
                 }


fix unique sort

fix unique sort

--- src/com/kemsky/Stream.as
+++ src/com/kemsky/Stream.as
@@ -746,7 +746,7 @@
         {
             var result:* = source.sort.apply(null, rest);

-            if(result == 0 && source.length > 1) //todo throw only if UNIQUESORT
+            if(result is Number && result == 0)
             {
                 //this is error, don't want to trade type safety just for this case
                 //see 'unique' method
@@ -778,7 +778,7 @@
         {
             var result:* = source.sortOn.apply(null, [names, options]);

-            if(result == 0 && source.length > 1) //todo throw only if UNIQUESORT
+            if(result is Number && result == 0)
             {
                 throw new Error("Stream is not unique");
             }


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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/MenuBarAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/MenuBarAutomationImpl.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 mx.automation.delegates.controls
 {


VariableListController now shows object names when view is a List.

Change-Id: I14cee7450b8ec4e8d7c1cd8da70dc794b3dd69ca

--- WeaveUI/src/weave/ui/VariableListController.as
+++ WeaveUI/src/weave/ui/VariableListController.as
@@ -277,7 +277,7 @@
 			if (_labelFunction != null)
 				return _labelFunction(item);
 			else
-				return String(item);
+				return getObjectName(item) || String(item);
 		}

 		public function set labelFunction(value:Function):void


Added isValidSymbolName, fixed null pointer error in encodeString().

Change-Id: I67109eb5f4eb463b4a1d277a24c16cb18c20bb6f

--- WeaveCore/src/weave/compiler/Compiler.as
+++ WeaveCore/src/weave/compiler/Compiler.as
@@ -593,6 +593,20 @@
 		public function setHashOperator(hashFunction:Function):void
 		{
 			constants[OPERATOR_ESCAPE + '#'] = operators['#'] = hashFunction;
+		}
+
+		/**
+		 * Tests if an expression is a single, valid symbol name.
+		 */
+		public function isValidSymbolName(expression:String):Boolean
+		{
+			var tokens:Array = getTokens(expression);
+			if (tokens.length != 1 || expression != tokens[0])
+				return false;
+			var str:String = tokens[0];
+			if (operators.hasOwnProperty(str.charAt(0)))
+				return false;
+			return !numberRegex.exec(str);
 		}

 		/**
@@ -979,6 +993,8 @@
 		 */
 		public static function encodeString(string:String, quote:String = '"'):String
 		{
+			if (string == null)
+				return 'null';
 			var result:Array = new Array(string.length);
 			for (var i:int = 0; i < string.length; i++)
 			{


+ BGRenderer 增加了 getAsset 方法，继承的类可以覆盖该方法以获取实际加载的资源

--- age/src/age/renderers/BGRenderer.as
+++ age/src/age/renderers/BGRenderer.as
@@ -1,21 +1,22 @@
 package age.renderers
 {
-	import age.AGE;
 	import age.assets.BGInfo;
 	import age.assets.SceneInfo;
 	import age.assets.TextureAsset;
-	import age.filters.WaveFilter;
 	import nt.assets.IAsset;
 	import starling.events.Event;

 	/**
-	 * BGRenderer 是基于 BaseRenderer 的基本渲染器<br/>
-	 * 用于渲染场景背景图片
+	 * BGRenderer 用于渲染场景静态图片
 	 * @author zhanghaocong
 	 *
 	 */
 	public class BGRenderer extends TextureRenderer
 	{
+		/**
+		 * constructor
+		 *
+		 */
 		public function BGRenderer()
 		{
 			super();
@@ -52,14 +53,31 @@
 				x = _info.x;
 				y = _info.y;
 				z = _info.z;
-				asset = TextureAsset.get(SceneInfo.folder + "/" + _info.texturePath);
+				asset = getAsset();
 				asset.useThumb = false;
 				asset.load();
 			}
 		}

+		/**
+		 * 获得本次需要使用的资源
+		 * @return
+		 *
+		 */
+		protected function getAsset():TextureAsset
+		{
+			return TextureAsset.get(SceneInfo.folder + "/" + _info.texturePath);
+		}
+
+		/**
+		 * BGRenderer 每当渲染时广播该事件
+		 */
 		public var onRender:Function;

+		/**
+		 * @inheritDoc
+		 *
+		 */
 		override public function onAssetLoadComplete(asset:IAsset):void
 		{
 			setTexture(_asset.textureAtlas.getTexture(info.textureName));


defaultDragMode now always starts in SELECT mode (no longer saved in
session state).

Change-Id: I8276de018eba364e40843793a618cece2568797f

--- WeaveUI/src/weave/visualization/layers/InteractionController.as
+++ WeaveUI/src/weave/visualization/layers/InteractionController.as
@@ -21,8 +21,9 @@
 {
 	import weave.api.WeaveAPI;
 	import weave.api.core.ILinkableObject;
+	import weave.api.getCallbackCollection;
 	import weave.api.newLinkableChild;
-	import weave.api.registerLinkableChild;
+	import weave.api.registerDisposableChild;
 	import weave.core.LinkableString;

 	/**
@@ -81,27 +82,30 @@
 			zoomIn.value = DCLICK;
 			zoomOut.value = [SHIFT, DCLICK].join(DELIM);
 			zoomToExtent.value = [CTRL, ALT, SHIFT, DCLICK].join(DELIM);
+
+			getCallbackCollection(this).addImmediateCallback(this, invalidate);
 		}

 		/**
 		 * This is the default mode to use when dragging and no modifier keys are pressed.
-		 */
-		public const defaultDragMode:LinkableString = registerLinkableChild(this, new LinkableString(null, verifyDefaultMode), validate);
+		 * Not included in session state.
+		 */
+		public const defaultDragMode:LinkableString = registerDisposableChild(this, new LinkableString(SELECT, verifyDefaultMode));
 		private function verifyDefaultMode(value:String):Boolean
 		{
 			return !value || [PROBE, SELECT, PAN, ZOOM].indexOf(value) >= 0;
 		}

-		public const probe:LinkableString 				= newLinkableChild(this, LinkableString, invalidate);
-		public const select:LinkableString 				= newLinkableChild(this, LinkableString, invalidate);
-		public const selectRemove:LinkableString 		= newLinkableChild(this, LinkableString, invalidate);
-		public const selectAdd:LinkableString 			= newLinkableChild(this, LinkableString, invalidate);
-		public const selectAll:LinkableString 			= newLinkableChild(this, LinkableString, invalidate);
-		public const pan:LinkableString 				= newLinkableChild(this, LinkableString, invalidate);
-		public const zoom:LinkableString 				= newLinkableChild(this, LinkableString, invalidate);
-		public const zoomIn:LinkableString 				= newLinkableChild(this, LinkableString, invalidate);
-		public const zoomOut:LinkableString 			= newLinkableChild(this, LinkableString, invalidate);
-		public const zoomToExtent:LinkableString 		= newLinkableChild(this, LinkableString, invalidate);
+		public const probe:LinkableString 				= newLinkableChild(this, LinkableString);
+		public const select:LinkableString 				= newLinkableChild(this, LinkableString);
+		public const selectRemove:LinkableString 		= newLinkableChild(this, LinkableString);
+		public const selectAdd:LinkableString 			= newLinkableChild(this, LinkableString);
+		public const selectAll:LinkableString 			= newLinkableChild(this, LinkableString);
+		public const pan:LinkableString 				= newLinkableChild(this, LinkableString);
+		public const zoom:LinkableString 				= newLinkableChild(this, LinkableString);
+		public const zoomIn:LinkableString 				= newLinkableChild(this, LinkableString);
+		public const zoomOut:LinkableString 			= newLinkableChild(this, LinkableString);
+		public const zoomToExtent:LinkableString 		= newLinkableChild(this, LinkableString);

 		//private const whitespace:RegExp = new RegExp("\s") ;
 		private const DELIM:String = ',';


asdoc

asdoc

--- src/com/kemsky/Stream.as
+++ src/com/kemsky/Stream.as
@@ -50,14 +50,14 @@
         public static const NUMERIC:uint = 16;

         /**
-         *  The source of data in the Stream.
+         *  The source of data in the stream.
          */
         public var source:Array;

         /**
          *  Constructor.
          *
-         *
Creates a new Stream using the specified source array.
+         *
Creates a new stream using the specified source array.
          *  If no array is specified an empty array will be used.

          */
         public function Stream(source:Array = null)
@@ -65,12 +65,10 @@
             this.source = source == null ? [] : source;
         }

-
-        /*
-         * Extended part
-         * -------------------------------------------
-         */
-
+        /**
+         * Creates a new stream for all items that are not strictly equal to undefined (item !== undefined).
+         * @return A new stream that contains all items from the original stream that are not equal to undefined.
+         */
         public function compact():Stream
         {
             return filter(defined(_));
@@ -175,27 +173,27 @@

         /**
-         * Check if Stream contains specified item
-         * @param item
-         * @return true if Stream contains item, false in other case
+         * Checks if the stream contains specified item
+         * @param item An item to check.
+         * @return A Boolean value of true if stream contains an item; otherwise false.
          */
         public function contains(item:*):Boolean
         {
             return indexOf(item) > -1;
         }

-
-        /**
-         * Removes all items from Stream
-         */
-        public function clear():void
+        /**
+         * Removes all items from the stream
+         * @return Current stream
+         */
+        public function clear():Stream
         {
             source = [];
-        }
-
-        /**
-         * Returns true if Stream does not contain any elements,
-         * else returns false.
+            return this;
+        }
+
+        /**
+         * Returns a Boolean value of true if Stream does not contain any items; otherwise false.
          */
         public function get empty():Boolean
         {
@@ -203,23 +201,27 @@
         }

         /**
-         * Creates new Stream that contains items starting from count index.
-         * @param count number of items to skip
-         * @return new Stream that contains items starting from count index.
+         * Creates a new stream that contains items starting from count index.
+         * @param count A number of items to skip
+         * @return A new stream that contains items starting from count index.
          */
         public function skip(count:int):Stream
         {
             return this.slice(count);
         }

+        /**
+         * Returns a Boolean value of true if the stream contains unique items; otherwise false.
+         */
         public function get unique():Boolean
         {
             var result:* = source.concat().sort(Array.UNIQUESORT);
             return result != 0;
         }

-        //ordinals
-
+        /**
+         * The first item of the stream
+         */
         public function get first():*
         {
             return source[0];
@@ -230,6 +232,9 @@
             source[0] = item;
         }

+        /**
+         * The second item of the stream
+         */
         public function get second():*
         {
             return source[1];
@@ -240,6 +245,9 @@
             source[1] = item;
         }

+        /**
+         * The third item of the stream
+         */
         public function get third():*
         {
             return source[2];
@@ -250,6 +258,9 @@
             source[2] = item;
         }

+        /**
+         * The fourth item of the stream
+         */
         public function get fourth():*
         {
             return source[3];
@@ -260,6 +271,9 @@
             source[3] = item;
         }

+        /**
+         * The fifth item of the stream
+         */
         public function get fifth():*
         {
             return source[4];
@@ -270,6 +284,9 @@
             source[4] = item;
         }

+        /**
+         * The sixth item of the stream
+         */
         public function get sixth():*
         {
             return source[5];
@@ -280,6 +297,9 @@
             source[5] = item;
         }

+        /**
+         * The seventh of the stream
+         */
         public function get seventh():*
         {
             return source[6];
@@ -290,6 +310,9 @@
             source[6] = item;
         }

+        /**
+         * The eighth item of the stream
+         */
         public function get eighth():*
         {
             return source[7];
@@ -300,6 +323,9 @@
             source[7] = item;
         }

+        /**
+         * The ninth item of the stream
+         */
         public function get ninth():*
         {
             return source[8];
@@ -310,6 +336,9 @@
             source[8] = item;
         }

+        /**
+         * The tenth item of the stream
+         */
         public function get tenth():*
         {
             return source[9];
@@ -320,6 +349,9 @@
             source[9] = item;
         }

+        /**
+         * The eleventh item of the stream
+         */
         public function get eleventh():*
         {
             return source[10];
@@ -329,6 +361,9 @@
         {
             source[10] = item;
         }
+        /**
+         * The twelfth item of the stream
+         */

         public function get twelfth():*
         {
@@ -340,6 +375,9 @@
             source[11] = item;
         }

+        /**
+         * The thirteenth item of the stream
+         */
         public function get thirteenth():*
         {
             return source[12];
@@ -350,6 +388,9 @@
             source[12] = item;
         }

+        /**
+         * The fourteenth item of the stream
+         */
         public function get fourteenth():*
         {
             return source[13];
@@ -360,6 +401,9 @@
             source[13] = item;
         }

+        /**
+         * The fifteenth item of the stream
+         */
         public function get fifteenth():*
         {
             return source[14];
@@ -370,7 +414,9 @@
             source[14] = item;
         }

-
+        /**
+         * The last item of the stream
+         */
         public function get last():*
         {
             return source[source.length - 1];
@@ -402,10 +448,10 @@
         }

         /**
-         * Creates new Stream that contains count of items starting from offset.
-         * @param count maximum items to take
-         * @param offset index to start from
-         * @return new Stream that contains count of items starting from offset.
+         * Creates a new stream that contains count of items starting from offset.
+         * @param count Maximum items to take.
+         * @param offset Index to start from.
+         * @return A new stream that contains count of items starting from offset.
          */
         public function take(count:int, offset:uint = 0):Stream
         {
@@ -560,11 +606,11 @@
          */

         /**
-         * Converts the elements in an array to strings,
-         * inserts the specified separator between the elements,
+         * Converts the items in a stream to strings,
+         * inserts the specified separator between the items,
          * concatenates them, and returns the resulting string.
          * @param sep used as separator
-         * @return A string consisting of the elements of an array converted to strings
+         * @return A string consisting of the items of an array converted to strings
          * and separated by the specified parameter.
          */
         public function join(sep:* = null):String
@@ -707,6 +753,13 @@
             }));
         }

+        /**
+         * Executes a test function on each item in the stream until an item is reached
+         * that returns true. Use this method to determine whether any items in a
+         * stream meet a criterion, such as having a value less than a particular number.
+         * @param callback
+         * @return  A Boolean value of true if any items in the stream return true for the specified function; otherwise false.
+         */
         public function some(callback:Function):Boolean
         {
             return source.some(function (item:*, index:int, array:Array):Boolean
@@ -715,16 +768,35 @@
             });
         }

-        public function push(...rest):void
-        {
-            source.push.apply(null, rest);
-        }
-
+        /**
+         * Adds one or more items to the end of a stream and returns the new length of the stream.
+         * @param rest One or more values to append to the stream.
+         * @return An integer representing the new length of the stream.
+         */
+        public function push(...rest):uint
+        {
+            return source.push.apply(null, rest);
+        }
+
+        /**
+         * Removes the last element from a stream and returns the value of that element.
+         * @return The value of the last element (of any data type) in the specified stream.
+         */
         public function pop():*
         {
             return source.pop();
         }

+        /**
+         * A non-negative integer specifying the number of items in the stream.
+         * This property is automatically updated when new items are added to the stream.
+         * When you assign a value to a stream element (for example, my_stream[index] = value),
+         * if index is a number, and index+1 is greater than the length property,
+         * the length property is updated to index+1.

+         *
+         * Note: If you assign a value to the length property that is shorter
+         * than the existing length, the stream will be truncated.
+         */
         public function get length():int
         {
             return source.length;
@@ -734,12 +806,6 @@
         {
             source.length = value;
         }
-
-
-        /*
-         * Proxy part
-         * --------------------------------------------
-         */

         /**
          * @private
@@ -921,6 +987,7 @@
          * the methods of the IDataInput interface. This method must read the values in
          * the same sequence and with the same types as were written by the writeExternal() method.
          * @param input The name of the class that implements the IDataInput interface.
+         * @private
          */
         public function readExternal(input:IDataInput):void
         {
@@ -931,6 +998,7 @@
          * A class implements this method to encode itself for a data stream by calling
          * the methods of the IDataOutput interface.
          * @param output The name of the class that implements the IDataOutput interface.
+         * @private
          */
         public function writeExternal(output:IDataOutput):void
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22726
Author:   chiedozi@adobe.com
Date:     2011-09-23T23:58:00.118926Z

Log Message:
-----------
Reverting checkin 22675 as it breaks FlipViewTransition in CUBE mode

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

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -21,6 +21,7 @@
 import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
 import flash.events.SoftKeyboardEvent;
+import flash.geom.Matrix;
 import flash.geom.Point;
 import flash.geom.Rectangle;
 import flash.system.Capabilities;
@@ -52,6 +53,7 @@
 import mx.managers.FocusManager;
 import mx.managers.SystemManager;
 import mx.managers.systemClasses.ActiveWindowManager;
+import mx.utils.MatrixUtil;

 import spark.components.Application;
 import spark.core.IEditableText;
@@ -1864,12 +1866,16 @@
         {
             if (stageText.stage)
             {
-                var globalTopLeft:Point = parent.localToGlobal(localViewPort.topLeft);
+                // We calculate the parent's concatenated matrix to deal with
+                // issues in the runtime where the concatenated matrix of the
+                // parent is out of sync.  See SDK-31538.
+                var m:Matrix = MatrixUtil.getConcatenatedMatrix(parent, stage);
+                var globalTopLeft:Point = m.transformPoint(localViewPort.topLeft);

                 // Transform the bottom-right corner of the local rect
                 // instead of setting width/height to account for any
                 // transformations applied to ancestor objects.
-                var globalBottomRight:Point = parent.localToGlobal(localViewPort.bottomRight);
+                var globalBottomRight:Point = m.transformPoint(localViewPort.bottomRight);
                 var globalRect:Rectangle = new Rectangle();

                 // StageText can't deal with upside-down or mirrored rectangles


Small nits fixed in Sound.as

Small nits fixed in Sound.as

--- src/flash/media/Sound.as
+++ src/flash/media/Sound.as
@@ -35,7 +35,7 @@
     if (!context) {
       context = new SoundLoaderContext();
     }
-    _load( stream, context.checkPolicyFile, context.bufferTime );
+    _load(stream, context.checkPolicyFile, context.bufferTime);
   }
   public native function loadCompressedDataFromByteArray(bytes: ByteArray, bytesLength: uint): void;
   public native function loadPCMFromByteArray(bytes: ByteArray, samples: uint,
@@ -46,6 +46,7 @@
   public native function close(): void;
   public native function extract(target: ByteArray, length: Number,
                                  startPosition: Number = -1): Number;
-  private native function _load(stream: URLRequest, checkPolicyFile: Boolean, bufferTime: Number)
+  private native function _load(stream: URLRequest, checkPolicyFile: Boolean,
+                                bufferTime: Number): void;
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20558
Author:   egeorgie@adobe.com
Date:     2011-03-02T22:10:48.057790Z

Log Message:
-----------
Fix for http://bugs.adobe.com/jira/browse/SDK-29659 CrossFadeViewTransition incorrectly positions outgoing View

In this change:
- Whenever view transition is making use of snapshots:
  1. remember position of snapshots in global coordinates.
  2. after snapshot is added to the transitionGroup, update its local position so that its global position matches the remembered one.

QE notes: Generall pass of zoom, slide, flip and cross fade transitions
Doc notes:
Bugs: SDK-29659
Reviewer: Chiedo
Tests run: manual mustella cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/CrossFadeViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ZoomViewTransition.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
@@ -18,6 +18,7 @@
 import flash.events.Event;
 import flash.events.EventDispatcher;
 import flash.geom.Matrix;
+import flash.geom.Point;
 import flash.geom.Rectangle;

 import mx.core.IVisualElement;
@@ -203,10 +204,6 @@
     private var verticalTransition:Boolean;

-    /**
-     *  @private
-     */
-
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -517,6 +514,13 @@
      */
     mx_internal var cachedNavigator:BitmapImage;

+    /**
+     *  @private
+     *  Stores the location of the cached navigator in the global coordinate space
+     *  so that the transition can properly position it when added to the display list.
+     */
+    mx_internal var cachedNavigatorGlobalPosition:Point = new Point();
+
     //----------------------------------
     //  cachedActionGroupSnapshot
     //----------------------------------
@@ -529,6 +533,13 @@
      */
     mx_internal var cachedActionGroup:BitmapImage;

+    /**
+     *  @private
+     *  Stores the location of the cached navigator in the global coordinate space
+     *  so that the transition can properly position it when added to the display list.
+     */
+    mx_internal var cachedActionGroupGlobalPosition:Point = new Point();
+
     //----------------------------------
     //  cachedTitleGroupSnapshot
     //----------------------------------
@@ -541,6 +552,13 @@
      */
     mx_internal var cachedTitleGroup:BitmapImage;

+    /**
+     *  @private
+     *  Stores the location of the cached navigator in the global coordinate space
+     *  so that the transition can properly position it when added to the display list.
+     */
+    mx_internal var cachedTitleGroupGlobalPosition:Point = new Point();
+
     //----------------------------------
     //  cachedNavigationGroupSnapshot
     //----------------------------------
@@ -552,6 +570,13 @@
      *  previous view.
      */
     mx_internal var cachedNavigationGroup:BitmapImage;
+
+    /**
+     *  @private
+     *  Stores the location of the cached navigator in the global coordinate space
+     *  so that the transition can properly position it when added to the display list.
+     */
+    mx_internal var cachedNavigationGroupGlobalPosition:Point = new Point();

     //----------------------------------
     //  targetNavigator
@@ -640,19 +665,19 @@

                 // Snapshot title content of our startView.
                 if (actionBar.titleGroup && actionBar.titleGroup.visible)
-                    cachedTitleGroup = getSnapshot(actionBar.titleGroup);
+                    cachedTitleGroup = getSnapshot(actionBar.titleGroup, 4, cachedTitleGroupGlobalPosition);
                 else if (actionBar.titleDisplay
                     && (actionBar.titleDisplay is UIComponent)
                     && UIComponent(actionBar.titleDisplay).visible)
-                    cachedTitleGroup = getSnapshot(UIComponent(actionBar.titleDisplay));
+                    cachedTitleGroup = getSnapshot(UIComponent(actionBar.titleDisplay), 4, cachedTitleGroupGlobalPosition);

                 // Snapshot actionContent if it's changing between our start and end views.
                 if (startView.actionContent != endView.actionContent)
-                    cachedActionGroup = getSnapshot(actionBar.actionGroup);
+                    cachedActionGroup = getSnapshot(actionBar.actionGroup, 4, cachedActionGroupGlobalPosition);

                 // Snapshot navigationContent if it's changing between our start and end views.
                 if (startView.navigationContent != endView.navigationContent)
-                    cachedNavigationGroup = getSnapshot(actionBar.navigationGroup);
+                    cachedNavigationGroup = getSnapshot(actionBar.navigationGroup, 4, cachedNavigationGroupGlobalPosition);
             }
         }
     }
@@ -870,20 +895,20 @@
             }

             if (cachedTitleGroup)
-                transitionGroup.addElement(cachedTitleGroup);
+                addCachedElementToGroup(transitionGroup, cachedTitleGroup, cachedTitleGroupGlobalPosition);
         }

         // If a cache of the navigation group exists, that means the content
         // changed.  In this case the queue cached representation to be faded
         // out.
         if (cachedNavigationGroup)
-            transitionGroup.addElement(cachedNavigationGroup);
-
+            addCachedElementToGroup(transitionGroup, cachedNavigationGroup, cachedNavigationGroupGlobalPosition);
+
         // If a cache of the action group exists, that means the content
         // changed.  In this case the queue cached representation to be faded
         // out.
         if (cachedActionGroup)
-            transitionGroup.addElement(cachedActionGroup);
+            addCachedElementToGroup(transitionGroup, cachedActionGroup, cachedActionGroupGlobalPosition);

         // Create fade in animations for navigationContent and actionContent
         // of the next view.
@@ -1210,22 +1235,36 @@
     /**
      *  Used to render snap shots of screen elements in
      *  preparation for transitioning.
-     *  The bitmap is returned in the form of a BitmapImage object.
-     *  The BitmapImage object's transform is adjusted so that
-     *  the bitmap matches the target.
+     *  The bitmap is returned in the form of a BitmapImage object.
+     *
+     *
The BitmapImage is in target's parent coordiantes space -
+     *  it overlaps the target precisely if paranted to the same parent.
+     *
+     *  When moving to a different parent, make sure to adjust the
+     *  transformation of the BitmapImage to correctly account for the
+     *  change in coordinate spaces.
+     *
+     *  The updated value of the globalPosition parameter
+     *  can be used for that.

      *
      *  @param target Display object to capture.
      *
      *  @param padding Padding around the object to be included in
      *  the BitmapImage object.
      *
+     *  @param globalPosition When non-null, globalPosition
+     *  will be updated with the origin of the BitmapImage in global
+     *  coordiantes. When moving to a different coordinate space, this
+     *  value can be used to adjust the snapshot's position so its
+     *  global position on screen doesn't change.
+     *
      *  @return BitmapImage object representing the target.
      *
      *  @langversion 3.0
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    protected function getSnapshot(target:UIComponent, padding:int = 4):BitmapImage
+    protected function getSnapshot(target:UIComponent, padding:int = 4, globalPosition:Point = null):BitmapImage
     {
         if (!target || !target.visible || target.width == 0 || target.height == 0)
             return null;
@@ -1268,6 +1307,13 @@
         // Exclude from layout.
         snapshot.includeInLayout = false;

+        if (globalPosition)
+        {
+            var pt:Point = parent ? parent.localToGlobal(new Point(snapshot.x, snapshot.y)) : new Point();
+            globalPosition.x = pt.x;
+            globalPosition.y = pt.y;
+        }
+
         return snapshot;
     }

@@ -1368,7 +1414,35 @@
         else
             container.setChildIndex(component, index);
     }
-
+
+    /**
+     *  @private
+     *  Adds the element to the targetGroup and adjusts the position
+     *  so that the global position remains the same.
+     *
+     *  Note the targetGroup must be already added to the display list and
+     *  positioned in order for this method to adjust the cachedElement's position
+     *  correctly.
+     *
+     *  @param targetGroup  The Group that will parent the cached element.
+     *  @param cachedElement  The cached element - the return value of getSnapshot()
+     *  @param cachedElementGlobalPosition The global position returned from getSnapshot()
+     *
+     *  @see #getSnapshot
+     */
+    mx_internal function addCachedElementToGroup(targetGroup:Group,
+                                                 cachedElement:BitmapImage,
+                                                 cachedElementGlobalPosition:Point):void
+    {
+        targetGroup.addElement(cachedElement);
+
+        // We are moving the cachedTitleGroup to the transitionGroup's coordinate space,
+        // adjust the position
+        var localOrigin:Point = targetGroup.globalToLocal(cachedElementGlobalPosition);
+        cachedElement.x = localOrigin.x;
+        cachedElement.y = localOrigin.y;
+    }
+
     /**
      *  @private
      *  Helper method that returns index of the given component.
@@ -1380,8 +1454,5 @@
         else
             return container.getChildIndex(component);
     }
-
 }
-
-
 }


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

--- frameworks/projects/spark/src/spark/components/supportClasses/AnimationTarget.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/AnimationTarget.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


fix when we set the width of children

fix when we set the width of children

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalLayout.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualVerticalLayout.as
@@ -70,6 +70,7 @@
 			IEventDispatcher(value).addEventListener("heightChanged", changeHandler);
 			IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
 			IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+            IEventDispatcher(value).addEventListener("layoutNeeded", changeHandler);
 			IEventDispatcher(value).addEventListener("beadsAdded", changeHandler);
 		}

@@ -180,6 +181,12 @@
 						flexibleHorizontalMargins[i].marginRight = mr;
 				}
 				child.x = ml;
+                if (child is ILayoutChild)
+                {
+                    ilc = child as ILayoutChild;
+                    if (!isNaN(ilc.percentWidth))
+                        ilc.setWidth(contentView.width * ilc.percentWidth / 100);
+                }
 				maxWidth = Math.max(maxWidth, ml + child.width + mr);
 			}
 			if (hasHorizontalFlex)
@@ -187,12 +194,6 @@
 				for (i = 0; i < n; i++)
 				{
 					child = contentView.getElementAt(i) as IUIBase;
-                    if (child is ILayoutChild)
-                    {
-                        ilc = child as ILayoutChild;
-                        if (!isNaN(ilc.percentWidth))
-                            ilc.setWidth(contentView.width * ilc.percentWidth / 100);
-                    }
 					var obj:Object = flexibleHorizontalMargins[i];
 					if (obj.marginLeft == "auto" && obj.marginRight == "auto")
 						child.x = maxWidth - child.width / 2;


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

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

 package mx.utils
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11851
Author:   cframpto@adobe.com
Date:     2009-11-16T18:19:38.179691Z

Log Message:
-----------
Halo label using FTETextField was incorrectly truncating because the textWidth incorrectly included the 2 pixels of PADDING_LEFT.  Correct textWidth which should be the max textLine.textWidth.  Also need to maintain the width to use to clip the text which is max x + textWidth since the text could be indented and/or aligned and all has left padding of 2 pixels.

QE notes: 80 FTETextField failures.  bitmaps need updating.  Peter knows this is coming
Doc notes:
Bugs: SDK-24176
Reviewer: Gordon
Tests run: checkintests, FTETextField
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as

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

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -265,6 +265,13 @@
 	 */
 	private static var recreateTextLine:Function;

+    /**
+     *  @private
+     *  This is the max textLine.x + textLine.textWidth of all the composed
+     *  lines.  It is used to determine whether the text must be clipped.
+     */
+    private var clipWidth:Number;
+
 	//--------------------------------------------------------------------------
 	//
 	//  Class methods
@@ -2436,7 +2443,32 @@
 				if (!wordWrap)
 				{
 					_width = _textWidth + PADDING_LEFT + PADDING_RIGHT;
-
+
+                    var blockIndent:Number = Number(_defaultTextFormat.blockIndent);
+                    var indent:Number = Number(_defaultTextFormat.indent);
+                    var leftMargin:Number = Number(_defaultTextFormat.leftMargin);
+                    var rightMargin:Number = Number(_defaultTextFormat.rightMargin);
+
+                    // Factor in indents and margins if the combined total
+                    // is positive.
+                    if (blockIndent + indent + leftMargin > 0)
+                        _width += blockIndent + indent + leftMargin;
+
+                    // Right margin seems to always be considered but if its
+                    // negative the width can't get smaller than the text width.
+                    _width += rightMargin;
+                    if (rightMargin >  0)
+                    {
+                        clipWidth = _width;
+                    }
+                    else
+                    {
+                        if (_width - PADDING_LEFT - PADDING_RIGHT < _textWidth )
+                            _width = _textWidth + PADDING_LEFT + PADDING_RIGHT;
+                        // force clipping
+                        clipWidth = origWidth + 1;
+                    }
+
 					// adjust x for CENTER and RIGHT cases
 					if (_autoSize == TextFieldAutoSize.RIGHT)
 						x += origWidth - _width;
@@ -2447,7 +2479,7 @@
 					setFlag(FLAG_GRAPHICS_INVALID);
 			}

-			if (_textWidth > origWidth || _textHeight > origHeight)
+			if (clipWidth > origWidth || _textHeight > origHeight)
 			{
 				// need to clip
                 //trace("clip", "_textWidth", _textWidth, "origWidth", origWidth);
@@ -2575,6 +2607,7 @@

 		_textWidth = 0;
 		_textHeight = 0;
+        clipWidth = 0;
 	}

 	/**
@@ -2634,6 +2667,8 @@
 		_textHeight = Math.round(
 			numChildren * (ascent + descent) +
 			(numChildren - 1) * Number(_defaultTextFormat.leading));
+
+        clipWidth = Math.round(clipWidth);
 	}

 	/**
@@ -2741,7 +2776,9 @@
                     totalIndent += indent;

                 if (totalIndent < 0)
-                    totalIndent = 0;
+                    totalIndent = 0;
+               else if (totalIndent > _width - PADDING_LEFT - PADDING_RIGHT)
+                    totalIndent = _width - PADDING_LEFT - PADDING_RIGHT;

                 if (!wordWrap)
                     rightMargin = 0;
@@ -2807,7 +2844,7 @@
             // Adjust for positive indent/left margin.  Do it here rather
             // than at the end when alignment is done so the first
             // line of each paragraph is indented properly.
-            textLine.x += totalIndent;
+            textLine.x = totalIndent;

 			if (_defaultTextFormat.underline)
 			{
@@ -2836,7 +2873,7 @@

 	/**
 	 *  @private
-     *  Returns with _textWidth set.
+     *  Returns with _textWidth and clipWidth set.
 	 */
 	private function alignTextLines(innerWidth:Number):void
 	{
@@ -2861,9 +2898,7 @@
 		var leftOffset:Number = PADDING_LEFT;
 		var centerOffset:Number = leftOffset + innerWidth / 2;
 		var rightOffset:Number = leftOffset + innerWidth;
-
-        _textWidth = 0;
-
+
         // Reposition each line if necessary.
         // based on the horizontal alignment,
         // and adjusting for the padding.
@@ -2872,25 +2907,19 @@
         {
             var textLine:TextLine = TextLine(getChildAt(i));

+            _textWidth = Math.max(_textWidth, textLine.textWidth);
+
             var width:Number = textLine.x + textLine.textWidth + rightMargin;

             // Only align if there is width to do so.
-            if (leftAligned || width > innerWidth)
+            if (leftAligned || width >= innerWidth)
                 textLine.x += leftOffset;
             else if (centerAligned)
                 textLine.x += centerOffset - width / 2;
             else if (rightAligned)
                 textLine.x += rightOffset - width;
-
-            // Text width should include indents and margins so that
-            // autoSize will be correct.  A negative rightMargin increases
-            // the width for the purposes of alignment only.
-            // The text still needs to be clipped based on its actual width.
-            width = rightMargin > 0 ?
-                    textLine.x + textLine.textWidth + rightMargin :
-                    textLine.x + textLine.textWidth;
-
-            _textWidth = Math.max(_textWidth, width);
+
+            clipWidth = Math.max(clipWidth, textLine.x + textLine.textWidth);

             textLine.y += PADDING_TOP;
         }
@@ -2940,9 +2969,13 @@
 		textContainerManager.updateContainer();

 		var bounds:Rectangle = textContainerManager.getContentBounds();
+
 		_textWidth = Math.round(bounds.width);
 		_textHeight = Math.round(bounds.height);
-	}
+
+        // TLF takes care of clipping so none should be needed here.
+        clipWidth = _textWidth;
+    }

 	/**
 	 *  @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 16822
Author:   deeptika@adobe.com
Date:     2010-07-07T06:16:32.586582Z

Log Message:
-----------
Removing deprecated API and their usage.

QE notes:
Doc notes:
Bugs: FLEXDMV-2463 (LineaSeries legendData marker are not working if the series has lineStroke to a SolidColorStroke)
FLEXDMV-2470 (Remove deprecation or Remove deprecated properties in charting)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/BarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/CartesianChartAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/renderers/AreaRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/AreaChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/HLOCSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/LineSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/PlotChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/BubbleSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/ColumnSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation/src/mx/automation/tabularData/CartesianChartTabularData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/CandlestickChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/HLOCChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/StackedSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/BarSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/LineChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/HLOCSeriesBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/BubbleChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/AreaSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/ColumnChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/renderers/HLOCItemRenderer.as</path>

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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/CartesianChartAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/CartesianChartAutomationImpl.as
@@ -21,6 +21,9 @@
 	import mx.automation.IAutomationTabularData;
 	import mx.automation.delegates.charts.ChartBaseAutomationImpl;
 	import mx.charts.chartClasses.CartesianChart;
+      import mx.core.mx_internal;
+
+      use namespace mx_internal;

 	[Mixin]
 	/**
@@ -119,32 +122,11 @@
 				}
 			}

-
-
-			var tempArray:Array = cChart.secondSeries;
-			if (tempArray)
-			{
-				n = tempArray.length;
-				for(i = 0; i < n ; i++)
-				{
-					childList.push(tempArray[i]);
-				}
-			}
-
 			if (cChart.verticalAxisRenderer )
 				childList.push(cChart.verticalAxisRenderer);

-			if (cChart.secondVerticalAxisRenderer)
-				childList.push(cChart.secondVerticalAxisRenderer);
-
 			if (cChart.horizontalAxisRenderer)
 				childList.push(cChart.horizontalAxisRenderer);
-
-
-			if (cChart.secondHorizontalAxisRenderer)
-				childList.push(cChart.secondVerticalAxisRenderer);
-
-
 			return childList;
 		}

@@ -162,13 +144,6 @@
 					result = cChart.series[index];
 			}

-			if (!result && cChart.secondSeries)
-			{
-				count += cChart.secondSeries.length ;
-				if (index < count)
-					result = cChart.secondSeries[index];
-			}
-
 			if (!result && cChart.verticalAxisRenderer)
 			{
 				++count;
@@ -176,25 +151,11 @@
 					result = cChart.verticalAxisRenderer;
 			}

-			if (!result && cChart.secondVerticalAxisRenderer)
-			{
-				++count;
-				if (index < count)
-					result = cChart.secondVerticalAxisRenderer;
-			}
-
 			if (!result && cChart.horizontalAxisRenderer)
 			{
 				++count;
 				if (index < count)
 					result = cChart.horizontalAxisRenderer;
-			}
-
-			if (!result && cChart.secondHorizontalAxisRenderer)
-			{
-				++count;
-				if (index < count)
-					result = cChart.secondHorizontalAxisRenderer;
 			}

 			return result as IAutomationObject;
@@ -209,19 +170,10 @@
 			if (cChart.series)
 				count = cChart.series.length ;

-			if (cChart.secondSeries)
-				count += cChart.secondSeries.length ;
-
 			if (cChart.verticalAxisRenderer)
 				++count;

-			if (cChart.secondVerticalAxisRenderer)
-				++count;
-
 			if (cChart.horizontalAxisRenderer)
-				++count;
-
-			if (cChart.secondHorizontalAxisRenderer)
 				++count;

 			return count;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4456
Author:   chaase@adobe.com
Date:     2009-01-08T23:03:19.926881Z

Log Message:
-----------
Fixed RTE problem resulting from deref'ing possibly null objects in array when children setter called on CompositeEffect.

QE Notes: None
Doc Notes: None
Bugs: sdk-18591
Reviewer: Jason

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as

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

--- frameworks/projects/framework/src/mx/effects/CompositeEffect.as
+++ frameworks/projects/framework/src/mx/effects/CompositeEffect.as
@@ -146,14 +146,18 @@
     public function set children(value:Array):void
     {
         var i:int;
+        // array may contain null/uninitialized children, so only set/unset
+        // parent property for non-null child values
         if (_children)
             // Remove this effect as the parent of the old child effects
             for (i = 0; i < _children.length; ++i)
-                Effect(_children[i]).mx_internal::parentCompositeEffect = null;
+                if (_children[i])
+                    Effect(_children[i]).mx_internal::parentCompositeEffect = null;
         _children = value;
         if (_children)
             for (i = 0; i < _children.length; ++i)
-                Effect(_children[i]).mx_internal::parentCompositeEffect = this;
+                if (_children[i])
+                    Effect(_children[i]).mx_internal::parentCompositeEffect = this;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 4790
Author:   jimurphy@adobe.com
Date:     2009-02-02T18:13:13.580538Z

Log Message:
-----------
Merged 3.x revisions 4710-4711,4741,4746-4747,4755,4777,4787 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/NumberBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloFocusRect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/framework/src/mx/events/SWFBridgeRequest.as
+++ frameworks/projects/framework/src/mx/events/SWFBridgeRequest.as
@@ -38,8 +38,8 @@
     //--------------------------------------------------------------------------

 	/**
-         *  Requests that a child application's pop up be activated.
-         *  This request is sent from a child SystemManager to the top-level SystemManager
+     *  Requests that a child application's pop up be activated.
+     *  This request is sent from a top-level SystemManager to a child SystemManager
 	 *  through the bridge.
 	 *  The data property contains an identifier for the pop up. It is not
 	 *  always an actual reference to the pop up. No data is


Transferred from the Adobe Open Source Subversion Repository

Revision: 18351
Author:   cframpto@adobe.com
Date:     2010-10-28T19:40:47.134160Z

Log Message:
-----------
Many DataGrid fixes.

DescribeTypeCache.as/describeType
	a string which wasn't a definition would RTE (SDK-28237)

UIFTETestField.as
	explicitWidth/Height always pushed down to FTETextField even if setLayoutBounds set width/height after explcitWidth/Height was set (SDK-27844, SDK-28130)
	alphabetized the properties

GridItemRenderer.as
	should not show dataTip on header (SDK-28212)
	prepare and discard arg names were swapped

DataGrid.as
	if mouse down on a part of the grid where there isn't a row/cell it should be a no-op (SDK-28013)

DefaultGridHeaderRenderer.as
	should show truncation tip if header is truncated (SDK-27259)

TextFieldGridItemRenderInclude.as
	should not show dataTip on header (SDK-28212)

QE notes: setting explicitWidth/Height on the grid IR now does what it should and height/width for text will be reduced by the padding
Doc notes:
Bugs: SDK-28212, SDK-27259, SDK-28237, SDK-27844, SDK-28130
Reviewer: Hans
Tests run: a few cyclones
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridHeaderRenderer.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/textLayout/bin</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.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/framework/src/mx/utils/DescribeTypeCache.as</path>

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

--- frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as
+++ frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as
@@ -103,8 +103,17 @@
         else
         {
             if (o is String)
-                o = getDefinitionByName(o);
-
+            {
+                try
+                {
+                    o = getDefinitionByName(o);
+                }
+                catch (error:ReferenceError)
+                {
+                    // The o parameter doesn't refer to an ActionScript
+                    // definition, it's just a string value.
+                }
+            }
             var typeDescription:XML = flash.utils.describeType(o);
             var record:DescribeTypeCacheRecord = new DescribeTypeCacheRecord();
             record.typeDescription = typeDescription;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19813
Author:   tkraikit@adobe.com
Date:     2011-01-19T21:56:31.238621Z

Log Message:
-----------
bug27213: cache UIComponent.layoutDirection to reduce number of getStyle() calls

QE notes: we should see incremental gains in startup time proportional to complexity of the startup screen
Doc notes: none
Bugs: 27213
Reviewer: rfrishbe, aharui
Tests run: checkintests, mustella
Is noteworthy for integration: no

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

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1516,6 +1516,13 @@
     // When changing this constant, make sure you change
     // the constant with the same name in LayoutElementUIComponentUtils

+    /**
+     *  @private
+     *  Static constant representing no cached layout direction style value.
+     */
+    private static const LAYOUT_DIRECTION_CACHE_UNSET:String = "layoutDirectionCacheUnset";
+
+
     //--------------------------------------------------------------------------
     //
     //  Class mixins
@@ -1757,6 +1764,12 @@
      *  @private
      */
     private var parentChangedFlag:Boolean = false;
+
+    /**
+     *  @private
+     *  Cached layout direction style
+     */
+    private var layoutDirectionCachedValue:String = LAYOUT_DIRECTION_CACHE_UNSET;

     //--------------------------------------------------------------------------
     //
@@ -6088,13 +6101,17 @@
      *  The flag is cleared in validateDisplayList().
      */
     mx_internal var oldLayoutDirection:String = LayoutDirection.LTR;
-
+
     /**
      *  @inheritDoc
      */
     public function get layoutDirection():String
     {
-        return getStyle("layoutDirection");
+        if (layoutDirectionCachedValue == LAYOUT_DIRECTION_CACHE_UNSET)
+        {
+            layoutDirectionCachedValue = getStyle("layoutDirection");
+        }
+        return layoutDirectionCachedValue;
     }

     /**
@@ -7992,18 +8009,23 @@
      */
     public function styleChanged(styleProp:String):void
     {
+        var allStyles:Boolean = !styleProp || styleProp == "styleName";
+
         StyleProtoChain.styleChanged(this, styleProp);

-        if (styleProp && (styleProp != "styleName"))
-        {
+        if (!allStyles)
+        {
             if (hasEventListener(styleProp + "Changed"))
                 dispatchEvent(new Event(styleProp + "Changed"));
         }
-        else
+        else
         {
             if (hasEventListener("allStylesChanged"))
                 dispatchEvent(new Event("allStylesChanged"));
         }
+
+        if (allStyles || styleProp == "layoutDirection")
+            layoutDirectionCachedValue = LAYOUT_DIRECTION_CACHE_UNSET;
     }

     /**
@@ -11279,7 +11301,7 @@
                     iAdvanceStyleClientChild.styleChanged(styleProp);
                 }
             }
-        }
+        }
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 14493
Author:   jszeto@adobe.com
Date:     2010-03-02T01:29:51.885807Z

Log Message:
-----------
Merging 14492 from 4.x to trunk

Mirroring performance fixes

Fixed a performance problem in UIComponent. Updated invalidateLayoutDirection to only iterate through its non-style children (GraphicElements) if its layoutDirection has not changed.

http://bugs.adobe.com/jira/browse/SDK-25547 - Performance regression in datagrid scroll after 14208

Restored the use of transform.concatenatedMatrix instead of MatrixUtil.getConcatenatedMatrix. We want the postLayoutTransformOffsets because the Player incorporates these values in textWidth and textHeight.

Always return the absolute measuredWidth/Height

QE notes: none
Doc notes: none
Bugs: SDK-25547
Reviewer: Hans
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -7617,16 +7617,21 @@
         if (!(this is IVisualElementContainer))
             return;

-        const thisContainer:IVisualElementContainer = IVisualElementContainer(this);
-        const thisContainerNumElements:int = thisContainer.numElements;

-        for (var i:int = 0; i < thisContainerNumElements; i++)
-        {
-            var elt:IVisualElement = thisContainer.getElementAt(i);
-            // Can be null if IUITextField or IUIFTETextField.
-            if (elt && !(elt is IStyleClient))
-                elt.invalidateLayoutDirection();
-        }
+        // Children are notified only if the component's layoutDirection has changed.
+        if (oldLayoutDirection != layoutDirection)
+        {
+            const thisContainer:IVisualElementContainer = IVisualElementContainer(this);
+            const thisContainerNumElements:int = thisContainer.numElements;
+
+            for (var i:int = 0; i < thisContainerNumElements; i++)
+            {
+                var elt:IVisualElement = thisContainer.getElementAt(i);
+                // Can be null if IUITextField or IUIFTETextField.
+                if (elt && !(elt is IStyleClient))
+                    elt.invalidateLayoutDirection();
+            }
+        }
     }

     private function transformOffsetsChangedHandler(e:Event):void


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

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

 package mx.utils
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19909
Author:   rfrishbe@adobe.com
Date:     2011-01-24T19:32:04.196933Z

Log Message:
-----------
Fixing up a bug in MatrixUtil with getting a transform of a UIMovieClip.  The same fix needs to be made to some design view code.

QE notes: -
Doc notes:
Bugs: -
Reviewer: Evtim
Tests run: checkintests, mustella cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as

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

--- frameworks/projects/framework/src/mx/utils/MatrixUtil.as
+++ frameworks/projects/framework/src/mx/utils/MatrixUtil.as
@@ -41,9 +41,11 @@
     // For use in getConcatenatedMatrix function
     private static var fakeDollarParent:QName;
     private static var uiComponentClass:Class;
+    private static var uiMovieClipClass:Class;
     private static var usesMarshalling:Object;
     private static var lastModuleFactory:Object;
     private static var computedMatrixProperty:QName;
+    private static var $transformProperty:QName;

     //--------------------------------------------------------------------------
     //
@@ -1648,6 +1650,9 @@
             // definition for UIComponent
             if (!usesMarshalling && ApplicationDomain.currentDomain.hasDefinition("mx.core.UIComponent"))
                 uiComponentClass = Class(ApplicationDomain.currentDomain.getDefinition("mx.core.UIComponent"));
+            // same thing for UIMovieClip
+            if (!usesMarshalling && ApplicationDomain.currentDomain.hasDefinition("mx.flash.UIMovieClip"))
+                uiMovieClipClass = Class(ApplicationDomain.currentDomain.getDefinition("mx.flash.UIMovieClip"));
         }

         // Note, root will be "null" if the displayObject is off the display list. In particular,
@@ -1662,6 +1667,9 @@

         if (useComputedMatrix && computedMatrixProperty == null)
             computedMatrixProperty = new QName(mx_internal, "computedMatrix");
+
+        if ($transformProperty == null)
+            $transformProperty = new QName(mx_internal, "$transform");

         while (displayObject && displayObject.transform.matrix && (!excludingRootSprite || displayObject != root))
         {
@@ -1682,15 +1690,21 @@
                     // Get the class definition for UIComponent in the current ApplicationDomain
                     if (appDomain && appDomain.hasDefinition("mx.core.UIComponent"))
                         uiComponentClass = Class(appDomain.getDefinition("mx.core.UIComponent"));
+                    // same thing for UIMovieClip
+                    if (appDomain && appDomain.hasDefinition("mx.flash.UIMovieClip"))
+                        uiMovieClipClass = Class(appDomain.getDefinition("mx.flash.UIMovieClip"));

                     lastModuleFactory = moduleFactory;
                 }
             }

             var isUIComponent:Boolean = uiComponentClass && displayObject is uiComponentClass;
+            var isUIMovieClip:Boolean = uiMovieClipClass && displayObject is uiMovieClipClass;

             if (useComputedMatrix && isUIComponent)
                 m.concat(displayObject[computedMatrixProperty]);
+            else if (isUIMovieClip)
+                m.concat(displayObject[$transformProperty].matrix);
             else
                 m.concat(displayObject.transform.matrix);


Transferred from the Adobe Open Source Subversion Repository

Revision: 18357
Author:   jasonsj@adobe.com
Date:     2010-10-28T22:43:40.124825Z

Log Message:
-----------
Mobile Theme feature work:
Implemented borderVisible and prompt for mobile TextInputSkin
Fixed focus exclusions for CheckBox and RadioButton
Fixed promptDisplay bug in TextInput
Moved textShadowAlpha and textShadowColor to BasicInheritingTextStyles from ActionBar and Button
Added leading and letterSpacing to BasicInheritingTextStyles

QE notes: Update mustella bitmaps for Button and RadioButton
Doc notes:
Bugs:
SDK-28239 Fixed visuals for Button and RadioButton skin
Reviewer: gruehle, aharui
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_up.fxg</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="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/spark/src/spark/components/Button.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/mobilecomponents/src/spark/styles/metadata/StyleableTextFieldTextStyles.as</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/assets/Button_up.fxg</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/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as</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/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/RadioButton_downSelected.fxg</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/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>

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

--- frameworks/projects/spark/src/spark/components/Button.as
+++ frameworks/projects/spark/src/spark/components/Button.as
@@ -28,30 +28,6 @@
  *  @productversion Flex 4
  */
 [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")]