Transferred from the Adobe Open Source Subversion Repository

Revision: 18432
Author:   dloverin@adobe.com
Date:     2010-11-03T20:02:02.380580Z

Log Message:
-----------
Initial check-in for RSL Sharing Among Modules Feature

QE notes: testable but not PARB'd
Doc notes: None.
Bugs: SDK-27917
Reviewer: Alex
Tests run: cylone server, checkintests
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/config/ConfigurationException_en.properties</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ApplicationDomainTarget.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/config/ConfigurationException.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/common/RuntimeSharedLibrarySettingsConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/RSLData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>

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

--- frameworks/projects/framework/src/mx/utils/LoaderUtil.as
+++ frameworks/projects/framework/src/mx/utils/LoaderUtil.as
@@ -14,11 +14,16 @@

 import flash.display.DisplayObject;
 import flash.display.LoaderInfo;
+import flash.events.IEventDispatcher;
 import flash.system.Capabilities;
-
+import flash.utils.Dictionary;
+
+import mx.core.ApplicationDomainTarget;
 import mx.core.IFlexModuleFactory;
 import mx.core.mx_internal;
+import mx.core.RSLData;
 import mx.events.Request;
+import mx.managers.SystemManagerGlobals;

 use namespace mx_internal;

@@ -197,6 +202,11 @@
     /**
      *  @private
      *
+     *  Takes a list of required rsls and determines:
+     *       - which RSLs have not been loaded
+     *       - the application domain and IModuleFactory where the
+     *         RSL should be loaded
+     *
      *  @param moduleFactory The module factory of the application or module
      *  to get load information for. If the moduleFactory has not loaded the
      *  module, then its parent is asked for load information. Each successive
@@ -205,45 +215,256 @@
      *  searched. Applications in different security domains or sibling
      *  ApplicationDomains do not share RSLs.
      *
-     *  @param digest: The digest of the RSL to load.
-     *  @return The digest for loaded RSL if found, null otherwise.
-     */
-    mx_internal static function getRSLLoadData(moduleFactory:IFlexModuleFactory, digest:String):String
-    {
-        var currentModuleFactory:IFlexModuleFactory = moduleFactory;
-        while (currentModuleFactory != null)
-        {
-            var cdRSLs:Array = currentModuleFactory.info()["cdRsls"];
-
-            if (cdRSLs && cdRSLs.length > 0)
-            {
-                // loop over info to find digest match
-                var n:int = cdRSLs.length;
+     *  @param rsls An array of RSLs that are required for
+     *  moduleFactory. Each RSL is in an array of RSLData where
+     *  the first element is the primary RSL and the remaining elements are
+     *  failover RSLs.
+     *  @return Array of RSLData that represents the RSLs to load. RSLs that are
+     *  already loaded are not in the listed.
+     */
+    mx_internal static function processRequiredRSLs(moduleFactory:IFlexModuleFactory,
+                                                    rsls:Array):Array
+    {
+        var rslsToLoad:Array = [];  // of Array of RSLData (primary and failover), return value
+        var topLevelModuleFactory:IFlexModuleFactory = SystemManagerGlobals.topLevelSystemManagers[0];
+        var currentModuleFactory:IFlexModuleFactory = topLevelModuleFactory;
+        var parentModuleFactory:IFlexModuleFactory = null;
+        var loaded:Dictionary = new Dictionary();   // contains rsls that are loaded
+        var loadedLength:int = 0;
+        var resolved:Dictionary = new Dictionary(); // contains rsls that have the app domain resolved
+        var resolvedLength:int = 0;
+        var moduleFactories:Array = null;
+
+        // Start at the top level module factory and work our way down the
+        // module factory chain checking if the any of the rsls are loaded
+        // and resolving application domain targets.
+        // We start at the top level module factory because the default rsls
+        // will all be loaded here and we won't often have to check other
+        // module factories.
+        while (currentModuleFactory != moduleFactory)
+        {
+            // Need to loop over all the rsls, to see which one are loaded
+            // and resolve application domains.
+            var n:int = rsls.length;
+            for (var i:int = 0; i < n; i++)
+            {
+                var rsl:Array = rsls[i];
+
+                // Check if the RSL has already been loaded.
+                if (!loaded[rsl])
+                {
+                    if (isRSLLoaded(currentModuleFactory, rsl[0].digest))
+                    {
+                        loaded[rsl] = 1;
+                        loadedLength++;
+
+                        // We may find an rsl loaded in a module factory as we work
+                        // our way down the module factory list. If we find one then
+                        // remove it.
+                        if (currentModuleFactory != topLevelModuleFactory)
+                        {
+                            var index:int = rslsToLoad.indexOf(rsl);
+                            if (index != -1)
+                                rslsToLoad.splice(index, 1);
+                        }
+                    }
+                    else if (rslsToLoad.indexOf(rsl) == -1)
+                    {
+                        rslsToLoad.push(rsl);   // assume we have to load it
+                    }
+                }
+
+                // Resolve the application domain target.
+                // If the curent module factory is the rsl owning module
+                // factory, then don't try to resolve the app domain
+                // target because the only choice left is "current"
+                // since this the last module factory we are checking
+                // and "current" is the default if no module factory
+                // is specified.
+                if (!loaded[rsl] && resolved[rsl] == null &&
+                    (currentModuleFactory == moduleFactory ||
+                    resolveApplicationDomainTarget(rsl, currentModuleFactory,
+                                                       parentModuleFactory,
+                                                       topLevelModuleFactory)))
+                {
+                    resolved[rsl] = 1;
+                    resolvedLength++;
+                }
+            }
+
+            // If process all rsls then get out.
+            if (loadedLength + resolvedLength >= rsls.length)
+                break;
+
+             // If we didn't find everything in the top level module factory then work
+            // down towards the rsl's owning module factory.
+            // Build up the module factory parent chain so we can traverse it.
+            if (!moduleFactories)
+            {
+                moduleFactories = [moduleFactory];
+                currentModuleFactory = moduleFactory;
+                while (currentModuleFactory != topLevelModuleFactory)
+                {
+                    var request:Request = new Request(Request.GET_PARENT_FLEX_MODULE_FACTORY_REQUEST);
+                    DisplayObject(currentModuleFactory).dispatchEvent(request);
+                    currentModuleFactory = request.value as IFlexModuleFactory;
+                    if (currentModuleFactory != topLevelModuleFactory)
+                        moduleFactories.push(currentModuleFactory);
+
+                    if (!parentModuleFactory)
+                        parentModuleFactory = currentModuleFactory;
+                }
+            }
+
+            currentModuleFactory = moduleFactories.pop();
+        }
+
+        return rslsToLoad;
+    }
+
+    /**
+     *  @private
+     *  Resolve the application domain target.
+     *
+     *  @param rsl to resolve.
+     *  @param currentModuleFactory The module factory to search for placeholders.
+     *  @param parentModuleFactory The rsl's parent module factory.
+     *  @param topLevelModuleFactory The top-level module factory.
+     *
+     *  @return true if the application domain target was resolved,
+     *  false otherwise.
+     */
+    private static function resolveApplicationDomainTarget(rsl:Array,
+                                    currentModuleFactory:IFlexModuleFactory,
+                                    parentModuleFactory:IFlexModuleFactory,
+                                    topLevelModuleFactory:IFlexModuleFactory):Boolean
+    {
+        var resolvedRSL:Boolean = false;
+        var targetModuleFactory:IFlexModuleFactory = null;
+
+        var applicationDomainTarget:String = rsl[0].applicationDomainTarget;
+        if (applicationDomainTarget == ApplicationDomainTarget.DEFAULT)
+        {
+            if (hasPlaceholderRSL(currentModuleFactory, rsl[0].digest))
+            {
+                targetModuleFactory = currentModuleFactory;
+            }
+        }
+        else if (applicationDomainTarget == ApplicationDomainTarget.TOP_LEVEL)
+        {
+            targetModuleFactory = topLevelModuleFactory;
+        }
+        else if (applicationDomainTarget == ApplicationDomainTarget.CURRENT)
+        {
+            resolvedRSL = true;
+        }
+        else if (applicationDomainTarget == ApplicationDomainTarget.PARENT)
+        {
+            // If there is no parent, ignore the target and load into the current
+            // app domain.
+            targetModuleFactory = parentModuleFactory;
+            resolvedRSL = true;
+        }
+        else
+        {
+            resolvedRSL = true; // bogus target, load into current application domain
+        }
+
+        if (resolvedRSL || targetModuleFactory)
+        {
+            if (targetModuleFactory)
+                updateRSLModuleFactory(rsl, targetModuleFactory);
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     *  @private
+     *  Determine if the moduleFactory has loaded an rsl that matches the
+     *  specified digest.
+     *
+     *  @param moduleFactory The module factory to search.
+     *  @param digest The digest to search for.
+     *  @return true if a loaded rsl matching the digest was found.
+     */
+    private static function isRSLLoaded(moduleFactory:IFlexModuleFactory, digest:String):Boolean
+    {
+        var preloadedRSLs:Dictionary = moduleFactory.preloadedRSLs;
+
+        if (preloadedRSLs)
+        {
+            // loop over the rsls to find a matching digest
+            for each (var rsl:Array in preloadedRSLs)
+            {
+                var n:int = rsl.length;
                 for (var i:int = 0; i < n; i++)
                 {
-                    var rslConfiguration:Object = cdRSLs[i];
-                    var m:int = rslConfiguration.length;
-                    for (var j:int = 0; j < m; j++)
+                    if (rsl[i].digest == digest)
                     {
-                        if (rslConfiguration[j].digest == digest)
-                        {
-                            return digest;
-                        }
+                        return true;
                     }
                 }
             }
-
-            // if didn't find object, then check the parent
-            var request:Request = new Request(Request.GET_PARENT_FLEX_MODULE_FACTORY_REQUEST);
-            DisplayObject(moduleFactory).dispatchEvent(request);
-            currentModuleFactory = request.value as IFlexModuleFactory;
-            if (currentModuleFactory)
-            {
-                return LoaderUtil.getRSLLoadData(currentModuleFactory, digest);
-            }
-        }
-
-        return null;
+        }
+
+        return false;
+    }
+
+    /**
+     *  @private
+     *
+     *  Determine if the moduleFactory has a placeholder rsl that matches the
+     *  specified digest.
+     *
+     *  @param moduleFactory The module factory to search.
+     *  @param digest The digest to search for.
+     *  @return true if a placeholder rsl matching the digest was found.
+     */
+    private static function hasPlaceholderRSL(moduleFactory:IFlexModuleFactory, digest:String):Boolean
+    {
+        var phRSLs:Array = moduleFactory.info()["placeholderRsls"];
+
+        if (phRSLs)
+        {
+            // loop over the rsls to find a matching digest
+            var n:int = phRSLs.length;
+            for (var i:int = 0; i < n; i++)
+            {
+                var rsl:Object = phRSLs[i];
+                var m:int = rsl.length;
+                for (var j:int = 0; j < m; j++)
+                {
+                    if (rsl[j].digest == digest)
+                    {
+                        return true;
+                    }
+                }
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     *  @private
+     *
+     *  Update the module factory of an rsl, both the primary rsl and all
+     *  failover rsls.
+     *
+     *  @param rsl One RSL represented by an array of RSLData. The
+     *  first element in the array is the primary rsl, the others are failovers.
+     *  @param moduleFactory  The moduleFactory to set in the primary and
+     *  failover rsls.
+     */
+    private static function updateRSLModuleFactory(rsl:Array, moduleFactory:IFlexModuleFactory):void
+    {
+        var n:int = rsl.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            rsl[i].moduleFactory = moduleFactory;
+        }
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 5468
Author:   mhorn@adobe.com
Date:     2009-03-20T20:03:56.963789Z

Log Message:
-----------
asdoc bug fixes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/framework/src/mx/utils/ObjectUtil.as
+++ frameworks/projects/framework/src/mx/utils/ObjectUtil.as
@@ -841,9 +841,10 @@
      *
      *  @return An Object containing the following properties:
      *

-     *
name: String containing the name of the class;

+     *
name: String containing the name of the class.

      *
properties: Sorted list of the property names of the specified object,
-     *    or references to the original key if the specified object is a Dictionary

+     *    or references to the original key if the specified object is a Dictionary. The individual
+     * 	  array elements are QName instances, which contain both the local name of the property as well as the URI.

      *

     *
     *  @langversion 3.0


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/mx/src/mx/skins/halo/CheckBoxIcon.as
+++ frameworks/projects/mx/src/mx/skins/halo/CheckBoxIcon.as
@@ -0,0 +1,417 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.skins.halo
+{
+
+import flash.display.GradientType;
+import flash.display.Graphics;
+import mx.skins.Border;
+import mx.styles.StyleManager;
+import mx.utils.ColorUtil;
+
+/**
+ *  The skin for all the states of the icon in a CheckBox.
+ */
+public class CheckBoxIcon extends Border
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static var cache:Object = {};
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Several colors used for drawing are calculated from the base colors
+	 *  of the component (themeColor, borderColor and fillColors).
+	 *  Since these calculations can be a bit expensive,
+	 *  we calculate once per color set and cache the results.
+	 */
+	private static function calcDerivedStyles(themeColor:uint,
+											  borderColor:uint,
+											  fillColor0:uint,
+											  fillColor1:uint):Object
+	{
+		var key:String = HaloColors.getCacheKey(themeColor, borderColor,
+												fillColor0, fillColor1);
+
+		if (!cache[key])
+		{
+			var o:Object = cache[key] = {};
+
+			// Cross-component styles.
+			HaloColors.addHaloColors(o, themeColor, fillColor0, fillColor1);
+
+			// CheckBox-specific styles.
+			o.borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -50);
+		}
+
+		return cache[key];
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function CheckBoxIcon()
+	{
+		super();
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  measuredWidth
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get measuredWidth():Number
+    {
+        return 14;
+    }
+
+    //----------------------------------
+	//  measuredHeight
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get measuredHeight():Number
+    {
+        return 14;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override protected function updateDisplayList(w:Number, h:Number):void
+	{
+		super.updateDisplayList(w, h);
+
+		// User-defined styles
+		var borderColor:uint = getStyle("borderColor");
+		var checkColor:uint = getStyle("iconColor");
+		var fillAlphas:Array = getStyle("fillAlphas");
+		var fillColors:Array = getStyle("fillColors");
+		StyleManager.getColorNames(fillColors);
+		var highlightAlphas:Array = getStyle("highlightAlphas");
+		var themeColor:uint = getStyle("themeColor");
+
+		// Derived styles
+		var derStyles:Object = calcDerivedStyles(themeColor, borderColor,
+												 fillColors[0], fillColors[1]);
+
+		var borderColorDrk1:Number =
+			ColorUtil.adjustBrightness2(borderColor, -50);
+
+		var themeColorDrk1:Number =
+			ColorUtil.adjustBrightness2(themeColor, -25);
+
+		var bDrawCheck:Boolean = false;
+
+		var upFillColors:Array;
+		var upFillAlphas:Array;
+
+		var overFillColors:Array;
+		var overFillAlphas:Array;
+
+		var disFillColors:Array;
+		var disFillAlphas:Array;
+
+		var g:Graphics = graphics;
+
+		g.clear();
+
+		switch (name)
+		{
+			case "upIcon":
+			{
+   				upFillColors = [ fillColors[0], fillColors[1] ];
+				upFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ borderColor, borderColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h ),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: 0 });
+
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					upFillColors, upFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h - 2) / 2, 0,
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
+
+
+				break;
+			}
+
+			case "overIcon":
+			{
+				if (fillColors.length > 2)
+					overFillColors = [ fillColors[2], fillColors[3] ];
+				else
+					overFillColors = [ fillColors[0], fillColors[1] ];
+
+				if (fillAlphas.length > 2)
+					overFillAlphas = [ fillAlphas[2], fillAlphas[3] ];
+  				else
+					overFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: 0 });
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					overFillColors, overFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h - 2) / 2, 0,
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
+
+				break;
+			}
+
+			case "downIcon":
+			{
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h));
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					[ derStyles.fillColorPress1,
+					derStyles.fillColorPress2 ], 1,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h - 2) / 2, 0,
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
+
+				break;
+			}
+
+			case "disabledIcon":
+			{
+   				disFillColors = [ fillColors[0], fillColors[1] ];
+				disFillAlphas = [ Math.max(0, fillAlphas[0] - 0.15),
+								  Math.max(0, fillAlphas[1] - 0.15) ];
+
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ borderColor, borderColorDrk1 ], 0.5,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: 0 });
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					disFillColors, disFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				break;
+			}
+
+			case "selectedUpIcon":
+			{
+				bDrawCheck = true;
+
+   				upFillColors = [ fillColors[0], fillColors[1] ];
+				upFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ borderColor, borderColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: 0 });
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					upFillColors, upFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h - 2) / 2, 0,
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
+
+				break;
+			}
+
+			case "selectedOverIcon":
+			{
+				bDrawCheck = true;
+
+				if (fillColors.length > 2)
+					overFillColors = [ fillColors[2], fillColors[3] ];
+				else
+					overFillColors = [ fillColors[0], fillColors[1] ];
+
+				if (fillAlphas.length > 2)
+					overFillAlphas = [ fillAlphas[2], fillAlphas[3] ];
+  				else
+					overFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: 0 });
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					overFillColors, overFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h - 2) / 2, 0,
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
+
+				break;
+			}
+
+			case "selectedDownIcon":
+			{
+				bDrawCheck = true;
+
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h));
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					[ derStyles.fillColorPress1,
+					derStyles.fillColorPress2 ], 1,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h - 2) / 2, 0,
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
+
+				break;
+			}
+
+			case "selectedDisabledIcon":
+			{
+				bDrawCheck = true;
+				checkColor = getStyle("disabledIconColor");
+
+   				disFillColors = [ fillColors[0], fillColors[1] ];
+				disFillAlphas = [ Math.max( 0, fillAlphas[0] - 0.15),
+								  Math.max( 0, fillAlphas[1] - 0.15) ];
+
+				// border
+				drawRoundRect(
+					0, 0, w, h, 0,
+					[ borderColor, borderColorDrk1 ], 0.5,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: 0 });
+
+				// box fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, 0,
+					disFillColors, disFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2));
+
+				break;
+			}
+		}
+
+		// Draw the checkmark symbol.
+		if (bDrawCheck)
+		{
+			g.beginFill(checkColor);
+			g.moveTo(3, 5);
+			g.lineTo(5, 10);
+			g.lineTo(7, 10);
+			g.lineTo(12, 2);
+			g.lineTo(13, 1);
+			g.lineTo(11, 1);
+			g.lineTo(6.5, 7);
+			g.lineTo(5, 5);
+			g.lineTo(3, 5);
+			g.endFill();
+		}
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/components/Button.as
+++ frameworks/projects/spark/src/spark/components/Button.as
@@ -32,6 +32,11 @@

 /**
  *  @copy mx.components.baseClasses.GroupBase#focusColor
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [Style(name="focusColor", type="uint", format="Color", inherit="yes")]

@@ -41,6 +46,11 @@
  *  this event is dispatched repeatedly as long as the button stays down.
  *
  *  @eventType mx.events.FlexEvent.BUTTON_DOWN
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [Event(name="buttonDown", type="mx.events.FlexEvent")]

@@ -50,6 +60,11 @@
  *  repeatInterval.
  *
  *  @default 500
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [Style(name="repeatDelay", type="Number", format="Time", inherit="no")]

@@ -58,26 +73,51 @@
  *  if the user presses and holds the mouse on a button.
  *
  *  @default 35
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [Style(name="repeatInterval", type="Number", format="Time", inherit="no")]

 /**
  *  Up State of the Button
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [SkinState("up")]

 /**
  *  Over State of the Button
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [SkinState("over")]

 /**
  *  Down State of the Button
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [SkinState("down")]

 /**
  *  Disabled State of the Button
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [SkinState("disabled")]

@@ -106,6 +146,11 @@
  *  mouseUp events whether enabled or disabled.

  *
  *  @includeExample examples/FxButtonExample.mxml
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class FxButton extends FxComponent implements IFocusManagerComponent, IDataRenderer
 {
@@ -119,6 +164,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function FxButton()
     {
@@ -154,6 +204,11 @@

     /**
      *  A skin part that defines the  label of the button.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var labelField:TextGraphicElement;

@@ -193,6 +248,11 @@
      *  @eventType dataChange
      *  @see #label
      *  @see mx.core.IDataRenderer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get data():Object
     {
@@ -233,6 +293,11 @@
      *  @default ""
      *  @see #data
      *  @eventType dataChange
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function set label(value:String):void
     {
@@ -265,6 +330,11 @@
     /**
      *  Indicates whether the mouse pointer is over the button.
      *  Used to determine the skin state.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function get hoveredOver():Boolean
     {
@@ -288,6 +358,11 @@
      *  Indicates whether the mouse is down and the mouse pointer was
      *  over the button when MouseEvent.MOUSE_DOWN was first dispatched.
      *  Used to determine the skin state.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function get mouseCaptured():Boolean
     {
@@ -326,6 +401,11 @@
     /**
      *  Indicates whether a keyboard key is pressed while the button is in focus.
      *  Used to determine the skin state.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function get keyboardPressed():Boolean
     {
@@ -354,6 +434,11 @@
      *  when the user drags the mouse off of it.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get stickyHighlighting():Boolean
     {
@@ -408,6 +493,11 @@

     /**
      *  A uint to store bitflags (booleans compressed down into one integer).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected var flags:uint = 0;

@@ -499,6 +589,11 @@
      *  Marks the button state invalid, so that the button skin's state
      *  can be set properly and "buttonDown" events can be dispatched where
      *  appropriate.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function invalidateButtonState():void
     {
@@ -577,6 +672,11 @@
      *  target can be other than the FxButton - for example when the user presses the
      *  FxButton, we listen for MOUSE_UP and MOUSE_UP_SOMEWHERE to handle cases where the user drags
      *  outside the FxButton and releases the mouse.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function mouseEventHandler(event:Event):void
     {
@@ -640,6 +740,11 @@
      *  Override in subclasses to handle the click event rather than
      *  adding a separate handler. onClick will not get called if the
      *  button is disabled.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function onClick(event:MouseEvent):void
     {
@@ -707,6 +812,11 @@
      *  events if the user holds down the mouse button.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get autoRepeat():Boolean
     {


remove spurious warning when parsing ID3 pid related to #194

--- src/org/mangui/hls/demux/TSDemuxer.as
+++ src/org/mangui/hls/demux/TSDemuxer.as
@@ -710,7 +710,7 @@
                         }
                     }
                     CONFIG::LOGGING {
-                        if (!_curId3PES) {
+                        if (!stt && !_curId3PES) {
                             Log.warn("TS: Discarding ID3 packet with id " + pid + " bad TS segmentation ?");
                         }
                     }


[TSDemuxer] Revert removal of AUDs preceding AVC Header

Reverts commit 13ce46c1f76dcb454a3698a00ac5f4d08a62ad4f

--- src/org/mangui/hls/demux/TSDemuxer.as
+++ src/org/mangui/hls/demux/TSDemuxer.as
@@ -102,7 +102,6 @@

         /** Transmux the M2TS file into an FLV file. **/
         public function TSDemuxer(callback_audioselect : Function, callback_progress : Function, callback_complete : Function, callback_videometadata : Function, audioOnly : Boolean) {
-            _avcc = null;
             _curAudioPES = null;
             _curVideoPES = null;
             _curId3PES = null;
@@ -127,6 +126,7 @@
         /** append new TS data */
         public function append(data : ByteArray) : void {
             if (_dataVector == null) {
+                _avcc = null;
                 _dataVector = new Vector.<ByteArray>();
                 _dataComplete = false;
                 _readPosition = 0;
@@ -461,15 +461,7 @@
                             /* push current data into video tag, if any */
                             _curVideoTag.push(_curNalUnit, 0, _curNalUnit.length);
                         }
-                        // only push current tag if AVC HEADER has been pushed already
-                        if(_avcc) {
-                            _tags.push(_curVideoTag);
-                        }
-                        CONFIG::LOGGING {
-                            if(!_avcc) {
-                                Log.warn("TS: discarding video tag, as AVC HEADER not found yet, fragment not starting with I-Frame ?");
-                            }
-                        }
+                        _tags.push(_curVideoTag);
                     }
                     _curNalUnit = new ByteArray();
                     _curVideoTag = new FLVTag(FLVTag.AVC_NALU, pes.pts, pes.dts, false);


added missing import for __AS3__.vec.Vector; in IsoContainer

--- fp10/src/as3isolib/core/IsoContainer.as
+++ fp10/src/as3isolib/core/IsoContainer.as
@@ -29,6 +29,8 @@
 */
 package as3isolib.core
 {
+	import __AS3__.vec.Vector;
+
 	import as3isolib.data.INode;
 	import as3isolib.data.Node;
 	import as3isolib.events.IsoEvent;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10633
Author:   dloverin@adobe.com
Date:     2009-09-28T13:24:30.559033Z

Log Message:
-----------
Use styleManager instance instead of StyleManager singleton (framework and compiler generated code)

Modified compiler generated style code for the FlexInit class. The style related changes are only available with the -keep option. AST generation is coming later.

Only the framework project is changed here. The other projects are will be changed soon.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex and Paul
Tests run: checkintests, all Mustella tests(no new failures)
Is noteworthy for integration: no.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ButtonBarButtonSkin.as</path>
<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/containers/accordionClasses/AccordionHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/CanvasLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressIndeterminateSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/DateChooserMonthArrowSkin.as</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/skins/halo/SliderThumbSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/DividedBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollThumbSkin.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/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleModule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Form.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.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/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/TitleBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/NumericStepperDownSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PopUpButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/ProgrammaticSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/TabSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/textClasses/TextRange.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/AccordionHeaderSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/CheckBoxIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/NumericStepperUpSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/RadioButtonIcon.as</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/states/SetStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ComboBoxArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeaderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.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/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/MenuBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressBarSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/SliderTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/DataGridHeaderBackgroundSkin.as</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/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>

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

--- frameworks/projects/mx/src/mx/controls/ButtonBar.as
+++ frameworks/projects/mx/src/mx/controls/ButtonBar.as
@@ -30,7 +30,6 @@
 import mx.events.ItemClickEvent;
 import mx.managers.IFocusManagerComponent;
 import mx.styles.CSSStyleDeclaration;
-import mx.styles.StyleManager;

 use namespace mx_internal;

@@ -536,8 +535,8 @@
         {
             recalcButtonHeights = true;
         }
-        else if (StyleManager.isInheritingStyle(styleProp) &&
-            StyleManager.isSizeInvalidatingStyle(styleProp))
+        else if (styleManager.isInheritingStyle(styleProp) &&
+            styleManager.isSizeInvalidatingStyle(styleProp))
         {
             recalcButtonWidths = recalcButtonHeights = true;
         }


* tp 和 im 现在是 public

* tp 和 im 现在是 public

--- ageb/src/ageb/modules/job/NativeJob.as
+++ ageb/src/ageb/modules/job/NativeJob.as
@@ -23,12 +23,12 @@
 		/**
 		 * 当前任务关联的 tp
 		 */
-		protected var tp:TexturePacker;
+		public var tp:TexturePacker;

 		/**
 		 * 当前任务关联的 im
 		 */
-		protected var im:ImageMagick;
+		public var im:ImageMagick;

 		/**
 		 * 任务名称


add Vector4.lerp() and remove Vector4::copy(), use new Vector4().copyFrom() instead

--- src/aerys/minko/type/math/Vector4.as
+++ src/aerys/minko/type/math/Vector4.as
@@ -202,12 +202,9 @@
 			return Vector3D.distance(u._vector, v._vector);
 		}

-		public static function copy(source : Vector4, target : Vector4 = null) : Vector4
-		{
-			target ||= FACTORY.create() as Vector4;
-			target.set(source.x, source.y, source.z, source.w);
-
-			return target;
+		public function copyFrom(source : Vector4) : Vector4
+		{
+			return set(source.x, source.y, source.z, source.w);
 		}

 		public function incrementBy(vector : Vector4) : Vector4
@@ -219,7 +216,7 @@

 			return this;
 		}
-
+
 		public function decrementBy(vector : Vector4) : Vector4
 		{
 			_vector.decrementBy(vector._vector);
@@ -238,6 +235,36 @@
 			_changed.execute(this);

 			return this;
+		}
+
+		public function lerp(target : Vector4, ratio : Number) : Vector4
+		{
+			if (ratio == 1.)
+				return copyFrom(target);
+
+			if (ratio != 0.)
+			{
+				var x : Number = _vector.x;
+				var y : Number = _vector.y;
+				var z : Number = _vector.z;
+				var w : Number = _vector.w;
+
+				set(
+					x + (target._vector.x - x) * ratio,
+					y + (target._vector.y - y) * ratio,
+					z + (target._vector.z - z) * ratio,
+					w + (target._vector.w - w) * ratio
+				);
+			}
+
+			return this;
+		}
+
+		public function equals(v : Vector4, allFour : Boolean = false, tolerance : Number = 0.) : Boolean
+		{
+			return tolerance
+				? _vector.nearEquals(v._vector, tolerance, allFour);
+				: _vector.equals(v._vector, allFour)
 		}

 		public function project() : Vector4
@@ -300,9 +327,7 @@
 		{
 			if (x != _vector.x || y != _vector.y || z != _vector.z || w != _vector.w)
 			{
-				_vector.x = x;
-				_vector.y = y;
-				_vector.z = z;
+				_vector.setTo(x, y, z);
 				_vector.w = w;

 				_update = UPDATE_ALL;
@@ -315,8 +340,7 @@

 		public function toString() : String
 		{
-			return "(" + _vector.x + ", " + _vector.y + ", " + _vector.z + ", "
-				   + _vector.w + ")";
+			return '(' + _vector.x + ', ' + _vector.y + ', ' + _vector.z + ', ' + _vector.w + ')';
 		}

 		public static function scale(v : Vector4, s : Number, out : Vector4 = null) : Vector4


Add Vector4.fromVector3D().

Add Vector4.fromVector3D().

--- src/aerys/minko/type/math/Vector4.as
+++ src/aerys/minko/type/math/Vector4.as
@@ -350,19 +350,31 @@
 			return out;
 		}

+		public static function fromVector3D(vector : Vector3D, out : Vector4 = null) : Vector4
+		{
+			out ||= FACTORY.create() as Vector4;
+
+			out.x = vector.x;
+			out.y = vector.y;
+			out.z = vector.z;
+			out.w = vector.w;
+
+			return out;
+		}
+
 		public function toVector3D(out : Vector3D = null) : Vector3D
 		{
 			if (!out)
 				return _vector.clone();
-
+
 			out.x = _vector.x;
 			out.y = _vector.y;
 			out.z = _vector.z;
 			out.w = _vector.w;
-
+
 			return out;
 		}
-
+
 		public function lock() : void
 		{
 			_locked = true;


Urho3D Editor: Correct misnaming of function call for hiding spawn editor

--- bin/Data/Scripts/Editor/EditorSpawn.as
+++ bin/Data/Scripts/Editor/EditorSpawn.as
@@ -82,7 +82,7 @@
         spawnWindow.BringToFront();
     }
     else
-        HideSpawnWindow();
+        HideSpawnEditor();
     return true;
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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

 package spark.automation.delegates.components
 {


Added 'isStoppedByCollision' accessor.

Added 'isStoppedByCollision' accessor.

--- src/engine/tetragon/systems/racetrack/RacetrackSystem.as
+++ src/engine/tetragon/systems/racetrack/RacetrackSystem.as
@@ -148,7 +148,7 @@
 		private var _isJump:Boolean;
 		private var _isFall:Boolean;
 		private var _isOffRoad:Boolean;
-		private var _isStoppedAfterCollision:Boolean;
+		private var _isStoppedByCollision:Boolean;

 		private var _started:Boolean;
 		private var _idleAfterCollision:Boolean;
@@ -283,7 +283,7 @@
 			_playerEnabled = true;
 			_suppressDefaultPlayerStates = false;
 			_isOffRoad = false;
-			_isStoppedAfterCollision = false;
+			_isStoppedByCollision = false;
 		}

@@ -975,6 +975,12 @@
 		}

+		public function get isStoppedByCollision():Boolean
+		{
+			return _isStoppedByCollision;
+		}
+
+
 		public function get playerFPS():int
 		{
 			return _playerFPS;
@@ -1249,7 +1255,6 @@
 				if (_isAccelerating)
 				{
 					_idleAfterCollision = false;
-					_isStoppedAfterCollision = false;
 					_playerSpeed = accel(_playerSpeed, _acceleration);
 				}
 				else if (_isBraking)
@@ -1335,6 +1340,7 @@
 					 * player is actually off-road! */
 					if (e.type == RTObjectTypes.OFFROAD && (_playerX < -1 || _playerX > 1))
 					{
+						_isStoppedByCollision = true;
 						_playerSpeed = _maxSpeed / 5;
 						/* Stop in front of sprite (at front of segment). */
 						_position = increase(segment.point1.world.z, -_playerZ, _trackLength);
@@ -1352,20 +1358,29 @@
 						/* Stop in front of sprite (at front of segment). */
 						if (hardness >= 100)
 						{
-							_isStoppedAfterCollision = true;
+							_isStoppedByCollision = true;
 							/* Determines how quick player can steer away from obstacle after being stopped. */
 							if (_playerEnabled) _playerSpeed = _maxSpeed / 5;
 							else _playerSpeed = 0;
 							_position = increase(segment.point1.world.z, -_playerZ, _trackLength);
 							_idleAfterCollision = true;
 						}
+						else
+						{
+							_isStoppedByCollision = false;
+						}
 						break;
 					}
 					else if (e.type == RTObjectTypes.COLLECTIBLE)
 					{
+						_isStoppedByCollision = false;
 						/* Remove the entity from the racetrack! */
 						disableEntity(e);
 					}
+				}
+				else
+				{
+					_isStoppedByCollision = false;
 				}
 			}
 		}
@@ -1564,7 +1579,7 @@
 		private function disablePlayer(duration:Number):void
 		{
 			_playerEnabled = false;
-			if (_isStoppedAfterCollision)
+			if (_isStoppedByCollision)
 			{
 				_playerSpeed = 0;
 			}


fix ambigous = operator in if boolean expression to comply with ASC 2.0 compiler

--- src/aerys/minko/scene/SceneIterator.as
+++ src/aerys/minko/scene/SceneIterator.as
@@ -111,7 +111,7 @@
 			}

 			// parse
-			while (token = getToken())
+			while ((token = getToken()) != null)
 			{
 				switch (token)
 				{


Added language import for translation work later

--- Arguments/src/classes/ArgumentPanel.as
+++ Arguments/src/classes/ArgumentPanel.as
@@ -42,6 +42,7 @@
 	import spark.layouts.VerticalLayout;
 	import spark.skins.spark.PanelSkin;

+	import classes.Language;

 	public class ArgumentPanel extends GridPanel
 	{


Fixed freeze bug in FP.frames() and added FP.getColorHSV() function.

--- net/flashpunk/FP.as
+++ net/flashpunk/FP.as
@@ -465,6 +465,35 @@
 		}

 		/**
+		 * Creates a color value with the chosen HSV values.
+		 * @param	h		The hue of the color (from 0 to 1).
+		 * @param	s		The saturation of the color (from 0 to 1).
+		 * @param	v		The value of the color (from 0 to 1).
+		 * @return	The color uint.
+		 */
+		public static function getColorHSV(h:Number, s:Number, v:Number):uint
+		{
+			return 0xFFFFFF;
+			h *= 6;
+			var i:int = h,
+				f:Number = h - i;
+			if (!(i & 1)) f = 1 - f;
+			var m:Number = v * (1 - s),
+				n:Number = v * (1 - s * f);
+			switch (i)
+			{
+				case 6:
+				case 0: return int(v) << 16 | int(n) << 8 | int(m);
+				case 1: return int(n) << 16 | int(v) << 8 | int(m);
+				case 2: return int(m) << 16 | int(v) << 8 | int(n);
+				case 3: return int(m) << 16 | int(n) << 8 | int(v);
+				case 4: return int(n) << 16 | int(m) << 8 | int(v);
+				case 5: return int(v) << 16 | int(m) << 8 | int(n);
+			}
+			return 0;
+		}
+
+		/**
 		 * Finds the red factor of a color.
 		 * @param	color		The color to evaluate.
 		 * @return	A uint from 0 to 255.
@@ -612,15 +641,16 @@
 		 * @param	to		Ending frame.
 		 * @param	skip	Skip amount every frame (eg. use 1 for every 2nd frame).
 		 */
-		public static function frames(from:uint, to:uint, skip:uint = 0):Array
-		{
-			var a:Array = [], sign:uint = 1 + skip;
+		public static function frames(from:int, to:int, skip:int = 0):Array
+		{
+			var a:Array = [];
+			skip ++;
 			if (from < to)
 			{
 				while (from <= to)
 				{
 					a.push(from);
-					from += sign;
+					from += skip;
 				}
 			}
 			else
@@ -628,7 +658,7 @@
 				while (from >= to)
 				{
 					a.push(from);
-					from -= sign;
+					from -= skip;s
 				}
 			}
 			return a;


Vector3 API changes to unify with Vector2 (which will be joining nenya soon):
- multiply() -> scale()  - since multiplication is ambiguous in vector contexts
- added destructive versions of add/subtract/cross/etc functions
- length now retrievable via a getter

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@413 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flash/Vector3.as
+++ src/as/com/threerings/flash/Vector3.as
@@ -41,6 +41,12 @@
     /** Creates a new vector. All three X, Y, Z parameters are optional. */
     public function Vector3 (x :Number = 0, y :Number = 0, z :Number = 0)
     {
+        set(x, y, z);
+    }
+
+    /** Assigns values to the three parameters of this vector. */
+    public function set (x :Number, y :Number, z :Number) :void
+    {
         this.x = x;
         this.y = y;
         this.z = z;
@@ -49,48 +55,88 @@
     /** Duplicates a vector. */
     public function clone() :Vector3
     {
-        return new Vector3 (this.x, this.y, this.z);
+        return new Vector3(this.x, this.y, this.z);
     }

     /** Returns this vector's length. */
-    public function length () :Number
-    {
-        if (this == INFINITE || x == Infinity || y == Infinity || z == Infinity) {
-            return Infinity;
-        } else {
-            return Math.sqrt(x * x + y * y + z * z);
-        }
+    public function get length () :Number
+    {
+        return Math.sqrt(x * x + y * y + z * z);
+    }
+
+    /** Returns the dot product of this vector with vector v. */
+    public function dot (v :Vector3) :Number
+    {
+        return x * v.x + y * v.y + z * v.z;
     }

     /** Returns a new vector that is a normalized version of this vector. */
     public function normalize () :Vector3
     {
-        var len :Number = length();
-        return new Vector3 (x / len, y / len, z / len);
-    }
-
-    /** Returns the dot product of this vector with vector v. */
-    public function dot (v :Vector3) :Number
-    {
-        return x * v.x + y * v.y + z * v.z;
-    }
-
-    /** Returns a new vector that is the cross product of this vector with vector v. */
+        return this.clone().normalizeLocal();
+    }
+
+    /** Destructively normalizes this vector. Returns a reference to the modified self. */
+    public function normalizeLocal () :Vector3
+    {
+        var len :Number = this.length;
+        set(x / len, y / len, z / len);
+        return this;
+    }
+
+    /**
+     * Returns a new vector that is the cross product of this vector with vector v,
+     * such that result = this ⊗ v.
+     */
     public function cross (v :Vector3) :Vector3
     {
-        return new Vector3(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x);
+        return this.clone().crossLocal(v);
+    }
+
+    /**
+     * Sets this vector to the result of a cross product with vector v, such that
+     * this = this ⊗ v. Returns a reference to the modified self.
+     */
+    public function crossLocal (v :Vector3) :Vector3
+    {
+        var xx :Number = y * v.z - z * v.y;
+        var yy :Number = z * v.x - x * v.z;
+        var zz :Number = x * v.y - y * v.x;
+        set(xx, yy, zz);
+
+        return this;
     }

     /** Returns a new vector that is the summation of this vector with vector v. */
     public function add (v :Vector3) :Vector3
     {
-        return new Vector3(x + v.x, y + v.y, z + v.z);
+        return this.clone().addLocal(v);
+    }
+
+    /**
+     * Sets this vector to the result of summation with v, such that this = this + v.
+     * Returns a reference to the modified self.
+     */
+    public function addLocal (v :Vector3) :Vector3
+    {
+        set(x + v.x, y + v.y, z + v.z);
+        return this;
     }

     /** Returns a new vector that is the subtraction of vector v from this vector.*/
     public function subtract (v :Vector3) :Vector3
     {
-        return new Vector3(x - v.x, y - v.y, z - v.z);
+        return this.clone().subtractLocal(v);
+    }
+
+    /**
+     * Sets the vector to the result of subtraction of v, such that this = this - v.
+     * Returns a reference to the modified self.
+     */
+    public function subtractLocal (v :Vector3) :Vector3
+    {
+        set(x - v.x, y - v.y, z - v.z);
+        return this;
     }

     /**
@@ -111,7 +157,7 @@
             return INFINITE; // the two shall never meet
         } else {
             var r :Number = rray / rplane;
-            return s.add(this.multiply(r));
+            return s.add(this.scale(r));
         }
     }

@@ -119,9 +165,19 @@
      * Returns a new vector that is the result of multiplying the current vector
      * by the specified scalar.
      */
-    public function multiply (value :Number) :Vector3
-    {
-        return new Vector3(x * value, y * value, z * value);
+    public function scale (value :Number) :Vector3
+    {
+        return this.clone().scaleLocal(value);
+    }
+
+    /**
+     * Destructively multiplies this vector by the specified scalar.
+     * Returns a reference to the modified self.
+     */
+    public function scaleLocal (value :Number) :Vector3
+    {
+        set(x * value, y * value, z * value);
+        return this;
     }

     /**


Allow creation of an array of arrays of bytes...

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

--- src/as/com/threerings/io/TypedArray.as
+++ src/as/com/threerings/io/TypedArray.as
@@ -1,4 +1,6 @@
 package com.threerings.io {
+
+import flash.utils.ByteArray;

 import com.threerings.util.ClassUtil;
 import com.threerings.util.Cloneable;
@@ -31,6 +33,9 @@

         } else if (of === Number) {
             return "[D";
+
+        } else if (of === ByteArray) {
+            return "[[B";
         }

         var cname :String = Translations.getToServer(


setup the Viewport using the baseline profile by default (instead of the not yet available extended profile)

--- src/aerys/minko/render/Viewport.as
+++ src/aerys/minko/render/Viewport.as
@@ -225,7 +225,7 @@
 								 stage3dId			: uint		= 0,
 								 width				: uint 		= 0,
 								 height				: uint		= 0,
-								 context3DProfile	: String	= Context3DProfile.BASELINE_EXTENDED)
+								 context3DProfile	: String	= Context3DProfile.BASELINE)
 		{
 			_stage3dId = stage3dId;
 			_antiAliasing = antiAliasing;


Utilize Util.equals() to compare ByteArrays.

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

--- src/as/com/threerings/util/Long.as
+++ src/as/com/threerings/util/Long.as
@@ -98,18 +98,7 @@
     // from Equalable
     public function equals (other :Object) :Boolean
     {
-        var that :Long = (other as Long);
-        if (that == null || this.bytes.length != 8 || that.bytes.length != 8) {
-            return false;
-        }
-
-        // byte-wise comparison
-        for (var ii :int = 0; ii < 8; ii++) {
-            if (this.bytes[ii] != that.bytes[ii]) {
-                return false;
-            }
-        }
-        return true;
+        return (other is Long) && Util.equals(this.bytes, Long(other).bytes);
     }
 }
 }


variable to test for buffer on video as well

--- src/flash/htmlelements/VideoElement.as
+++ src/flash/htmlelements/VideoElement.as
@@ -37,6 +37,7 @@
 		private var _bytesTotal:Number = 0;
 		private var _bufferedTime:Number = 0;
 		private var _bufferEmpty:Boolean = false;
+		private var _bufferingChanged:Boolean = false;

 		private var _videoWidth:Number = -1;
 		private var _videoHeight:Number = -1;


Load crossdomain by default

Load crossdomain by default

--- src/fm/wavesurfer/audio/AudioLoader.as
+++ src/fm/wavesurfer/audio/AudioLoader.as
@@ -28,7 +28,7 @@

 		public function load(url : String) : void {
 			this.url = url;
-			sound.load(new URLRequest(url), new SoundLoaderContext());
+			sound.load(new URLRequest(url), new SoundLoaderContext(1000, true));
 		}

 		private function onSoundLoaded(event : Event) : void {


Transferred from the Adobe Open Source Subversion Repository

Revision: 21319
Author:   build@adobe.com
Date:     2011-06-01T17:45:41.136089Z

Log Message:
-----------
Version update to 4.5.2

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19912
Author:   tkraikit@adobe.com
Date:     2011-01-24T19:51:04.840700Z

Log Message:
-----------
ImageSkin for mobile.

Mobile Theme Skins spec: https://zerowing.corp.adobe.com/display/flexmobile/Mobile+Theme+Skins+Spec

XD spec for ImageSkin: https://zerowing.corp.adobe.com/display/xdplatform/Image+Indicator

QE notes: none
Doc notes: n/a
Bugs: n/a
Reviewer: Jason San Jose
Tests run: checkintests, mustella(cyclone)
Is noteworthy for integration: n/a

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/ImageInvalid.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/ImageInvalid.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/ImageInvalid.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ImageSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 8386
Author:   srahim@adobe.com
Date:     2009-07-06T19:50:00.014831Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/Spinner.as
+++ frameworks/projects/spark/src/spark/components/Spinner.as
@@ -101,6 +101,26 @@
  *

  *
  *  Therefore the scale is {-1,0,3,6,9,10}.
+ *
+ *
The Spinner control has the following default characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           19 pixels wide by 23 pixels high
+ *

+ *

+ *           Minimum size
+ *           12 pixels wide and 12 pixels high
+ *

+ *

+ *           Maximum size
+ *           10000 pixels wide and 10000 pixels high
+ *

+ *

  *
  *  @mxml
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 12478
Author:   gosmith@adobe.com
Date:     2009-12-04T01:03:50.724937Z

Log Message:
-----------
The partAdded() and partRemoved() methods of Spark components now dispatch new events named "partAdded" and "partRemoved", of type SkinPartEvent. The accessibility implementation classes will soon use these events to know when skin parts are added and removed so that they can attach and remove event handlers appropriately. This mechanism may change in a future release, so developers should not depend on these undocumented events.

I've made sure that all overrides of partAdded() and partRemoved() call the supermethod so that they dispatch these events.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/SkinPartEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/Spinner.as
+++ frameworks/projects/spark/src/spark/components/Spinner.as
@@ -351,6 +351,8 @@
      */
     override protected function partAdded(partName:String, instance:Object):void
     {
+		super.partAdded(partName, instance);
+
         // FIXME (hmuller): autoRepeat as a property on Spinner?
         if (instance == incrementButton)
         {
@@ -373,6 +375,8 @@
      */
     override protected function partRemoved(partName:String, instance:Object):void
     {
+		super.partRemoved(partName, instance);
+
         if (instance == incrementButton)
         {
             incrementButton.removeEventListener(FlexEvent.BUTTON_DOWN,


Add license header to flash/utils/FlashUtilScript.as

--- src/flash/utils/FlashUtilScript.as
+++ src/flash/utils/FlashUtilScript.as
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2014 Mozilla Foundation
+ *
+ * Licensed 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
+ *
+ *     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.
+ */
+
 package flash.utils {
 import avmplus.FLASH10_FLAGS;


fixed errors in documentation

fixed errors in documentation

--- WeaveData/src/weave/utils/ZoomUtils.as
+++ WeaveData/src/weave/utils/ZoomUtils.as
@@ -49,7 +49,8 @@
 		 * This function calculates the unambiguous scale value (defined as pixels per data unit) based on the parameters.
 		 * @param fullDataBounds The full extent in data coordinates.
 		 * @param minScreenSize The minimum size that the fullDataBounds can appear as on the screen (the screen size of zoom level zero).
-		 * @return The zoom level, where the screen size of the full extent is 2^zoomLevel * minSize.
+		 * @param zoomLevel The zoom level, where the screen size of the full extent is 2^zoomLevel * minSize.
+		 * @return The scale, defined as pixels per data unit.
 		 */
 		public static function getScaleFromZoomLevel(fullDataBounds:IBounds2D, minScreenSize:Number, zoomLevel:Number):Number
 		{


Added start of native uncaughtErrors implementation

--- source/RxAs/src/rx/Observable.as
+++ source/RxAs/src/rx/Observable.as
@@ -13,6 +13,8 @@

 	public class Observable
 	{
+		private static var _unhandledErrorsSubject : Subject = new Subject(Error);
+
 		public function Observable()
 		{
 			throw new IllegalOperationError("This class is static and cannot be instantiated. Create an IObservable by using one of Observable's static methods");
@@ -565,6 +567,12 @@

 		public static function uncaughtErrors(loaderInfo : LoaderInfo = null) : IObservable
 		{
+			return Observable.merge(Error, Observable.returnValues(Error,
+				[_unhandledErrorsSubject, getNativeUncaughtErrors(loaderInfo)]));
+		}
+
+		private static function getNativeUncaughtErrors(loaderInfo : LoaderInfo = null) : IObservable
+		{
 			loaderInfo = loaderInfo || LoaderInfo.getLoaderInfoByDefinition(Observable);

 			var uncaughtErrorsSupported : Boolean =


Fixed getSpan and setSpan methods in RCHeightfield.

--- as3_lib/src/recastnavigation/recast/RCHeightfield.as
+++ as3_lib/src/recastnavigation/recast/RCHeightfield.as
@@ -2,6 +2,7 @@

 	import recastnavigation.core.RNBase;
 	import recastnavigation.core.rn_internal;
+	import recastnavigation.core.utils.copyBytes;
 	import recastnavigation.internal_api.CModule;
 	import recastnavigation.internal_api.internal_rcAllocHeightfield;
 	import recastnavigation.internal_api.internal_rcCreateHeightfield;
@@ -71,7 +72,7 @@
 		public function getSpan(index:int, resultSpan:RCSpan = null):RCSpan {

 			if (resultSpan == null) resultSpan = new RCSpan();
-			resultSpan.ptr = CModule.read32(CModule.read32(ptr + OFFSET_SPANS) + 4 * index);
+			resultSpan.ptr = CModule.read32(CModule.read32(ptr + OFFSET_SPANS) + RCSpan.SIZE * index);
 			return resultSpan;

 		}
@@ -79,7 +80,7 @@
 		/** Heightfield of spans (width*height). Setter. */
 		public function setSpan(index:int, value:RCSpan):void {

-			CModule.write32(CModule.read32(ptr + OFFSET_SPANS) + 4 * index, value.ptr);
+			copyBytes(value.ptr, CModule.read32(ptr + OFFSET_SPANS) + RCSpan.SIZE * index, RCSpan.SIZE);

 		}


Make JavaScriptCanvas linkable

Make JavaScriptCanvas linkable

--- WeaveUI/src/weave/ui/JavaScriptCanvas.as
+++ WeaveUI/src/weave/ui/JavaScriptCanvas.as
@@ -2,6 +2,8 @@
 {
 	import weave.compiler.StandardLib;
 	import weave.api.core.ILinkableObject;
+	import weave.core.LinkableString;
+	import weave.api.newLinkableChild;

 	import mx.containers.Canvas;
 	import mx.controls.Image;
@@ -18,7 +20,7 @@
 		private var lastUpdate:int = 0;
 		private var forceReadTimer:Timer;

-		public var sourceId:String = null;
+		public const elementId:LinkableString = newLinkableChild(this, LinkableString);

 		public function JavaScriptCanvas()
@@ -50,22 +52,18 @@
 			/* Only execute on the timer tick if we haven't loaded recently */
 			if (evt.type == TimerEvent.TIMER && (getTimer() < (lastUpdate + 200)) ) return;

-			if (evt.type == TimerEvent.TIMER) weaveTrace("timed out, jumpstarting canvas read");
-
 			var content:String;

 			/* TODO convert to raw ExternalInterface */
-			if (sourceId) content = JavaScript.exec(
-				{elementId: sourceId},
+			if (elementId.value) content = JavaScript.exec(
+				{elementId: elementId.value},
 				"var canvas = document.getElementById(elementId);",
 				"return canvas && canvas.toDataURL && canvas.toDataURL().split(',').pop();");

-			if (sourceId && content)
+			if (elementId.value && content)
 			{
 				setImage(content);
 			}
-
-
 		}

 		public function setImage(base64:String):void


Flash: fix pause/play

Flash: fix pause/play

--- src/ogv.as
+++ src/ogv.as
@@ -430,6 +430,7 @@
                 paused = true;
                 if (nextProcessingTimer) {
                     clearTimeout(nextProcessingTimer);
+                    nextProcessingTimer = 0;
                 }
                 jsCallback('onpause');
             }