Transferred from the Adobe Open Source Subversion Repository

Revision: 2033
Author:   aharui@adobe.com
Date:     2008-06-10T23:54:19.474932Z

Log Message:
-----------
First cut at getting RemoteObject to work.  Modified compiler to not register classes unless nobody else has registered.  Sanitized RemoteObject messages so they can go in a bootstrap.  Added generalized marshaling method to SystemManager.

Note that the compiler change could affect modules with RemoteClasses.

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/rpc/src/mx/utils/RPCObjectUtil.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/rpc/src/mx/utils/RPCStringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/rpc/src/mx/messaging/messages/AbstractMessage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/managers/ISystemManager2.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/rpc/src/mx/utils/RPCUIDUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/events/MarshalEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as</path>

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

--- frameworks/projects/rpc/src/mx/utils/RPCUIDUtil.as
+++ frameworks/projects/rpc/src/mx/utils/RPCUIDUtil.as
@@ -0,0 +1,241 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.utils
+{
+
+import flash.utils.ByteArray;
+
+/**
+ *  The RPCUIDUtil class is a copy of UIDUtil without some functions that
+ *  cause dependency problems when RPC messages are put in a bootstrap loader.
+ */
+public class RPCUIDUtil
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Char codes for 0123456789ABCDEF
+     */
+    private static const ALPHA_CHAR_CODES:Array = [48, 49, 50, 51, 52, 53, 54,
+        55, 56, 57, 65, 66, 67, 68, 69, 70];
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Generates a UID (unique identifier) based on ActionScript's
+     *  pseudo-random number generator and the current time.
+     *
+     *
The UID has the form
+     *  "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
+     *  where X is a hexadecimal digit (0-9, A-F).

+     *
+     *
This UID will not be truly globally unique; but it is the best
+     *  we can do without player support for UID generation.

+     *
+     *  @return The newly-generated UID.
+     */
+    public static function createUID():String
+    {
+        var uid:Array = new Array(36);
+        var index:int = 0;
+
+        var i:int;
+        var j:int;
+
+        for (i = 0; i < 8; i++)
+        {
+            uid[index++] = ALPHA_CHAR_CODES[Math.floor(Math.random() *  16)];
+        }
+
+        for (i = 0; i < 3; i++)
+        {
+            uid[index++] = 45; // charCode for "-"
+
+            for (j = 0; j < 4; j++)
+            {
+                uid[index++] = ALPHA_CHAR_CODES[Math.floor(Math.random() *  16)];
+            }
+        }
+
+        uid[index++] = 45; // charCode for "-"
+
+        var time:Number = new Date().getTime();
+        // Note: time is the number of milliseconds since 1970,
+        // which is currently more than one trillion.
+        // We use the low 8 hex digits of this number in the UID.
+        // Just in case the system clock has been reset to
+        // Jan 1-4, 1970 (in which case this number could have only
+        // 1-7 hex digits), we pad on the left with 7 zeros
+        // before taking the low digits.
+        var timeString:String = ("0000000" + time.toString(16).toUpperCase()).substr(-8);
+
+        for (i = 0; i < 8; i++)
+        {
+            uid[index++] = timeString.charCodeAt(i);
+        }
+
+        for (i = 0; i < 4; i++)
+        {
+            uid[index++] = ALPHA_CHAR_CODES[Math.floor(Math.random() *  16)];
+        }
+
+        return String.fromCharCode.apply(null, uid);
+    }
+
+    /**
+     * Converts a 128-bit UID encoded as a ByteArray to a String representation.
+     * The format matches that generated by createUID. If a suitable ByteArray
+     * is not provided, null is returned.
+     *
+     * @param ba ByteArray 16 bytes in length representing a 128-bit UID.
+     *
+     * @return String representation of the UID, or null if an invalid
+     * ByteArray is provided.
+     */
+    public static function fromByteArray(ba:ByteArray):String
+    {
+        if (ba != null && ba.length >= 16 && ba.bytesAvailable >= 16)
+        {
+            var chars:Array = new Array(36);
+            var index:uint = 0;
+            for (var i:uint = 0; i < 16; i++)
+            {
+                if (i == 4 || i == 6 || i == 8 || i == 10)
+                    chars[index++] = 45; // Hyphen char code
+
+                var b:int = ba.readByte();
+                chars[index++] = ALPHA_CHAR_CODES[(b & 0xF0) >>> 4];
+                chars[index++] = ALPHA_CHAR_CODES[(b & 0x0F)];
+            }
+            return String.fromCharCode.apply(null, chars);
+        }
+
+        return null;
+    }
+
+    /**
+     * A utility method to check whether a String value represents a
+     * correctly formatted UID value. UID values are expected to be
+     * in the format generated by createUID(), implying that only
+     * capitalized A-F characters in addition to 0-9 digits are
+     * supported.
+     *
+     * @param uid The value to test whether it is formatted as a UID.
+     *
+     * @return Returns true if the value is formatted as a UID.
+     */
+    public static function isUID(uid:String):Boolean
+    {
+        if (uid != null && uid.length == 36)
+        {
+            for (var i:uint = 0; i < 36; i++)
+            {
+                var c:Number = uid.charCodeAt(i);
+
+                // Check for correctly placed hyphens
+                if (i == 8 || i == 13 || i == 18 || i == 23)
+                {
+                    if (c != 45)
+                    {
+                        return false;
+                    }
+                }
+                // We allow capital alpha-numeric hex digits only
+                else if (c < 48 || c > 70 || (c > 57 && c < 65))
+                {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Converts a UID formatted String to a ByteArray. The UID must be in the
+     * format generated by createUID, otherwise null is returned.
+     *
+     * @param String representing a 128-bit UID
+     *
+     * @return ByteArray 16 bytes in length representing the 128-bits of the
+     * UID or null if the uid could not be converted.
+     */
+    public static function toByteArray(uid:String):ByteArray
+    {
+        if (isUID(uid))
+        {
+            var result:ByteArray = new ByteArray();
+
+            for (var i:uint = 0; i < uid.length; i++)
+            {
+                var c:String = uid.charAt(i);
+                if (c == "-")
+                    continue;
+                var h1:uint = getDigit(c);
+                i++;
+                var h2:uint = getDigit(uid.charAt(i));
+                result.writeByte(((h1 << 4) | h2) & 0xFF);
+            }
+            result.position = 0;
+            return result;
+        }
+
+        return null;
+    }
+
+
+    /**
+     * Returns the decimal representation of a hex digit.
+     * @private
+     */
+    private static function getDigit(hex:String):uint
+    {
+        switch (hex)
+        {
+            case "A":
+            case "a":
+                return 10;
+            case "B":
+            case "b":
+                return 11;
+            case "C":
+            case "c":
+                return 12;
+            case "D":
+            case "d":
+                return 13;
+            case "E":
+            case "e":
+                return 14;
+            case "F":
+            case "f":
+                return 15;
+            default:
+                return new uint(hex);
+        }
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16904
Author:   smgilson@adobe.com
Date:     2010-07-13T17:25:46.841130Z

Log Message:
-----------
Add ASDoc comment about using the component as an item renderer

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -119,6 +119,12 @@
  *  enters characters into the prompt area. As the user enters characters,
  *  the drop-down area of the control opens.
  *  It then and scrolls to and highlights the closest match in the item list.

+ *
+ *
An item renderer lets you customize the display of a list-based component,
+ *  such as a List or DataGrid control.
+ *  For information about using this component in an item renderer, see
+ *
+ *  Custom Spark item renderers.

  *
  *
Note: The Spark list-based controls (the Spark ListBase class and its subclasses
  *  such as ButtonBar, ComboBox, DropDownList, List, and TabBar) do not support the BasicLayout class
@@ -587,8 +593,8 @@
             setSelectedIndex(actualProposedSelectedIndex, true);
         }

-		if (textInput)
-			textInput.selectRange(-1, -1);
+        if (textInput)
+            textInput.selectRange(-1, -1);

         userTypedIntoText = false;
     }
@@ -787,8 +793,8 @@
         else if (event.keyCode == Keyboard.ESCAPE)
         {
             // Restore the previous selectedItem
-			if (textInput)
-				textInput.text = itemToLabel(selectedItem);
+            if (textInput)
+                textInput.text = itemToLabel(selectedItem);
             changeHighlightedSelection(selectedIndex);
         }
     }
@@ -809,9 +815,9 @@
      */
     override protected function isOurFocus(target:DisplayObject):Boolean
     {
-		if (!textInput)
-			return false;
-
+        if (!textInput)
+            return false;
+
         return target == textInput.textDisplay;
     }

@@ -843,7 +849,7 @@
         if (!isDropDownOpen)
         {
             if (textInput &&
-				textInput.text != itemToLabel(selectedItem))
+                textInput.text != itemToLabel(selectedItem))
                 applySelection();
         }


Removed a left over trace statement that was used for debugging.

git-svn-id: c197267f952b24206666de142881703007ca05d5@9817 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/jivesoftware/xiff/conference/Room.as
+++ src/org/jivesoftware/xiff/conference/Room.as
@@ -630,7 +630,6 @@
 	                //trace("ROOM presence: " + presence.from + " : " + nickname);
 					for each(var presence:Presence in eventObj.data)
 					{
-						trace(presence.getNode());
 						if (presence.type == Presence.ERROR_TYPE) {
 							switch (presence.errorCode) {
 								case 401:


Do not implement ISteamWorks with the ANE's FRESteamWorks class.

Flash Builder 4.6 seems to have a bug where it doesn't resolve any
classes implementing interfaces in ANEs. Since FRESteamWorks is such
a class, having it implement ISteamWorks makes the ANE useless in
FB 4.6.

--- lib/src/com/amanitadesign/steam/FRESteamWorks.as
+++ lib/src/com/amanitadesign/steam/FRESteamWorks.as
@@ -21,7 +21,7 @@
 	import flash.utils.setInterval;
 	import flash.utils.setTimeout;

-	public class FRESteamWorks extends EventDispatcher implements ISteamWorks {
+	public class FRESteamWorks extends EventDispatcher /* implements ISteamWorks */ {
 		private var _ExtensionContext:ExtensionContext;
 		private var _tm:int;


CHANGED:fixed the end game function call;

--- src/MenuState.as
+++ src/MenuState.as
@@ -56,11 +56,11 @@
 		{
 			super();
 			//
-			var title:FlxText = new FlxText(40, 10, 300, "Adventure Game");
+			var title:FlxText = new FlxText(40, 10, FlxG.width, "Adventure Game");
 			title.size = 24;
 			add(title);
 			//
-			var startButton:FlxButton = new FlxButton(100, 100, "Start Game");
+			var startButton:FlxButton = new FlxButton(100, 100, "Start Game",startGame);
 //			startButton.label = new FlxText(20,3,100,"Start Game");
 //			startButton.loadText(new FlxText(20,3,100,"Start Game"));
 			add(startButton);


Transferred from the Adobe Open Source Subversion Repository

Revision: 18639
Author:   egeorgie@adobe.com
Date:     2010-11-17T01:20:40.860178Z

Log Message:
-----------
SkinnablePopUpContainer P-ARB changes

- Rename PopUpCloseEvent -> PopUpEvent
- Remove "disabledAndClosed", "disabledAndClosedAndLandscape" states
- Renamed SkinnablePopUpContainer's property from opened -> isOpen

Additionally:
- turn off modalTransparency and modalBlur in the mobileTheme

QE notes: SkinnablePopUpContainer is now code complete
Doc notes:
Bugs:
Reviewer: Jason & Jason
Tests run: manual, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/PopUpCloseEvent.as" copyfrom-rev="18594" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/PopUpEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/PopUpCloseEvent.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/mobilecomponents/src/spark/components/ViewMenu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuSkin.mxml</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
@@ -61,16 +61,6 @@
 [SkinState("disabledAndLandscape")]

 /**
- *  Disabled and closed and landscape state.
- *
- *
- *  @langversion 3.0
- *  @playerversion AIR 2.5
- *  @productversion Flex 4.5
- */
-[SkinState("disabledAndClosedAndLandscape")]
-
-/**
  *  The ViewMenu container defines a menu in a View container.
  *  Each menu item is defined by using the ViewMenuItem control.
  *  The application container automatically creates and displays a


Transferred from the Adobe Open Source Subversion Repository

Revision: 22006
Author:   jasonsj@adobe.com
Date:     2011-08-15T23:49:37.068379Z

Log Message:
-----------
SDK-31052 erase the CalloutSkin drop shadow when backgroundAlpha < 1
SDK-31028 New contentBackgroundAppearance style and CalloutContentBackgroundAppearance to remove content background shadow and/or color in Callout.

QE notes: ViewNavigatorCalloutSkin has been removed. Instead, set contentBackgroundAppearance=none on the Callout. It's no longer necessary to set contentBackgroundAlpha=1 on ViewNavigators inside a Callout.
Doc notes:
Bugs:
SDK-31052 Drop shadow appears beneath arrow when Callout has a backgroundAlpha less than 1
SDK-31028 Callout skinning/styling should account for arbitrary use of a ViewNavigator child
Reviewer: betravis
Tests run: checkintests, mustella-mobile
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorCalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/MobileComponentsClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as
@@ -27,10 +27,12 @@

 import spark.components.ArrowDirection;
 import spark.components.Callout;
+import spark.components.CalloutContentBackgroundAppearance;
 import spark.components.Group;
 import spark.core.SpriteVisualElement;
 import spark.effects.Fade;
 import spark.primitives.RectangularDropShadow;
+import spark.skins.mobile.supportClasses.CalloutArrow;
 import spark.skins.mobile.supportClasses.MobileSkin;
 import spark.skins.mobile160.assets.CalloutContentBackground;
 import spark.skins.mobile240.assets.CalloutContentBackground;
@@ -90,7 +92,7 @@
             case DPIClassification.DPI_320:
             {
                 backgroundCornerRadius = 16;
-                contentBackgroundClass = spark.skins.mobile320.assets.CalloutContentBackground;
+                contentBackgroundInsetClass = spark.skins.mobile320.assets.CalloutContentBackground;
                 backgroundGradientHeight = 220;
                 frameThickness = 16;
                 arrowWidth = 104;
@@ -106,7 +108,7 @@
             case DPIClassification.DPI_240:
             {
                 backgroundCornerRadius = 12;
-                contentBackgroundClass = spark.skins.mobile240.assets.CalloutContentBackground;
+                contentBackgroundInsetClass = spark.skins.mobile240.assets.CalloutContentBackground;
                 backgroundGradientHeight = 165;
                 frameThickness = 12;
                 arrowWidth = 78;
@@ -123,7 +125,7 @@
             {
                 // default DPI_160
                 backgroundCornerRadius = 8;
-                contentBackgroundClass = spark.skins.mobile160.assets.CalloutContentBackground;
+                contentBackgroundInsetClass = spark.skins.mobile160.assets.CalloutContentBackground;
                 backgroundGradientHeight = 110;
                 frameThickness = 8;
                 arrowWidth = 52;
@@ -151,16 +153,6 @@
     public var hostComponent:Callout;

     /**
-     *  Enables a mask to clip the contentGroup. The mask is a rounded-rectangle
-     *  that uses the contentCornerRadius.
-     *
-     *  @langversion 3.0
-     *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
-     */
-    protected var useContentMask:Boolean = true;
-
-    /**
      *  Enables a RectangularDropShadow behind the backgroundColor frame.
      *
      *  @langversion 3.0
@@ -200,11 +192,10 @@
      *  @playerversion AIR 3
      *  @productversion Flex 4.5.2
      */
-    protected var contentBackgroundClass:Class;
-
-    /**
-     *  Corner radius of the backgroundColor "frame". Also controls the inset
-     *  of the contentGroup.
+    protected var contentBackgroundInsetClass:Class;
+
+    /**
+     *  Corner radius of the backgroundColor "frame".
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
@@ -342,37 +333,20 @@
         addChild(backgroundFill);

         // arrow
-        var arrowComponent:Arrow = new Arrow(this);
-        arrowComponent.useBackgroundGradient = useBackgroundGradient;
-        arrowComponent.padding = backgroundCornerRadius;
-        arrowComponent.highlightWeight = highlightWeight;
-        arrowComponent.backgroundGradientHeight = backgroundGradientHeight;
-        arrowComponent.borderColor = borderColor;
-        arrowComponent.borderThickness = borderThickness;
-
-        arrow = arrowComponent;
-        arrow.id = "arrow";
-        addChild(arrow);
+        if (!arrow)
+        {
+            arrow = new CalloutArrow();
+            arrow.id = "arrow";
+            arrow.styleName = this;
+            addChild(arrow);
+        }

         // contentGroup
-        contentGroup = new Group();
-        contentGroup.id = "contentGroup";
-        addChild(contentGroup);
-
-        // contentBackgroundGraphic
-        if (contentBackgroundClass)
-        {
-            contentBackgroundGraphic = new contentBackgroundClass() as SpriteVisualElement;
-
-            if (contentBackgroundGraphic)
-                addChild(contentBackgroundGraphic);
-        }
-
-        // contentMask
-        if (useContentMask)
-        {
-            contentMask = new SpriteVisualElement();
-            contentGroup.mask = contentMask;
+        if (!contentGroup)
+        {
+            contentGroup = new Group();
+            contentGroup.id = "contentGroup";
+            addChild(contentGroup);
         }
     }

@@ -546,36 +520,73 @@
             frameHeight, frameEllipseSize, frameEllipseSize);
         bgFill.endFill();

-        // draw the contentBackgroundColor
-        // the shading and highlight are drawn in FXG
-        var contentEllipseSize:Number = contentCornerRadius * 2;
-        var contentBackgroundAlpha:Number = getStyle("contentBackgroundAlpha");
-        var contentWidth:Number = contentGroup.getLayoutBoundsWidth();
-        var contentHeight:Number = contentGroup.getLayoutBoundsHeight();
-
-        if (showBorder)
-            bgFill.lineStyle(NaN);
-
-        bgFill.beginFill(getStyle("contentBackgroundColor"),
-            contentBackgroundAlpha);
-        bgFill.drawRoundRect(contentGroup.getLayoutBoundsX(),
-            contentGroup.getLayoutBoundsY(),
-            contentWidth, contentHeight, contentEllipseSize, contentEllipseSize);
-        bgFill.endFill();
-
-        // content mask in contentGroup coordinate space
-        if (contentMask)
-        {
+        var contentBackgroundAppearance:String = getStyle("contentBackgroundAppearance");
+
+        // draw content background styles
+        if (contentBackgroundAppearance != CalloutContentBackgroundAppearance.NONE)
+        {
+            var contentEllipseSize:Number = contentCornerRadius * 2;
+            var contentBackgroundAlpha:Number = getStyle("contentBackgroundAlpha");
+            var contentWidth:Number = contentGroup.getLayoutBoundsWidth();
+            var contentHeight:Number = contentGroup.getLayoutBoundsHeight();
+
+            // all appearance values except for "none" use a mask
+            if (!contentMask)
+                contentMask = new SpriteVisualElement();
+
+            contentGroup.mask = contentMask;
+
+            // draw contentMask in contentGroup coordinate space
             var maskGraphics:Graphics = contentMask.graphics;
             maskGraphics.clear();
             maskGraphics.beginFill(0, 1);
             maskGraphics.drawRoundRect(0, 0, contentWidth, contentHeight,
                 contentEllipseSize, contentEllipseSize);
             maskGraphics.endFill();
-        }
-
-        if (contentBackgroundGraphic)
-            contentBackgroundGraphic.alpha = contentBackgroundAlpha;
+
+            // add or remove the contentBackgroundGraphic
+            if (contentBackgroundAppearance == CalloutContentBackgroundAppearance.INSET)
+            {
+                // create the contentBackgroundGraphic
+                if (contentBackgroundInsetClass && !contentBackgroundGraphic)
+                    contentBackgroundGraphic = new contentBackgroundInsetClass() as SpriteVisualElement;
+
+                if (contentBackgroundGraphic)
+                {
+                    addChild(contentBackgroundGraphic);
+                    contentBackgroundGraphic.alpha = contentBackgroundAlpha;
+                }
+            }
+
+            // reset line style to none
+            if (showBorder)
+                bgFill.lineStyle(NaN);
+
+            // draw the contentBackgroundColor
+            bgFill.beginFill(getStyle("contentBackgroundColor"),
+                contentBackgroundAlpha);
+            bgFill.drawRoundRect(contentGroup.getLayoutBoundsX(),
+                contentGroup.getLayoutBoundsY(),
+                contentWidth, contentHeight, contentEllipseSize, contentEllipseSize);
+            bgFill.endFill();
+        }
+        else // if (contentBackgroundAppearance == CalloutContentBackgroundAppearance.NONE))
+        {
+            // remove the mask
+            if (contentMask)
+            {
+                contentGroup.mask = null;
+                contentMask = null;
+            }
+        }
+
+        // if already created, remove the graphic for "flat" and "none"
+        if (contentBackgroundGraphic &&
+            (contentBackgroundAppearance != CalloutContentBackgroundAppearance.INSET))
+        {
+            removeChild(contentBackgroundGraphic);
+            contentBackgroundGraphic = null;
+        }

         // draw highlight in the callout when the arrow is hidden
         if (useBackgroundGradient && !isArrowHorizontal && !isArrowVertical)
@@ -704,258 +715,4 @@
         dispatchEvent(new FlexEvent(FlexEvent.STATE_CHANGE_COMPLETE));
     }
 }
-}
-import flash.display.GradientType;
-import flash.display.GraphicsPathCommand;
-
-import mx.core.UIComponent;
-import mx.core.mx_internal;
-import mx.utils.ColorUtil;
-
-import spark.components.ArrowDirection;
-import spark.skins.mobile.CalloutSkin;
-import spark.skins.mobile.supportClasses.MobileSkin;
-
-use namespace mx_internal;
-
-class Arrow extends UIComponent
-{
-    public function Arrow(calloutSkin:CalloutSkin)
-    {
-        super();
-
-        _calloutSkin = calloutSkin;
-    }
-
-    private var _calloutSkin:CalloutSkin;
-
-    mx_internal var padding:Number = 0;
-    mx_internal var backgroundGradientHeight:Number = 0;
-    mx_internal var highlightWeight:Number = 0;
-    mx_internal var useBackgroundGradient:Boolean = true;
-    mx_internal var borderColor:Number = 0;
-    mx_internal var borderThickness:Number = NaN;
-
-    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
-    {
-        super.updateDisplayList(unscaledWidth, unscaledHeight);
-
-        graphics.clear();
-
-        if (!_calloutSkin.isArrowHorizontal && !_calloutSkin.isArrowVertical)
-            return;
-
-        // when drawing the arrow, compensate for cornerRadius via padding
-        var arrowDirection:String = _calloutSkin.hostComponent.arrowDirection;
-        var arrowWidth:Number = unscaledWidth;
-        var arrowHeight:Number = unscaledHeight;
-        var arrowX:Number = 0;
-        var arrowY:Number = 0;
-        var arrowTipX:Number = 0;
-        var arrowTipY:Number = 0;
-        var arrowEndX:Number = 0;
-        var arrowEndY:Number = 0;
-
-        var showBorder:Boolean = !isNaN(borderThickness);
-        var borderWeight:Number = showBorder ? borderThickness : 0;
-        var borderHalf:Number = borderWeight / 2;
-
-        if (_calloutSkin.isArrowHorizontal)
-        {
-            arrowX = -borderHalf;
-            arrowY = padding;
-            arrowHeight = arrowHeight - (padding * 2);
-
-            arrowTipX = arrowWidth - borderHalf;
-            arrowTipY = arrowY + (arrowHeight / 2);
-
-            arrowEndX = arrowX;
-            arrowEndY = arrowY + arrowHeight;
-
-            // flip coordinates to point left
-            if (arrowDirection == ArrowDirection.LEFT)
-            {
-                arrowX = arrowWidth - arrowX;
-                arrowTipX = arrowWidth - arrowTipX;
-                arrowEndX = arrowWidth - arrowEndX;
-            }
-        }
-        else if (_calloutSkin.isArrowVertical)
-        {
-            arrowX = padding;
-            arrowY = -borderHalf;
-            arrowWidth = arrowWidth - (padding * 2);
-
-            arrowTipX = arrowX + (arrowWidth / 2);
-            arrowTipY = arrowHeight - borderHalf;
-
-            arrowEndX = arrowX + arrowWidth;
-            arrowEndY = arrowY;
-
-            // flip coordinates to point up
-            if (_calloutSkin.hostComponent.arrowDirection == ArrowDirection.UP)
-            {
-                arrowY = arrowHeight - arrowY;
-                arrowTipY = arrowHeight - arrowTipY;
-                arrowEndY = arrowHeight - arrowEndY;
-            }
-        }
-
-        var commands:Vector.<int> = new Vector.<int>(3, true);
-        commands[0] = GraphicsPathCommand.MOVE_TO;
-        commands[1] = GraphicsPathCommand.LINE_TO;
-        commands[2] = GraphicsPathCommand.LINE_TO;
-
-        var coords:Vector.<Number> = new Vector.<Number>(6, true);
-        coords[0] = arrowX;
-        coords[1] = arrowY;
-        coords[2] = arrowTipX
-        coords[3] = arrowTipY;
-        coords[4] = arrowEndX
-        coords[5] = arrowEndY;
-
-        var backgroundColor:Number = _calloutSkin.getStyle("backgroundColor");
-        var backgroundAlpha:Number = _calloutSkin.getStyle("backgroundAlpha");
-
-        if (useBackgroundGradient)
-        {
-            var backgroundColorTop:Number = ColorUtil.adjustBrightness2(backgroundColor,
-                CalloutSkin.BACKGROUND_GRADIENT_BRIGHTNESS_TOP);
-            var backgroundColorBottom:Number = ColorUtil.adjustBrightness2(backgroundColor,
-                CalloutSkin.BACKGROUND_GRADIENT_BRIGHTNESS_BOTTOM);
-
-            // translate the gradient based on the arrow position
-            MobileSkin.colorMatrix.createGradientBox(unscaledWidth,
-                backgroundGradientHeight, Math.PI / 2, 0, -getLayoutBoundsY());
-
-            graphics.beginGradientFill(GradientType.LINEAR,
-                [backgroundColorTop, backgroundColorBottom],
-                [backgroundAlpha, backgroundAlpha],
-                [0, 255],
-                MobileSkin.colorMatrix);
-        }
-        else
-        {
-            graphics.beginFill(backgroundColor, backgroundAlpha);
-        }
-
-        // cover the adjacent border from the callout frame
-        if (showBorder)
-        {
-            var coverX:Number = 0;
-            var coverY:Number = 0;
-            var coverWidth:Number = 0;
-            var coverHeight:Number = 0;
-
-            switch (arrowDirection)
-            {
-                case ArrowDirection.UP:
-                {
-                    coverX = arrowX;
-                    coverY = arrowY;
-                    coverWidth = arrowWidth;
-                    coverHeight = borderWeight;
-                    break;
-                }
-                case ArrowDirection.DOWN:
-                {
-                    coverX = arrowX;
-                    coverY = -borderWeight;
-                    coverWidth = arrowWidth;
-                    coverHeight = borderWeight;
-                    break;
-                }
-                case ArrowDirection.LEFT:
-                {
-                    coverX = arrowX;
-                    coverY = arrowY;
-                    coverWidth = borderWeight;
-                    coverHeight = arrowHeight;
-                    break;
-                }
-                case ArrowDirection.RIGHT:
-                {
-                    coverX = -borderWeight;
-                    coverY = arrowY;
-                    coverWidth = borderWeight;
-                    coverHeight = arrowHeight;
-                    break;
-                }
-            }
-
-            graphics.drawRect(coverX, coverY, coverWidth, coverHeight);
-        }
-
-        // draw arrow path
-        if (showBorder)
-            graphics.lineStyle(borderThickness, borderColor, 1, true);
-
-        graphics.drawPath(commands, coords);
-        graphics.endFill();
-
-        // adjust the highlight position to the origin of the callout
-        var isArrowUp:Boolean = (arrowDirection == ArrowDirection.UP);
-        var offsetY:Number = (isArrowUp) ? unscaledHeight : -getLayoutBoundsY();
-
-        // highlight starts after the backgroundCornerRadius
-        var highlightX:Number = padding - getLayoutBoundsX();
-
-        // highlight Y position is based on the stroke weight
-        var highlightOffset:Number = (highlightWeight * 1.5);
-        var highlightY:Number = highlightOffset + offsetY;
-
-        // highlight width spans the callout width minus the corner radius
-        var highlightWidth:Number = _calloutSkin.getLayoutBoundsWidth() - (padding * 2);
-
-        if (_calloutSkin.isArrowHorizontal)
-        {
-            highlightWidth -= arrowWidth;
-
-            if (arrowDirection == ArrowDirection.LEFT)
-                highlightX += arrowWidth;
-        }
-
-        // highlight on the top edge is drawn in the arrow only in the UP direction
-        if (useBackgroundGradient)
-        {
-            if (isArrowUp)
-            {
-                // highlight follows the top edge, including the arrow
-                var rightWidth:Number = highlightWidth - arrowWidth;
-
-                // highlight style
-                graphics.lineStyle(highlightWeight, 0xFFFFFF, 0.2 * backgroundAlpha);
-
-                // in the arrow coordinate space, the highlightX must be less than 0
-                if (highlightX < 0)
-                {
-                    graphics.moveTo(highlightX, highlightY);
-                    graphics.lineTo(arrowX, highlightY);
-
-                    // compute the remaining highlight
-                    rightWidth -= (arrowX - highlightX);
-                }
-
-                // arrow highlight (adjust Y downward)
-                coords[1] = arrowY + highlightOffset;
-                coords[3] = arrowTipY + highlightOffset;
-                coords[5] = arrowEndY + highlightOffset;
-                graphics.drawPath(commands, coords);
-
-                // right side
-                if (rightWidth > 0)
-                {
-                    graphics.moveTo(arrowEndX, highlightY);
-                    graphics.lineTo(arrowEndX + rightWidth, highlightY);
-                }
-            }
-            else
-            {
-                // straight line across the top
-                graphics.lineStyle(highlightWeight, 0xFFFFFF, 0.2 * backgroundAlpha);
-                graphics.moveTo(highlightX, highlightY);
-                graphics.lineTo(highlightX + highlightWidth, highlightY);
-            }
-        }
-    }
 }


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

--- frameworks/projects/mx/src/mx/effects/effectClasses/ResizeInstance.as
+++ frameworks/projects/mx/src/mx/effects/effectClasses/ResizeInstance.as
@@ -0,0 +1,889 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects.effectClasses
+{
+
+import flash.events.Event;
+import mx.containers.Panel;
+import mx.core.Application;
+import mx.core.Container;
+import mx.core.IUIComponent;
+import mx.core.ScrollPolicy;
+import mx.core.mx_internal;
+import mx.effects.EffectManager;
+import mx.events.EffectEvent;
+import mx.events.ResizeEvent;
+import mx.styles.IStyleClient;
+
+use namespace mx_internal;
+
+/**
+ *  The ResizeInstance class implements the instance class
+ *  for the Resize effect.
+ *  Flex creates an instance of this class when it plays a Resize effect;
+ *  you do not create one yourself.
+ *
+ *
Every effect class that is a subclass of the TweenEffect class
+ *  supports the following events:

+ *
+ *

+ *
tweenEnd: Dispatched when the tween effect ends.

+ *
+ *
tweenUpdate: Dispatched every time a TweenEffect
+ *      class calculates a new value.

+ *

+ *
+ *
The event object passed to the event listener for these events is of type TweenEvent.
+ *  The TweenEvent class defines the property value, which contains
+ *  the tween value calculated by the effect.
+ *  For the Resize effect,
+ *  the TweenEvent.value property contains a 2-item Array, where:

+ *

+ *
value[0]:Number  A value between the values of the Resize.widthFrom
+ *    and Resize.widthTo property.

+ *
+ *
value[1]:Number  A value between the values of the Resize.heightFrom
+ *    and Resize.heightTo property.

+ *

+ *
+ *  @see mx.effects.Resize
+ *  @see mx.events.TweenEvent
+ */
+public class ResizeInstance extends TweenEffectInstance
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function ResizeInstance(target:Object)
+	{
+		super(target);
+
+		needToLayout = true;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var restoreVisibleArray:Array;
+
+	/**
+	 *  @private
+	 */
+	private var restoreAutoLayoutArray:Array;
+
+	/**
+	 *  @private
+	 */
+	private var numHideEffectsPlaying:Number = 0;
+
+	/**
+	 *  @private
+	 */
+	private var origPercentHeight:Number;
+
+	/**
+	 *  @private
+	 */
+	private var origPercentWidth:Number;
+
+	/**
+	 *  @private
+	 */
+	private var origExplicitHeight:Number;
+
+	/**
+	 *  @private
+	 */
+	private var origExplicitWidth:Number;
+
+	/**
+	 *  @private
+	 */
+	private var heightSet:Boolean;
+
+	/**
+	 *  @private
+	 */
+	private var widthSet:Boolean;
+
+	/**
+	 *  @private
+	 */
+	private var explicitWidthSet:Boolean;
+
+	/**
+	 *  @private
+	 */
+	private var explicitHeightSet:Boolean;
+
+	/**
+	 *  @private
+	 */
+	private var origVerticalScrollPolicy:String = "";
+
+	/**
+	 *  @private
+	 */
+	private var origHorizontalScrollPolicy:String = "";
+
+	/**
+	 *  @private
+	 */
+	private var parentOrigVerticalScrollPolicy:String = "";
+
+	/**
+	 *  @private
+	 */
+	private var parentOrigHorizontalScrollPolicy:String = "";
+
+	/**
+	 *  @private
+	 *  Stores the left style of the target
+	 */
+	private var left:*;
+
+	/**
+	 *  @private
+	 *  Stores the right style of the target
+	 */
+	private var right:*;
+
+	/**
+	 *  @private
+	 *  Stores the top style of the target
+	 */
+	private var top:*;
+
+	/**
+	 *  @private
+	 *  Stores the bottom style of the target
+	 */
+	private var bottom:*;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  heightBy
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the heightBy property.
+	 */
+	private var _heightBy:Number;
+
+	/**
+	 *  Number of pixels by which to modify the height of the component.
+	 *  Values may be negative.
+	 */
+	public function get heightBy():Number
+	{
+		return _heightBy;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set heightBy(value:Number):void
+	{
+		_heightBy = value;
+		heightSet = !isNaN(value);
+	}
+
+	//----------------------------------
+	//  heightFrom
+	//----------------------------------
+
+	/**
+	 *  Initial height. If omitted, Flex uses the current size.
+	 */
+	public var heightFrom:Number;
+
+	//----------------------------------
+	//  heightTo
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the heightTo property.
+	 */
+	private var _heightTo:Number;
+
+	/**
+	 *  Final height, in pixels.
+	 */
+	public function get heightTo():Number
+	{
+		return _heightTo;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set heightTo(value:Number):void
+	{
+		_heightTo = value;
+		heightSet = !isNaN(value);
+	}
+
+	//----------------------------------
+	//  hideChildrenTargets
+	//----------------------------------
+
+	/**
+	 *  An Array of Panels.
+	 *  The children of these Panels are hidden while the Resize effect plays.
+	 */
+	public var hideChildrenTargets:Array /* of Panel */;
+
+	//----------------------------------
+	//  widthBy
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the widthBy property.
+	 */
+	private var _widthBy:Number;
+
+	/**
+	 *  Number of pixels by which to modify the width of the component.
+	 *  Values may be negative.
+	 */
+	public function get widthBy():Number
+	{
+		return _widthBy;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set widthBy(value:Number):void
+	{
+		_widthBy = value;
+		widthSet = !isNaN(value);
+	}
+
+	//----------------------------------
+	//  widthFrom
+	//----------------------------------
+
+	/**
+	 *  Initial width. If omitted, Flex uses the current size.
+	 */
+	public var widthFrom:Number;
+
+	//----------------------------------
+	//  widthTo
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the widthTo property.
+	 */
+	private var _widthTo:Number;
+
+	/**
+	 *  Final width, in pixels.
+	 */
+	public function get widthTo():Number
+	{
+		return _widthTo;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set widthTo(value:Number):void
+	{
+		_widthTo = value;
+		widthSet = !isNaN(value);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function initEffect(event:Event):void
+	{
+		super.initEffect(event);
+
+		if (event is ResizeEvent && event.type == ResizeEvent.RESIZE)
+		{
+			if (isNaN(widthBy))
+			{
+				if (isNaN(widthFrom))
+				{
+					widthFrom = ResizeEvent(event).oldWidth;
+				}
+				if (isNaN(widthTo))
+				{
+					_widthTo = target.width;
+				}
+			}
+
+			if (isNaN(heightBy))
+			{
+				if (isNaN(heightFrom))
+				{
+					heightFrom = ResizeEvent(event).oldHeight;
+				}
+
+				if (isNaN(heightTo))
+				{
+					_heightTo = target.height;
+				}
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function play():void
+	{
+		// Dispatch an effectStart event from the target.
+		super.play();
+
+		calculateExplicitDimensionChanges();
+
+		// If the target is a Panel, then find all Panel objects that will
+		// be affected by the animation.  Deliver a "resizeStart" event to
+		// each affected Panel, and then wait until the Panel finishes
+		// hiding its children.
+		var childrenHiding:Boolean = hidePanelChildren();
+
+		if (target is IStyleClient)
+		{
+			left = target.getStyle("left");
+			if (left != undefined)
+				target.setStyle("left",undefined);
+
+			right = target.getStyle("right");
+			if (right != undefined)
+				target.setStyle("right",undefined);
+
+			top = target.getStyle("top");
+			if (top != undefined)
+				target.setStyle("top",undefined);
+
+			bottom = target.getStyle("bottom");
+			if (bottom != undefined)
+				target.setStyle("bottom",undefined);
+		}
+
+		if (!childrenHiding)
+			startResizeTween();
+	}
+
+	/**
+	 *  @private
+     */
+	override public function onTweenUpdate(value:Object):void
+	{
+		EffectManager.suspendEventHandling();
+
+		// Use Math.round instead of Math.floor, so that the animation appears
+		// to begin playing after the value has changed by only half a pixel,
+		// instead of waiting for it to change by a whole pixel.
+		// Because of the way that the easing function mimics acceleration,
+		// it can take a while for the animation to get started.
+		target.width = Math.round(value[0]);
+		target.height = Math.round(value[1]);
+
+		// Set a flag indicating that LayoutManager.validateNow()
+		// should be called after we're finished processing
+		// all the effects for this frame.
+		if (tween)
+			tween.needToLayout = true;
+		needToLayout = true;
+
+		EffectManager.resumeEventHandling();
+	}
+
+	/**
+	 *  @private
+     */
+	override public function onTweenEnd(value:Object):void
+	{
+		EffectManager.endVectorEffect(IUIComponent(target));
+
+		// Wait a frame before starting to restore the childrens' visibility.
+		// That way, we have a chance to run a measurement/layout pass with
+		// the final sizes and update the screen.
+		Application.application.callLater(restorePanelChildren);
+
+		super.onTweenEnd(value);
+
+		EffectManager.suspendEventHandling();
+
+		var targetAsContainer:Container;
+		var parentAsContainer:Container;
+
+		// Restore the target's percent and explicit sizes
+		if (!heightSet)
+		{
+			target.percentHeight = origPercentHeight;
+			target.explicitHeight = origExplicitHeight;
+
+			if (origVerticalScrollPolicy != "")
+			{
+				targetAsContainer = target as Container;
+				if (targetAsContainer)
+				{
+					targetAsContainer.verticalScrollPolicy = origVerticalScrollPolicy;
+					origVerticalScrollPolicy = "";
+				}
+			}
+
+			if (parentOrigVerticalScrollPolicy != "" && target.parent)
+			{
+				parentAsContainer = target.parent as Container;
+				if (parentAsContainer)
+				{
+					parentAsContainer.verticalScrollPolicy = parentOrigVerticalScrollPolicy;
+					parentOrigVerticalScrollPolicy = "";
+				}
+			}
+		}
+
+		if (!widthSet)
+		{
+			target.percentWidth = origPercentWidth;
+			target.explicitWidth = origExplicitWidth;
+
+			if (origHorizontalScrollPolicy != "")
+			{
+				targetAsContainer = target as Container;
+				if (targetAsContainer)
+				{
+					targetAsContainer.horizontalScrollPolicy = origHorizontalScrollPolicy;
+					origHorizontalScrollPolicy = "";
+				}
+			}
+
+			if (parentOrigHorizontalScrollPolicy != "" && target.parent)
+			{
+				parentAsContainer = target.parent as Container;
+				if (parentAsContainer)
+				{
+					parentAsContainer.horizontalScrollPolicy = parentOrigHorizontalScrollPolicy;
+					parentOrigHorizontalScrollPolicy = "";
+				}
+			}
+		}
+
+		if (left != undefined)
+			target.setStyle("left",left);
+		if (right != undefined)
+			target.setStyle("right",right);
+		if (top != undefined)
+			target.setStyle("top",top);
+		if (bottom != undefined)
+			target.setStyle("bottom",bottom);
+
+		EffectManager.resumeEventHandling();
+	}
+
+	/**
+	 *  @private
+     */
+	override public function end():void
+	{
+		// If we were waiting for the initial "hide children" effect to
+		// finish playing, then the tween might not be created yet.
+		// In that case, we need to explicitly jump to the end of the Resize,
+		// because the TweenEffect.end() function won't do it for us.
+
+		if (!tween)
+		{
+			calculateExplicitDimensionChanges();
+
+			onTweenEnd(playReversed ?
+					   [ widthFrom, heightFrom ] :
+					   [ widthTo, heightTo ]);
+		}
+
+
+		super.end();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private function startResizeTween():void
+	{
+		EffectManager.startVectorEffect(IUIComponent(target));
+
+		// Create a tween to resize the object
+		tween = createTween(this, [ widthFrom, heightFrom ],
+										 [ widthTo, heightTo ], duration);
+
+		// Set back to initial size before the screen refreshes.
+		//EffectManager.suspendEventHandling();
+		applyTweenStartValues();
+		/*if (needToLayout)
+			UIComponent.layoutManager.validateNow();
+		*/
+		//EffectManager.resumeEventHandling();
+	}
+
+
+	/**
+	 *  @private
+	 *  Hides children of Panels while the effect is playing.
+	 */
+	private function hidePanelChildren():Boolean
+	{
+		if (!hideChildrenTargets)
+			return false;
+
+		// Initialize a couple arrays that will be needed later
+		restoreVisibleArray = [];
+		restoreAutoLayoutArray = [];
+
+		// Send each panel a "resizeStart" event, which will trigger
+		// the resizeStartEffect (if any)
+		var n:int = hideChildrenTargets.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var p:Object = hideChildrenTargets[i];
+
+			if (p is Panel)
+			{
+				var prevNumHideEffectsPlaying:Number = numHideEffectsPlaying;
+
+				p.addEventListener(EffectEvent.EFFECT_START, eventHandler);
+				p.dispatchEvent(new Event("resizeStart"));
+				p.removeEventListener(EffectEvent.EFFECT_START, eventHandler);
+
+				// If no effect started playing, then make children invisible
+				// immediately instead of waiting for the end of the effect
+				if (numHideEffectsPlaying == prevNumHideEffectsPlaying)
+					makePanelChildrenInvisible(Panel(p), i);
+			}
+		}
+
+		return numHideEffectsPlaying > 0;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function makePanelChildrenInvisible(panel:Container,
+												panelIndex:Number):void
+	{
+		var childArray:Array = [];
+
+		var child:IUIComponent;
+
+		// Hide the Panel's children while the Resize is occurring.
+		var n:int = panel.numChildren;
+		for (var i:int = 0; i < n; i++)
+		{
+			child = IUIComponent(panel.getChildAt(i));
+			if (child.visible)
+			{
+				childArray.push(child);
+				child.setVisible(false, true);
+			}
+		}
+
+		// Hide the Panel's scrollbars while the Resize is occurring.
+		child = panel.horizontalScrollBar;
+		if (child && child.visible)
+		{
+			childArray.push(child);
+			child.setVisible(false, true);
+		}
+		child = panel.verticalScrollBar;
+		if (child && child.visible)
+		{
+			childArray.push(child);
+			child.setVisible(false, true);
+		}
+
+		restoreVisibleArray[panelIndex] = childArray;
+
+		// Set autoLayout = false, which prevents the Panel's updateDisplayList()
+		// method from executing while the Panel is resizing.
+		if (panel.autoLayout)
+		{
+			panel.autoLayout = false;
+			restoreAutoLayoutArray[panelIndex] = true;
+		}
+	}
+
+	/**
+	 * Method is used to explicitely determine widthTo and heightTo, taking into
+	 * account the current state of the component and the inputs to this ResizeEffect
+	 *
+	 * @private
+	 */
+	private function calculateExplicitDimensionChanges():void
+	{
+		var explicitWidth:* = propertyChanges ? propertyChanges.end["explicitWidth"] : undefined;
+		var explicitHeight:* = propertyChanges ? propertyChanges.end["explicitHeight"] : undefined;
+		var percentWidth:* = propertyChanges ? propertyChanges.end["percentWidth"] : undefined;
+		var percentHeight:* = propertyChanges ? propertyChanges.end["percentHeight"] : undefined;
+
+		var targetAsContainer:Container;
+		var parentAsContainer:Container;
+
+		if (!heightSet)
+		{
+			// Determine the percentHeight/explicitHeight to apply to target when effect ends
+			if (percentHeight !== undefined)
+				origPercentHeight = percentHeight;
+			else
+				origPercentHeight = target.percentHeight;
+
+			if (isNaN(origPercentHeight))
+			{
+				if (explicitHeight !== undefined)
+					origExplicitHeight = explicitHeight;
+				else
+					origExplicitHeight = target.explicitHeight;
+			}
+
+			targetAsContainer = target as Container;
+			if (targetAsContainer && targetAsContainer.verticalScrollBar == null)
+			{
+				origVerticalScrollPolicy = targetAsContainer.verticalScrollPolicy;
+				targetAsContainer.verticalScrollPolicy = ScrollPolicy.OFF;
+			}
+
+			if (target.parent)
+			{
+				parentAsContainer = target.parent as Container;
+				if (parentAsContainer && parentAsContainer.verticalScrollBar == null)
+				{
+					parentOrigVerticalScrollPolicy = parentAsContainer.verticalScrollPolicy;
+					parentAsContainer.verticalScrollPolicy = ScrollPolicy.OFF;
+				}
+			}
+		}
+
+		if (!widthSet)
+		{
+			// Determine the percentHeight/explicitHeight to apply to target when effect ends
+			if (percentWidth !== undefined)
+				origPercentWidth = percentWidth;
+			else
+				origPercentWidth = target.percentWidth;
+
+			if (isNaN(origPercentWidth))
+			{
+				if (explicitWidth !== undefined)
+					origExplicitWidth = explicitWidth;
+				else
+					origExplicitWidth = target.explicitWidth;
+			}
+
+			targetAsContainer = target as Container;
+			if (targetAsContainer && targetAsContainer.horizontalScrollBar == null)
+			{
+				origHorizontalScrollPolicy = targetAsContainer.horizontalScrollPolicy;
+				targetAsContainer.horizontalScrollPolicy = ScrollPolicy.OFF;
+			}
+
+			if (target.parent)
+			{
+				parentAsContainer = target.parent as Container;
+				if (parentAsContainer && parentAsContainer.horizontalScrollBar == null)
+				{
+					parentOrigHorizontalScrollPolicy = parentAsContainer.horizontalScrollPolicy;
+					parentAsContainer.horizontalScrollPolicy = ScrollPolicy.OFF;
+				}
+			}
+		}
+
+		// The user may have supplied some combination of widthFrom,
+		// widthTo, and widthBy. If either widthFrom or widthTo is
+		// not explicitly defined, calculate its value based on the
+		// other two values.
+		if (isNaN(widthFrom))
+		{
+			widthFrom = (!isNaN(widthTo) && !isNaN(widthBy)) ?
+						widthTo - widthBy :
+						target.width;
+		}
+		if (isNaN(widthTo))
+		{
+			if (isNaN(widthBy) &&
+				propertyChanges &&
+				(propertyChanges.end["width"] !== undefined ||
+				 explicitWidth !== undefined ))
+			{
+				if (explicitWidth !== undefined && !isNaN(explicitWidth))
+				{
+					explicitWidthSet = true;
+					_widthTo = explicitWidth;
+				}
+				else
+				{
+					_widthTo = propertyChanges.end["width"];
+				}
+			}
+			else
+			{
+				_widthTo = (!isNaN(widthBy)) ?
+						  widthFrom + widthBy :
+						  target.width;
+			}
+		}
+
+		// Ditto for heightFrom, heightTo, and heightBy.
+		if (isNaN(heightFrom))
+		{
+			heightFrom = (!isNaN(heightTo) && !isNaN(heightBy)) ?
+						 heightTo - heightBy :
+						 target.height;
+		}
+		if (isNaN(heightTo))
+		{
+			if (isNaN(heightBy) &&
+				propertyChanges &&
+				(propertyChanges.end["height"] !== undefined ||
+				 explicitHeight !== undefined))
+			{
+				if (explicitHeight !== undefined && !isNaN(explicitHeight))
+				{
+					explicitHeightSet = true;
+					_heightTo = explicitHeight;
+				}
+				else
+				{
+					_heightTo = propertyChanges.end["height"];
+				}
+			}
+			else
+			{
+				_heightTo = (!isNaN(heightBy))?
+						   heightFrom + heightBy :
+						   target.height;
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 */
+	private function restorePanelChildren():void
+	{
+		if (hideChildrenTargets)
+		{
+			var n:int = hideChildrenTargets.length;
+			for (var i:int = 0; i < n; i++)
+			{
+				var p:IUIComponent = hideChildrenTargets[i];
+
+				var childArray:Array = restoreVisibleArray[i];
+				if (childArray)
+				{
+					var m:int = childArray.length;
+					for (var j:int = 0; j < m; j++)
+					{
+						childArray[j].setVisible(true, true);
+					}
+				}
+
+				if (restoreAutoLayoutArray[i])
+					Container(p).autoLayout = true;
+
+				// Trigger the resizeEndEffect (if any)
+				p.dispatchEvent(new Event("resizeEnd"));
+			}
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden event handlers
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  This function is called when one of the Panels finishes
+	 *  its "hide children" animation.
+	 */
+	override mx_internal function eventHandler(event:Event):void
+	{
+		var panel:Container = event.target as Container;
+
+		super.eventHandler(event);
+
+		if (event.type == EffectEvent.EFFECT_START)
+		{
+			// Call my eventHandler() method when the effect finishes playing.
+			panel.addEventListener(EffectEvent.EFFECT_END, eventHandler);
+
+			// Remember how many effects we're waiting for
+			numHideEffectsPlaying++;
+		}
+
+		else if (event.type == EffectEvent.EFFECT_END)
+		{
+			// Remove the event listener that triggered this callback.
+			panel.removeEventListener(EffectEvent.EFFECT_END, eventHandler);
+
+			// Get the array index of the panel
+			var n:int = hideChildrenTargets.length;
+			for (var i:int = 0; i < n; i++)
+			{
+				if (hideChildrenTargets[i] == panel)
+					break;
+			}
+
+			makePanelChildrenInvisible(panel, i);
+
+			// If all panels have finished their "hide children" effect,
+			// then it's time to start our Resize effect.
+			if (--numHideEffectsPlaying == 0)
+				startResizeTween();
+		}
+	}
+}
+
+}


Which means CubicBezier.draw is now implemented. Assuming everything is correct.

--- raw/src/org/yellcorp/lib/splines/CubicBezier.as
+++ raw/src/org/yellcorp/lib/splines/CubicBezier.as
@@ -1,5 +1,7 @@
 package org.yellcorp.lib.splines
 {
+import org.yellcorp.lib.splines.streams.GraphicsStream;
+
 import flash.display.Graphics;
 import flash.geom.Point;
 import flash.geom.Rectangle;
@@ -212,11 +214,9 @@
         return d1 > d2 ? d1 : d2;
     }

-/*
-    public function draw(target:Graphics):void
-    {
-        target.moveTo(p0.x, p0.y);
-        target.curveTo(p1.x, p1.y, p2.x, p2.y);
+    public function draw(target:Graphics, threshold:Number = 0.5):void
+    {
+        BezierFlatten.cubicToPolyQuad(this, threshold, new GraphicsStream(target));
     }

     public function drawHull(target:Graphics):void
@@ -224,8 +224,8 @@
         target.moveTo(p0.x, p0.y);
         target.lineTo(p1.x, p1.y);
         target.lineTo(p2.x, p2.y);
-    }
-     */
+        target.lineTo(p3.x, p3.y);
+    }

     public static function evaluate(a:Number, b:Number, c:Number, d:Number, t:Number):Number
     {


Added display for JMP instruction

Added display for JMP instruction

--- src/Values/InstructionValue.as
+++ src/Values/InstructionValue.as
@@ -24,6 +24,8 @@
 					return operation.getName()+" R" + destArg + "=R" + sourceArg + "+R" + targetArg;
 				case OpcodeValue.OP_SAV:
 					return operation.getName()+" M[R" + targetArg + "]=R" + sourceArg;
+				case OpcodeValue.OP_JMP:
+					return operation.getName()+" OVER "+ sourceArg;
 			}

 			var out:String = operation.getName() + "(" + sourceArg.toNumber();


Deleted Stage3DEvent class.

Deleted Stage3DEvent class.

--- src/engine/tetragon/view/stage3d/Stage3DEvent.as
+++ src/engine/tetragon/view/stage3d/Stage3DEvent.as
@@ -1,72 +0,0 @@
-/*
- *      _________  __      __
- *    _/        / / /____ / /________ ____ ____  ___
- *   _/        / / __/ -_) __/ __/ _ `/ _ `/ _ \/ _ \
- *  _/________/  \__/\__/\__/_/  \_,_/\_, /\___/_//_/
- *                                   /___/
- *
- * Tetragon : Game Engine for multi-platform ActionScript projects.
- * http://www.tetragonengine.com/ - Copyright (C) 2012 Sascha Balkau
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package tetragon.view.stage3d
-{
-	import flash.events.Event;
-
-
-	/**
-	 * Stage3DEvent class
-	 *
-	 * @author hexagon
-	 */
-	public class Stage3DEvent extends Event
-	{
-		// -----------------------------------------------------------------------------------------
-		// Constants
-		// -----------------------------------------------------------------------------------------
-
-		public static const CONTEXT3D_CREATED:String	= "Context3DCreated";
-		public static const CONTEXT3D_DISPOSED:String	= "Context3DDisposed";
-		public static const CONTEXT3D_RECREATED:String	= "Context3DRecreated";
-
-
-		// -----------------------------------------------------------------------------------------
-		// Constructor
-		// -----------------------------------------------------------------------------------------
-
-		/**
-		 * Creates a new instance of the class.
-		 */
-		public function Stage3DEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
-		{
-			super(type, bubbles, cancelable);
-		}
-
-
-		// -----------------------------------------------------------------------------------------
-		// Public Methods
-		// -----------------------------------------------------------------------------------------
-
-		override public function clone():Event
-		{
-			return new Stage3DEvent(type, bubbles, cancelable);
-		}
-	}
-}


removed duplicate license

removed duplicate license

--- src/eu/stefaner/elasticlists/data/AssetLoader.as
+++ src/eu/stefaner/elasticlists/data/AssetLoader.as
@@ -14,25 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.

-*/
-
- /*
-
-  Copyright 2010, Moritz Stefaner
-
-   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 eu.stefaner.elasticlists.data {
 	import br.com.stimuli.loading.BulkLoader;


Updated Draw.line() to account for transparent bitmaps.

--- net/flashpunk/utils/Draw.as
+++ net/flashpunk/utils/Draw.as
@@ -42,7 +42,7 @@
 		{
 			_target = FP.buffer;
 			_camera = FP.camera;
-			blend = null;
+			Draw.blend = null;
 		}

 		/**
@@ -55,7 +55,7 @@
 		 */
 		public static function line(x1:int, y1:int, x2:int, y2:int, color:uint = 0xFFFFFF):void
 		{
-			color &= 0xFFFFFF;
+			if (color < 0xFF000000) color = 0xFF000000 | color;

 			// get the drawing positions
 			x1 -= _camera.x;
@@ -75,17 +75,17 @@
 			{
 				if (Y == 0)
 				{
-					screen.setPixel(x1, y1, color);
+					screen.setPixel32(x1, y1, color);
 					return;
 				}
 				// draw a straight vertical line
 				yy = y2 > y1 ? 1 : -1;
 				while (y1 != y2)
 				{
-					screen.setPixel(x1, y1, color);
+					screen.setPixel32(x1, y1, color);
 					y1 += yy;
 				}
-				screen.setPixel(x2, y2, color);
+				screen.setPixel32(x2, y2, color);
 				return;
 			}

@@ -95,10 +95,10 @@
 				xx = x2 > x1 ? 1 : -1;
 				while (x1 != x2)
 				{
-					screen.setPixel(x1, y1, color);
+					screen.setPixel32(x1, y1, color);
 					x1 += xx;
 				}
-				screen.setPixel(x2, y2, color);
+				screen.setPixel32(x2, y2, color);
 				return;
 			}

@@ -113,7 +113,7 @@
 				c = .5;
 				while (x1 != x2)
 				{
-					screen.setPixel(x1, y1, color);
+					screen.setPixel32(x1, y1, color);
 					x1 += xx;
 					c += slope;
 					if (c >= 1)
@@ -122,7 +122,7 @@
 						c -= 1;
 					}
 				}
-				screen.setPixel(x2, y2, color);
+				screen.setPixel32(x2, y2, color);
 				return;
 			}
 			else
@@ -131,7 +131,7 @@
 				c = .5;
 				while (y1 != y2)
 				{
-					screen.setPixel(x1, y1, color);
+					screen.setPixel32(x1, y1, color);
 					y1 += yy;
 					c += slope;
 					if (c >= 1)
@@ -140,7 +140,7 @@
 						c -= 1;
 					}
 				}
-				screen.setPixel(x2, y2, color);
+				screen.setPixel32(x2, y2, color);
 				return;
 			}
 		}
@@ -244,6 +244,7 @@
 				_rect.width = e.width;
 				_rect.height = e.height;
 				_target.fillRect(_rect, color);
+				return;
 			}
 			_graphics.clear();
 			_graphics.beginFill(color, alpha);


Implemented transactions in actionscript.

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

--- src/as/com/threerings/presents/dobj/DObject.as
+++ src/as/com/threerings/presents/dobj/DObject.as
@@ -21,6 +21,8 @@

 package com.threerings.presents.dobj {

+import flash.errors.IllegalOperationError;
+
 import flash.events.EventDispatcher;

 import com.threerings.util.ClassUtil;
@@ -125,15 +127,24 @@
         }
     }

+    /**
+     * Posts a message event on this distrubuted object.
+     */
     public function postMessage (name :String, args :Array) :void
     {
         postEvent(new MessageEvent(_oid, name, args));
     }

+    /**
+     * Posts the specified event either to our dobject manager or to the compound event for which
+     * we are currently transacting.
+     */
     public function postEvent (event :DEvent) :void
     {
-        // TODO: transactons?
-        if (_omgr != null) {
+        if (_tevent != null) {
+            _tevent.postEvent(event);
+
+        } else if (_omgr != null) {
             _omgr.postEvent(event);

         } else {
@@ -178,32 +189,122 @@
         buf.append("oid=", _oid);
     }

+    /**
+     * Begins a transaction on this distributed object. In some situations, it is desirable to
+     * cause multiple changes to distributed object fields in one unified operation. Starting a
+     * transaction causes all subsequent field modifications to be stored in a single compound
+     * event which can then be committed, dispatching and applying all included events in a single
+     * group. Additionally, the events are dispatched over the network in a single unit which can
+     * significantly enhance network efficiency.
+     *
+     *
 When the transaction is complete, the caller must call {@link #commitTransaction} or
+     * {@link CompoundEvent#commit} to commit the transaction and release the object back to its
+     * normal non-transacting state. If the caller decides not to commit their transaction, they
+     * must call {@link #cancelTransaction} or {@link CompoundEvent#cancel} to cancel the
+     * transaction. Failure to do so will cause the pooch to be totally screwed.
+     *
+     *
 Note: like all other distributed object operations, transactions are not thread safe. It
+     * is expected that a single thread will handle all distributed object operations and that
+     * thread will begin and complete a transaction before giving up control to unknown code which
+     * might try to operate on the transacting distributed object.
+     *
+     *
 Note also: if the object is already engaged in a transaction, a transaction participant
+     * count will be incremented to note that an additional call to {@link #commitTransaction} is
+     * required before the transaction should actually be committed. Thus every call to
+     * {@link #startTransaction} must be accompanied by a call to either {@link #commitTransaction}
+     * or {@link #cancelTransaction}. Additionally, if any transaction participant cancels the
+     * transaction, the entire transaction is cancelled for all participants, regardless of whether
+     * the other participants attempted to commit the transaction.
+     */
     public function startTransaction () :void
     {
-        // TODO
-    }
-
+        if (_tevent != null) {
+            _tcount++;
+        } else {
+            _tevent = new CompoundEvent(this, _omgr);
+        }
+    }
+
+    /**
+     * Commits the transaction in which this distributed object is involved.
+     *
+     * @see CompoundEvent#commit
+     */
     public function commitTransaction () :void
     {
-        // TODO
-    }
-
+        if (_tevent == null) {
+            throw new IllegalOperationError("Cannot commit: not involved in a transaction " +
+                "[dobj=" + this + "]");
+        }
+
+        // if we are nested, we decrement our nesting count rather than committing the transaction
+        if (_tcount > 0) {
+            _tcount--;
+
+        } else {
+            // we may actually be doing our final commit after someone already cancelled this
+            // transaction, so we need to perform the appropriate action at this point
+            if (_tcancelled) {
+                _tevent.cancel();
+            } else {
+                _tevent.commit();
+            }
+        }
+    }
+
+    /**
+     * Returns true if this object is in the middle of a transaction or false if it is not.
+     */
     public function inTransaction () :Boolean
     {
-        return false; // TODO
-    }
-
+        return (_tevent != null);
+    }
+
+    /**
+     * Cancels the transaction in which this distributed object is involved.
+     *
+     * @see CompoundEvent#cancel
+     */
     public function cancelTransaction () :void
     {
-        // TODO
-    }
-
+        if (_tevent == null) {
+            throw new IllegalOperationError("Cannot cancel: not involved in a transaction " +
+                "[dobj=" + this + "]");
+        }
+
+        // if we're in a nested transaction, make a note that it is to be cancelled when all
+        // parties commit and decrement the nest count
+        if (_tcount > 0) {
+            _tcancelled = true;
+            _tcount--;
+
+        } else {
+            _tevent.cancel();
+        }
+    }
+
+    /**
+     * Removes this object from participation in any transaction in which it might be taking part.
+     */
     internal function clearTransaction () :void
     {
-        // TODO
-    }
-
-    public function isActive () :Boolean
+        // sanity check
+        if (_tcount != 0) {
+            log.warning("Transaction cleared with non-zero nesting count [dobj=" + this + "].");
+            _tcount = 0;
+        }
+
+        // clear our transaction state
+        _tevent = null;
+        _tcancelled = false;
+    }
+
+    /**
+     * Returns true if this object is active and registered with the distributed object system. If
+     * an object is created via DObjectManager.createObject it will be active until
+     * such time as it is destroyed.
+     */
+    public final function isActive () :Boolean
     {
         return (_omgr != null);
     }
@@ -310,6 +411,16 @@

     protected var _subscribers :Array;

+    /** The compound event associated with our transaction, if we're currently in a transaction. */
+    protected var _tevent :CompoundEvent;
+
+    /** The nesting depth of our current transaction. */
+    protected var _tcount :int;
+
+    /** Whether or not our nested transaction has been cancelled. */
+    protected var _tcancelled :Boolean;
+
+    /** Indicates whether we want to be destroyed when our last subscriber is removed. */
     protected var _deathWish :Boolean = false;
 }
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/LinkBarAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/LinkBarAutomationImpl.as
@@ -0,0 +1,117 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+	import flash.display.DisplayObject;
+	import flash.events.Event;
+	import flash.events.KeyboardEvent;
+
+	import mx.automation.Automation;
+	import mx.controls.LinkBar;
+	import mx.core.EventPriority;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines methods and properties required to perform instrumentation for the
+	 *  LinkBar control.
+	 *
+	 *  @see mx.controls.LinkBar
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class LinkBarAutomationImpl extends NavBarAutomationImpl
+	{
+		include "../../../core/Version.as";
+
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(LinkBar, LinkBarAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 * @param obj LinkBar object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function LinkBarAutomationImpl(obj:LinkBar)
+		{
+			super(obj);
+		}
+
+		/**
+		 *  @private
+		 *  storage for the owner component
+		 */
+		protected function get linkBar():LinkBar
+		{
+			return uiComponent as LinkBar;
+		}
+
+		/**
+		 *  @private
+		 */
+		private var preventRecording:Boolean = false;
+
+
+		/**
+		 *  @private
+		 */
+		override public function recordAutomatableEvent(event:Event,
+														cacheable:Boolean = false):void
+		{
+			if (!preventRecording)
+				super.recordAutomatableEvent(event, cacheable);
+
+			preventRecording = false;
+		}
+
+		/**
+		 *  @private
+		 */
+		override protected function keyDownHandler(event:KeyboardEvent):void
+		{
+			preventRecording = true;
+		}
+
+	}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3042
Author:   smgilson@adobe.com
Date:     2008-08-29T16:06:20.180689Z

Log Message:
-----------
Fix invalid HTML in ASDoc comments

Checkin Test Passed: Yes
QA: No
Bug:
Doc: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/Operation.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/http/Operation.as
+++ frameworks/projects/rpc/src/mx/rpc/http/Operation.as
@@ -31,9 +31,9 @@
  * send(param1, param2) method, the body is typically formed by combining the argumentNames
  * property of the operation with the parameters sent.  An Object is created which uses the
  * argumentNames[i] as the key and the corresponding parameter as the value.
- *

- * The exact way in which the HTTP operation arguments is put into the HTTP body is determined
- * by the serializationFilter used.
+ *
+ *
The exact way in which the HTTP operation arguments is put into the HTTP body is determined
+ * by the serializationFilter used.

  */
 public class Operation extends AbstractOperation
 {


git-svn-id: http://svn.igniterealtime.org/svn/repos/xiff/trunk@11665 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/im/Roster.as
+++ src/org/igniterealtime/xiff/im/Roster.as
@@ -725,6 +725,7 @@
 				{
 					item.online = false;
 				}
+				itemUpdated( item );

 				var event:RosterEvent = new RosterEvent( RosterEvent.USER_PRESENCE_UPDATED );
 				event.jid = item.jid;


asdocs added to NotificationType

asdocs added to NotificationType

--- src/ru/whitered/kote/NotificationType.as
+++ src/ru/whitered/kote/NotificationType.as
@@ -2,21 +2,39 @@
 {

 	/**
-	 * @author whitered
+	 * NotificationType is used to define a single notification type
 	 */
 	public class NotificationType
 	{
-		private var name:String;
+		private var _name:String;

+		/**
+		 * Created a notification type
+		 *
+		 * @param name Can be useful for debug
+		 */
 		public function NotificationType(name:String = null)
 		{
-			this.name = name;
+			this._name = name;
 		}

+		/**
+		 * Readable name specified on creation
+		 */
+		public function get name():String
+		{
+			return _name;
+		}
+
+
+
+		/**
+		 * @return Name specified on creation or null
+		 */
 		public function toString():String {
 			return name || "[NotificationType]";
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 21683
Author:   chiedozi@adobe.com
Date:     2011-07-21T23:18:41.186033Z

Log Message:
-----------
Initial checkin of SplitViewNavigator component and its skin.  This includes small alterations to various ViewTransition classes.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SplitViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/IVisualElementContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as
@@ -21,6 +21,7 @@
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.events.PropertyChangeEvent;
+import mx.events.ResizeEvent;
 import mx.utils.DensityUtil;

 import spark.components.SkinnableContainer;
@@ -599,9 +600,9 @@
     {
         removeEventListener(FlexEvent.CREATION_COMPLETE, creationCompleteHandler);

-        // Add weak listener so stage doesn't hold a reference to the navigator
-        systemManager.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE,
-            stage_orientationChangeHandler, false, 0, true);
+		// Create a weak listener so stage doesn't hold a reference to the view
+		FlexGlobals.topLevelApplication.addEventListener(ResizeEvent.RESIZE,
+            stage_resizeHandler, false, 0, true);
     }

 	/**
@@ -622,7 +623,7 @@
     /**
      *  @private
      */
-    mx_internal function stage_orientationChangeHandler(event:StageOrientationEvent):void
+    mx_internal function stage_resizeHandler(event:ResizeEvent):void
     {
         disableNextControlAnimation = true;
         invalidateSkinState();
@@ -637,6 +638,18 @@
     /**
      *  @private
      */
+    override protected function attachSkin():void
+    {
+        super.attachSkin();
+
+        // Since a new skin was added, update the state of the controls
+        // added as part of the new skin
+        updateControlsForView(activeView);
+    }
+
+    /**
+     *  @private
+     */
     override public function initialize():void
     {
         super.initialize();


Transferred from the Adobe Open Source Subversion Repository

Revision: 13208
Author:   chaase@adobe.com
Date:     2009-12-23T21:49:14.524642Z

Log Message:
-----------
Dealt with my FIXMEs in the code. Some went away (no longer issues), some became TODOs (still issues, but nothing that we have to solve in this release), a couple were actually resolved in this change (like the bug filed/fixed: 24848).

QE notes: 10 failures in Mustella of tests that need to be changed. They're excluded for now and QE has local fixes.
Doc notes: None
Bugs: SDK-24848
Reviewer: Jason
Tests run: checkintests, Mustella (spark/effects, mx/effects)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PropertyChanges.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.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/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as
@@ -214,7 +214,7 @@
         disposeFrom = (bitmapFrom == null);
         disposeTo = (bitmapTo == null);

-        // FIXME (chaase): Should take the 'from' snapshot on the
+        // TODO (chaase): Should take the 'from' snapshot on the
         // fly, in case the object has changed since the overall
         // effect (composite, etc) started much earlier and the
         // object has changed since propertyChanges was initialized


more reasonable framerates

more reasonable framerates

--- src/battlecode/client/viewer/MatchController.as
+++ src/battlecode/client/viewer/MatchController.as
@@ -15,6 +15,9 @@
     [Event(name="matchChange", type="battlecode.events.MatchEvent")]
     [Event(name="roundChange", type="battlecode.events.MatchEvent")]
     public class MatchController extends EventDispatcher {
+        private const NORAML_FRAMERATE:int = 15;
+        private const FAST_FRAMERATE:int = 30;
+
         private var stage:Stage;
         private var rollingFramerates:Array;
         private var lastRoundTime:Number;
@@ -55,7 +58,7 @@

         private function onApplicationComplete(e:Event):void {
             stage = Application.application.stage;
-            stage.frameRate = (fastForwarding) ? 45 : 30;
+            stage.frameRate = (fastForwarding) ? FAST_FRAMERATE : NORAML_FRAMERATE;
             stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
         }

@@ -162,7 +165,7 @@
             dispatchEvent(new Event(PropertyChangeEvent.PROPERTY_CHANGE));

             // update delay to reflect fast forward
-            stage.frameRate = (value) ? 45 : 30;
+            stage.frameRate = (value) ? FAST_FRAMERATE : NORAML_FRAMERATE;
         }

         [Bindable(event="propertyChange")]


Check for mastermind solution when fuses have been altered instead of every frame. This way we know that  is called only when something has changed.


This was checking for a condition that never actually happens, and in the process missing the common case of IQ errors. r=Gato

--- src/org/jivesoftware/xiff/core/XMPPConnection.as
+++ src/org/jivesoftware/xiff/core/XMPPConnection.as
@@ -626,7 +626,7 @@

 			// If it's an error, handle it

-			if( iq.type == IQ.ERROR_TYPE && !pendingIQs[iq.id]) {
+			if( iq.type == IQ.ERROR_TYPE) {
 				dispatchError( iq.errorCondition, iq.errorMessage, iq.errorType, iq.errorCode );
 			}
 			else {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11472
Author:   mhorn@adobe.com
Date:     2009-11-05T19:21:49.242148Z

Log Message:
-----------
ASDoc edits for l10n bug fixes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Image.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Image.as
+++ frameworks/projects/mx/src/mx/controls/Image.as
@@ -63,6 +63,11 @@
  *  You typically use the Image control for loading static graphic files and SWF files,
  *  and use the SWFLoader control for loading Flex applications. The Image control
  *  is also designed to be used in custom item renderers and item editors.

+ *
+ *
Note: Flex also includes the BitmapImage class. This class is
+ *  used for embedding images into skins and FXG components. It is not a general-purpose
+ *  image-loading class. For example, you cannot load images with the BitmapImage class at
+ *  run-time.

  *
  *
Embedded images load immediately, because they are already part of the
  *  Flex SWF file. However, they add to the size of your application and slow down


Transferred from the Adobe Open Source Subversion Repository

Revision: 6957
Author:   jimurphy@adobe.com
Date:     2009-05-15T16:11:59.737851Z

Log Message:
-----------
Merged beta1 revisions 6898,6906,6913,6915,6917,6926,6930 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/ImageHelper.java</path>
<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/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.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/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/flash-integration/FlexComponentKit.mxp</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/swf/FXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/ShapeHelper.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.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/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/GlowFilterNode.java</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/flash-integration/FlexComponentKit.mxi</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/TypeHelper.java</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -5578,7 +5578,7 @@
     {
         // If this Container has a vertical scrollbar, then handle the event
         // and prevent further bubbling
-        if (verticalScrollBar)
+        if (verticalScrollBar && !event.isDefaultPrevented())
         {
             event.stopPropagation();


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -4857,7 +4857,7 @@
         bounds.right = right;
         bounds.bottom = bottom;

-        if (mx_internal::usePadding)
+        if (usePadding)
         {
             bounds.right += getStyle("paddingRight");
             bounds.bottom += getStyle("paddingBottom");