Transferred from the Adobe Open Source Subversion Repository

Revision: 12744
Author:   smgilson@adobe.com
Date:     2009-12-09T20:33:46.610069Z

Log Message:
-----------
asdoc prep for L10N

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DesignLayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1682,7 +1682,6 @@
     //------------------------------------------------------------------------

     /**
-     *  @public
      *  A convenience accessor for the 'silent' property
      *  in this UIComponent's accessibilityProperties object.
      *
@@ -1718,7 +1717,6 @@
     }

     /**
-     *  @public
      *  A convenience accessor for the 'name' property
      *  in this UIComponent's accessibilityProperties object.
      *
@@ -1751,7 +1749,6 @@
     }

     /**
-     *  @public
      *  A convenience accessor for the 'description' property
      *  in this UIComponent's accessibilityProperties object.
      *
@@ -1784,7 +1781,6 @@
     }

     /**
-     *  @public
      *  A convenience accessor for the 'shortcut' property
      *  in this UIComponent's accessibilityProperties object.
      *
@@ -2086,7 +2082,7 @@
     mx_internal var _parent:DisplayObjectContainer;

     /**
-     *  @inheritDoc
+     *  @copy mx.core.IVisualElement#parent
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -2344,7 +2340,7 @@
     }

     /**
-     * @inheritDoc
+     *  @copy mx.core.IFlexDisplayObject#rotation
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -4147,8 +4143,8 @@
     //----------------------------------

     /**
-     *  Determines whether this UIComponent instance is a document object,
-     *  that is, whether it is at the top of the hierarchy of a Flex
+     *  Contains true if this UIComponent instance is a document object.
+     *  That means it is at the top of the hierarchy of a Flex
      *  application, MXML component, or ActionScript component.
      *
      *  @langversion 3.0
@@ -4167,26 +4163,6 @@

     [Bindable("initialize")]

-    /**
-     *  A reference to the Application object that contains this UIComponent
-     *  instance.
-     *  This Application object might exist in a SWFLoader control in another
-     *  Application, and so on, creating a chain of Application objects that
-     *  can be walked using parentApplication.
-     *  The parentApplication property of an Application is never itself;
-     *  it is either the Application into which it was loaded or null
-     *  (for the top-level Application).
-     *  Walking the application chain using the parentApplication
-     *  property is similar to walking the document chain using the
-     *  parentDocument property.
-     *  You can access the top-level application using the
-     *  application property of the Application class.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
     /*
      *  Note:
      *  There are two reasons that 'parentApplication' is typed as Object
@@ -4199,6 +4175,28 @@
      *     MyApplication(paentApplication).myAppMethod().
      *  Therefore we decided to dispense with strict typing for
      *  'parentApplication'.
+     */
+    /**
+     *  A reference to the Application object that contains this UIComponent
+     *  instance.
+     *  This Application object might exist in a SWFLoader control in another
+     *  Application, and so on, creating a chain of Application objects that
+     *  can be walked using parentApplication.
+     *
+     *
The parentApplication property of an Application is never itself;
+     *  it is either the Application into which it was loaded or null
+     *  (for the top-level Application).

+     *
+     *
Walking the application chain using the parentApplication
+     *  property is similar to walking the document chain using the
+     *  parentDocument property.
+     *  You can access the top-level application using the
+     *  application property of the Application class.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get parentApplication():Object
     {
@@ -4237,14 +4235,16 @@
      *  A reference to the parent document object for this UIComponent.
      *  A document object is a UIComponent at the top of the hierarchy
      *  of a Flex application, MXML component, or AS component.
-     *  For the Application object, the parentDocument
+     *
+     *
For the Application object, the parentDocument
      *  property is null.
      *  This property  is useful in MXML scripts to go up a level
      *  in the chain of document objects.
      *  It can be used to walk this chain using
-     *  parentDocument.parentDocument, and so on.
-     *  It is typed as Object so that authors can access properties
-     *  and methods on ancestor document objects without casting.
+     *  parentDocument.parentDocument, and so on.

+     *
+     *
It is typed as Object so that authors can access properties
+     *  and methods on ancestor document objects without casting.

      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -4682,17 +4682,18 @@
     [Inspectable(defaultValue="false")]

     /**
-     *  A flag that indicates whether child objects can receive focus
+     *  A flag that indicates whether child objects can receive focus.
      *
      *
Note: This property is similar to the tabChildren property
      *  used by Flash Player.
      *  Use the hasFocusableChildren property with Flex applications.
      *  Do not use the tabChildren property.

      *
-     *
This is usually false because most components
+     *
This property is usually false because most components
      *  either receive focus themselves or delegate focus to a single
      *  internal sub-component and appear as if the component has
-     *  received focus. For example, a TextInput contains a focusable
+     *  received focus.
+     *  For example, a TextInput control contains a focusable
      *  child RichEditableText control, but while the RichEditableText
      *  sub-component actually receives focus, it appears as if the
      *  TextInput has focus. TextInput sets hasFocusableChildren
@@ -4700,8 +4701,8 @@
      *  component that has focus. Its internal structure is an
      *  abstraction.

      *
-     *
Usually only navigator components like TabNavigator and
-     *  Accordion have this flag set to true because they
+     *
Usually only navigator components, such as TabNavigator and
+     *  Accordion, have this flag set to true because they
      *  receive focus on Tab but focus goes to components in the child
      *  containers on further Tabs.

      *
@@ -5717,7 +5718,7 @@
     private var _hasComplexLayoutMatrix:Boolean = false;

     /**
-     *  Returns true if the UIComponent has any non-translation (x,y) transform properties
+     *  Returns true if the UIComponent has any non-translation (x,y) transform properties.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -10273,7 +10274,13 @@
      *  state-specific styles apply to this component. If there is a chance
      *  of a matching CSS pseudo-selector for the current state, the style
      *  cache needs to be regenerated for this instance and, potentially all
-     *  children, if the recursive param is set to true.
+     *  children, if the recursive param is set to true.
+     *
+     *  @param oldState The name of th eold state.
+     *
+     *  @param newState The name of the new state.
+     *
+     *  @param recursive Set to true to perform a recursive check.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -12393,7 +12400,7 @@
     }

     /**
-     *  @copy mx.core.ILayoutElement#postLayoutTransformOffsets
+     *  @copy mx.core.IVisualElement#postLayoutTransformOffsets
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -12509,8 +12516,7 @@
     }

     /**
-     *  Similarly to the layoutMatrix3D property, sets the layout Matrix3D, but
-     *  doesn't trigger a layout pass.
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -12546,7 +12552,7 @@
     private static var xformPt:Point;

     /**
-     *  @copy mx.core.ILayoutElement#transformAround
+     *  @copy mx.core.ILayoutElement#transformAround()
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -13114,7 +13120,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function get is3D():Boolean
+        public function get is3D():Boolean
     {
         return _layoutFeatures ? _layoutFeatures.is3D : false;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10872
Author:   cframpto@adobe.com
Date:     2009-10-05T19:39:47.041984Z

Log Message:
-----------
Most changes already approved by PARB and a few are pending.  Given the two reviewers are at MAX and then there is a shutdown week we decided to take a chance that these changes will actually stick.

TLFText.css -> MXFTEText.css
TLFTextField -> FTETextField
UITLFTextField -> UIFTETextField
TLFDataGridItemRenderer -> FTEDataGridItemRenderer
TLFTextInput -> MXFTETextInput

UITextFormat.useTLF -> UITextFormat.useFTE

QE notes:
Doc notes:
Bugs: SDK-22909
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/TLFTextField.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/TLFDataGridItemRenderer.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</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/frameworks/projects/framework/src/mx/core/TextFieldFactory.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/TLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/CSSTextLayoutFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/TLFDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextFieldFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/TLFText.css" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/MXFTEText.css</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/TLFText.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/UITextField.as
+++ frameworks/projects/framework/src/mx/core/UITextField.as
@@ -2158,7 +2158,7 @@
         // can affect both Halo and Spark components,
         // we need to map "auto" and "on" to true
         // and "off" to false for Halo components
-        // here and in UITLFTextField.
+        // here and in UIFTETextField.
         // For Spark components, Label and CSSTextLayoutFormat,
         // do the opposite mapping of true to "on" and false to "off".
         // We also support a value of "default"


Transferred from the Adobe Open Source Subversion Repository

Revision: 4033
Author:   rfrishbe@adobe.com
Date:     2008-11-06T22:20:42.263178Z

Log Message:
-----------
Fix a bug Steve found when dealing with "justify" for horizontalAlign or verticalAlign.

Add horizontalAlign and verticalAlign to VGroup and HGroup, respectively.  Also fix some ASDoc and code comments.

Ran mustella tests for layout, group, and datagroup.

QE Notes: Continue testing these properties
Doc Notes: None
Bugs: -
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/HGroup.as
+++ frameworks/projects/spark/src/spark/components/HGroup.as
@@ -156,6 +156,26 @@
     }

     //----------------------------------
+    //  verticalAlign
+    //----------------------------------
+
+    /**
+     * @copy mx.layout.HorizontalLayout#verticalAlign
+     */
+    public function get verticalAlign():String
+    {
+        return horizontalLayout.verticalAlign;
+    }
+
+    /**
+     *  @private
+     */
+    public function set verticalAlign(value:String):void
+    {
+        horizontalLayout.verticalAlign = value;
+    }
+
+    //----------------------------------
     //  firstIndexInView
     //----------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 13145
Author:   mhorn@adobe.com
Date:     2009-12-22T16:47:14.705038Z

Log Message:
-----------
asdoc updates and bug fixes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/BaseDimensionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/ILogger.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/IBitmapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/Stroke.as</path>

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

--- frameworks/projects/framework/src/mx/geom/Transform.as
+++ frameworks/projects/framework/src/mx/geom/Transform.as
@@ -43,7 +43,7 @@
 public class Transform extends flash.geom.Transform
 {
     /**
-     *  Constructor
+     *  Constructor.
      *
      *
      *  @langversion 3.0
@@ -151,6 +151,9 @@

     // TODO (jszeto): SDK-22046 If the Player team changes the return type,
     // we will need to update
+    /**
+     *  @inheritDoc
+     */
     override public function set matrix3D(value:Matrix3D):*
     {
         if (target is ILayoutElement && value != null)
@@ -248,6 +251,9 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @inheritDoc
+     */
     override public function getRelativeMatrix3D(relativeTo:DisplayObject):Matrix3D
     {
         if (target && "$transform" in target) // UIComponent/UIMovieClip


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package mx.containers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 10960
Author:   chaase@adobe.com
Date:     2009-10-09T20:55:47.262806Z

Log Message:
-----------
Fixed performance of Wipe effect. It turns out that micro-tuning the shader code is very important, since that same inner loop runs on every pixel of the bitmap being affected. This change splits the single Wipe shader (with a direction parameter) into four separate Wipe shaders (WipeLeft, etc.), to avoid a switch on the direction parameter. Also, it avoids some setup of pixel values, only bothering to sample the pixel values after it determines which image to sample from. Little stuff, but gained about 20-25% performance on some sample wipe effects.

QE notes: This broke 3 Wipe effects tests because the old WipeEffectInstance class went away. These tests have supposedly been updated by the time this checkin is happening.
Doc notes: No
Bugs: sdk-23279
Reviewer: Corey
Tests run: checkintests, mustella spark/effects
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.pbk</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeUp.pbj</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeUp.pbk</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeDown.pbj</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeDown.pbk</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeLeft.pbj</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeLeft.pbk</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeRight.pbj</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeRight.pbk</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.pbj</path>

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

--- frameworks/projects/spark/src/spark/effects/Wipe.as
+++ frameworks/projects/spark/src/spark/effects/Wipe.as
@@ -13,7 +13,6 @@
 import flash.display.Shader;
 import flash.utils.ByteArray;
 import mx.effects.IEffectInstance;
-import spark.effects.supportClasses.WipeInstance;

 /**
  *  The Wipe effect performs a bitmap transition effect by running a
@@ -63,9 +62,18 @@
  */
 public class Wipe extends AnimateTransitionShader
 {
-    [Embed(source="Wipe.pbj", mimeType="application/octet-stream")]
-    private static var WipeShaderClass:Class;
-    private static var wipeShaderCode:ByteArray = new WipeShaderClass();
+    [Embed(source="WipeUp.pbj", mimeType="application/octet-stream")]
+    private static var WipeUpShaderClass:Class;
+    private static var wipeUpShaderCode:ByteArray = new WipeUpShaderClass();
+    [Embed(source="WipeDown.pbj", mimeType="application/octet-stream")]
+    private static var WipeDownShaderClass:Class;
+    private static var wipeDownShaderCode:ByteArray = new WipeDownShaderClass();
+    [Embed(source="WipeRight.pbj", mimeType="application/octet-stream")]
+    private static var WipeRightShaderClass:Class;
+    private static var wipeRightShaderCode:ByteArray = new WipeRightShaderClass();
+    [Embed(source="WipeLeft.pbj", mimeType="application/octet-stream")]
+    private static var WipeLeftShaderClass:Class;
+    private static var wipeLeftShaderCode:ByteArray = new WipeLeftShaderClass();

     [Inspectable(enumeration="left,right,up,down", defaultValue="right")]
@@ -101,8 +109,11 @@
     public function Wipe(target:Object=null)
     {
         super(target);
-        instanceClass = WipeInstance;
-        shaderByteCode = wipeShaderCode;
+        // Note that we do not need a separate WipeInstance; the only
+        // addition that Wipe adds is specifying the Crossfade
+        // Pixel Bender shader, which is done at instance creation time,
+        // according to the value of the direction property.
+        // Everything else needed is in the superclass already.
     }

     /**
@@ -110,10 +121,22 @@
      */
     override protected function initInstance(instance:IEffectInstance):void
     {
+        switch (direction)
+        {
+            case WipeDirection.RIGHT:
+                shaderByteCode = wipeRightShaderCode;
+                break;
+            case WipeDirection.LEFT:
+                shaderByteCode = wipeLeftShaderCode;
+                break;
+            case WipeDirection.UP:
+                shaderByteCode = wipeUpShaderCode;
+                break;
+            case WipeDirection.DOWN:
+                shaderByteCode = wipeDownShaderCode;
+                break;
+        }
         super.initInstance(instance);
-
-        var wipeInstance:WipeInstance = WipeInstance(instance);
-        wipeInstance.direction = direction;
     }

 }


暴露IFieldDescriptor.type

暴露IFieldDescriptor.type

--- as3/com/netease/protobuf/IFieldDescriptor.as
+++ as3/com/netease/protobuf/IFieldDescriptor.as
@@ -12,6 +12,8 @@
 	 * Run-time infomation for a field.
 	 */
 	public interface IFieldDescriptor {
+		function get type():Class
+
 		function get name():String

 		function get tagNumber():uint


tweak HTMLElementWrapper to use a goog.events class

--- frameworks/projects/Core/as/src/org/apache/flex/core/HTMLElementWrapper.as
+++ frameworks/projects/Core/as/src/org/apache/flex/core/HTMLElementWrapper.as
@@ -4,12 +4,9 @@
     {
         import org.apache.flex.events.BrowserEvent;
         import org.apache.flex.events.EventDispatcher;
-		import goog.events;
+        import goog.events;
+        import goog.events.EventTarget;
     }
-
-    [ExcludeClass]
-    COMPILE::AS3
-    public class HTMLElementWrapper {}

 	COMPILE::JS
 	public class HTMLElementWrapper extends EventDispatcher implements IStrand
@@ -47,8 +44,8 @@
          */
 		static public function installOverride():Boolean
 		{
-			HTMLElementWrapper.googFireListener = events.fireListener;
-			events.fireListener = HTMLElementWrapper.fireListenerOverride;
+			HTMLElementWrapper.googFireListener = goog.events.fireListener;
+			goog.events.fireListener = HTMLElementWrapper.fireListenerOverride;
 			return true;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package mx.controls.buttonBarClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6132
Author:   rfrishbe@adobe.com
Date:     2009-04-10T18:54:23.401493Z

Log Message:
-----------
Adding copyright headers to some files.  Also removing numChildren, getChildAt, getChildIndex() from the ASDocs where they dont' make sense.

QE Notes: -
Doc Notes: -
Bugs: -
Reviewer: -
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 8390
Author:   clucier@adobe.com
Date:     2009-07-06T20:30:33.799424Z

Log Message:
-----------
Promoting a TODO to a FIXME, after discussing with Gordon.  Bug opened - SDK-22098. Fixed locally, will check in a fix once QE/Lauren approves the bug.
Reviewer: N/A.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -202,7 +202,7 @@
      */
     override public function get baselinePosition():Number
     {
-        // TODO (clucier): The baselinePosition calculation in UIComponent
+        // FIXME (clucier): The baselinePosition calculation in UIComponent
         // works only for TextField-based components so we return 0 here
         // for now.
         return 0;


Transferred from the Adobe Open Source Subversion Repository

Revision: 115
Author:   rfrishbe@adobe.com
Date:     2008-01-07T23:49:42.372428Z

Log Message:
-----------
Bindable issues: Need to make some properties bindable by adding the appropriate metadata and dispatchEvent calls.  Bindable metadata needs to be copied when overriding a getter.

Bugs: SDK-13841
QA: Yes
Doc: No
Review: Gordon
Cyclone: Yes

[ private comments below ]

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/airframework/src/mx/core/Window.as
+++ frameworks/projects/airframework/src/mx/core/Window.as
@@ -515,11 +515,6 @@
      */
     private var resizeHeight:Boolean = true;

-    /**
-     *  @private
-     */
-    private var windowBoundsChanged:Boolean = true;
-
     //--------------------------------------------------------------------------
     //
     //  Overridden properties: UIComponent
@@ -529,7 +524,11 @@
    	//----------------------------------
     //  height
     //----------------------------------
-
+
+    [Bindable("heightChanged")]
+    [Inspectable(category="General")]
+    [PercentProxy("percentHeight")]
+
     /**
      *  @private
      */
@@ -555,6 +554,9 @@
         invalidateProperties();
         invalidateSize();
         invalidateViewMetricsAndPadding();
+
+	    dispatchEvent(new Event("heightChanged"));
+        // also dispatched in the resizeHandler
     }

 	//----------------------------------
@@ -566,6 +568,8 @@
 	 *  Storage for the maxHeight property.
 	 */
 	private var _maxHeight:Number = 10000;
+
+	[Bindable("maxHeightChanged")]

 	/**
 	 *  The maximum height of the Window.
@@ -583,6 +587,8 @@
 		_maxHeight = value;
 		if (height > _maxHeight)
 			height = _maxHeight;
+
+		dispatchEvent(new Event("maxHeightChanged"));
 	}

 	//----------------------------------
@@ -594,6 +600,8 @@
 	 *  Storage for the maxWidth property.
 	 */
 	private var _maxWidth:Number = 10000;
+
+	[Bindable("maxWidthChanged")]

 	/**
 	 *  The maximum width of the Window.
@@ -611,6 +619,8 @@
 		_maxWidth = value;
 	 	if (height > _maxWidth)
 	 		height = _maxWidth;
+
+	 	dispatchEvent(new Event("maxWidthChanged"));
 	}

 	 //---------------------------------
@@ -623,6 +633,8 @@
 	 */
 	private var _minHeight:Number =
 		Math.max(NativeWindow.systemMinSize.y, 100);
+
+	[Bindable("minHeightChanged")]

 	/**
 	 *  The minimum height of the Window.
@@ -640,6 +652,8 @@
 		_minHeight = value;
 		if (height < minHeight)
 			height = minHeight;
+
+		dispatchEvent(new Event("minHeightChanged"));
 	}

 	//----------------------------------
@@ -652,6 +666,8 @@
 	 */
 	private var _minWidth:Number =
 		Math.max(NativeWindow.systemMinSize.x, 100);
+
+	[Bindable("minWidthChanged")]

 	/**
 	 *  The minimum width of the Window.
@@ -669,11 +685,17 @@
 		_minWidth = value;
 		if (width < _minWidth)
 			width = _minWidth;
+
+		dispatchEvent(new Event("minWidthChanged"));
 	}

 	//----------------------------------
 	//  visible
 	//----------------------------------
+
+	[Bindable("hide")]
+    [Bindable("show")]
+    [Bindable("windowComplete")]

 	/**
 	 *  Controls the Window's visibility. Unlike the normal
@@ -705,9 +727,9 @@
 			var e:FlexEvent;
 			if (value)
 			{
+				_nativeWindow.visible = value;
 				e = new FlexEvent(FlexEvent.SHOW);
 				dispatchEvent(e);
-				_nativeWindow.visible = value;
 			}
 			else
 			{
@@ -715,12 +737,11 @@
 				if (getStyle("hideEffect"))
     			{
              		addEventListener("effectEnd", hideEffectEndHandler);
-					dispatchEvent(e);
 				}
 				else
 				{
+					_nativeWindow.visible = value;
 					dispatchEvent(e);
-					_nativeWindow.visible = value;
 				}
 			}
 		}
@@ -729,7 +750,11 @@
    	//----------------------------------
     //  width
     //----------------------------------
-
+
+    [Bindable("widthChanged")]
+    [Inspectable(category="General")]
+    [PercentProxy("percentWidth")]
+
     /**
      *  @private
      */
@@ -755,6 +780,9 @@
         invalidateProperties();
         invalidateSize();
         invalidateViewMetricsAndPadding();
+
+	    dispatchEvent(new Event("widthChanged"));
+	    // also dispatched in the resize handler
     }

     //--------------------------------------------------------------------------
@@ -2365,6 +2393,8 @@
 	private function hideEffectEndHandler(event:Event):void
 	{
 		_nativeWindow.visible = false;
+
+		dispatchEvent(new FlexEvent(FlexEvent.HIDE));
 	}

     /**
@@ -2759,16 +2789,25 @@
     {
         invalidateViewMetricsAndPadding();
         invalidateDisplayList();
+
+        var dispatchWidthChangeEvent:Boolean = (bounds.width != stage.stageWidth);
+        var dispatchHeightChangeEvent:Boolean = (bounds.height != stage.stageHeight);
+
         bounds.x = stage.x;
         bounds.y = stage.y;
         bounds.width = stage.stageWidth;
         bounds.height = stage.stageHeight;
+
         validateNow();
         var e:FlexNativeWindowBoundsEvent =
         	new FlexNativeWindowBoundsEvent(FlexNativeWindowBoundsEvent.WINDOW_RESIZE, event.bubbles, event.cancelable,
         			event.beforeBounds, event.afterBounds);
         dispatchEvent(e);
-
+
+        if (dispatchWidthChangeEvent)
+    		dispatchEvent(new Event("widthChanged"));
+    	if (dispatchHeightChangeEvent)
+    		dispatchEvent(new Event("heightChanged"));
     }

  	/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 8508
Author:   dloverin@adobe.com
Date:     2009-07-10T17:43:56.635743Z

Log Message:
-----------
Start unminimizeEffect after the window is restored.

Same changes on both Spark and Halo Window/WindowedApplication classes. Extra imports are cleaned up in the Spark WindowedApplication class.

Start the unminimize effect after the window is restored instead of when the window first starts being restored. This is about a 300ms difference on windows.

Also cleaned up a few unused imports and private functions.

QE Notes: Re-test in both Halo and Spark components. They both had the bug.
Doc Notes: none.
Bugs: SDK-22133
Reviewer: Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/airframework/src/mx/core/Window.as
+++ frameworks/projects/airframework/src/mx/core/Window.as
@@ -3125,6 +3125,13 @@

         height = stage.stageHeight;
         width = stage.stageWidth;
+
+        // Restored from a minimized state.
+        if (event.beforeDisplayState == NativeWindowDisplayState.MINIMIZED)
+        {
+            addEventListener(EffectEvent.EFFECT_END, windowUnminimizeHandler);
+            dispatchEvent(new Event("windowUnminimize"));
+        }
     }

     /**
@@ -3148,32 +3155,6 @@
             }
         }

-        // After here, afterState is normal
-        else if (event.beforeDisplayState == NativeWindowDisplayState.MINIMIZED)
-        {
-            addEventListener(EffectEvent.EFFECT_END, windowUnminimizeHandler);
-            dispatchEvent(new Event("windowUnminimize"));
-        }
-    }
-
-    /**
-     *  @private
-     */
-    private function windowMaximizeHandler(event:Event):void
-    {
-        removeEventListener(EffectEvent.EFFECT_END, windowMaximizeHandler);
-        if (!nativeWindow.closed)
-            stage.nativeWindow.maximize();
-    }
-
-    /**
-     *  @private
-     */
-    private function windowUnmaximizeHandler(event:Event):void
-    {
-        removeEventListener(EffectEvent.EFFECT_END, windowUnmaximizeHandler);
-        if (!nativeWindow.closed)
-            stage.nativeWindow.restore();
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 18192
Author:   hmuller@adobe.com
Date:     2010-10-18T16:02:55.786560Z

Log Message:
-----------
Support for explicit GridLayers in Grid, DataGridSkin.

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

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

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -16,6 +16,7 @@
 import flash.events.MouseEvent;
 import flash.geom.Point;
 import flash.geom.Rectangle;
+import flash.utils.Dictionary;

 import mx.collections.ArrayList;
 import mx.collections.IList;
@@ -237,14 +238,6 @@
      */
     private var generatedColumns:Boolean = false;

-    // TODO(hmuller): the following public variables are temporary
-
-    public var backgroundLayer:GridLayer;
-    public var selectionLayer:GridLayer;
-    public var rendererLayer:GridLayer;
-    public var overlayLayer:GridLayer;
-    public var editorIndicatorLayer:GridLayer;
-
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -263,15 +256,6 @@
     {
         super();
         layout = new GridLayout();
-
-        backgroundLayer = new GridLayer();
-        selectionLayer = new GridLayer();
-        rendererLayer = new GridLayer(this);
-        overlayLayer = new GridLayer();
-        editorIndicatorLayer = new GridLayer();
-
-        for each (var layer:GridLayer in [backgroundLayer, selectionLayer, editorIndicatorLayer, overlayLayer])
-            addElement(layer.root);

         MouseEventUtil.addDownDragUpListeners(this,
             grid_mouseDownDragUpHandler,
@@ -1098,6 +1082,77 @@
     }

     //----------------------------------
+    //  layers
+    //----------------------------------
+
+    private var _layers:Vector.<GridLayer> = null;
+    private var layersMap:Dictionary = new Dictionary();
+
+    [Bindable("layersChanged")]
+
+    /**
+     *  The GridLayer objects that define the stacking order or "layering" for Grid visual elements.
+     *
+     *
The GridLayout adds rowBackround and hoverIndicator elements to the backgroundLayer,
+     *  selectionIndicators to the selectionLayer, item renderers to the rendererLayer, caretIndicator,
+     *  row and column separators to the overlayLayer.

+     *
+     *
If a value for this property isn't specified, then at commitProperties() time
+     *  a Vector of the four minimum GridLayers expected by the Grid's layout is created.  The layers
+     *  have the following ids: "backgroundLayer", "selectionLayer", "rendererLayer", "overlayLayer".
+     *  The rendererLayer's root is this Grid.

+     *
+     *  @default Four layers with the following ids: "backgroundLayer", "selectionLayer", "rendererLayer", "overlayLayer".
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.5
+     */
+    public function get layers():Vector.<GridLayer>
+    {
+        return (_layers) ? _layers.concat() : new Vector.<GridLayer>(0);
+    }
+
+    /**
+     *  @private
+     */
+    public function set layers(value:Vector.<GridLayer>):void
+    {
+        _layers = (!value) ? new Vector.<GridLayer>(0) : value.concat();
+
+        layersMap = new Dictionary();
+        for each (var layer:GridLayer in _layers)
+        {
+            var layerID:String = layer.id;
+            if (layerID)
+                layersMap[layerID] = layer;
+
+            if (layer.root != this)
+                addElement(layer.root)
+        }
+
+        dispatchChangeEvent("layersChanged");
+    }
+
+    /**
+     *  Returns the GridLayer element of the layers property with the specified id, or null.
+     *
+     *
Grid's layout uses this method to lookup GridLayers.

+     *
+     *  @param id The id of the GridLayer to be returned.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.5
+     */
+    public function getLayer(id:String):GridLayer
+    {
+        return layersMap[id] as GridLayer;
+    }
+
+    //----------------------------------
     //  preserveSelection (delegates to gridSelection.preserveSelection)
     //----------------------------------

@@ -2017,7 +2072,7 @@

     /**
      *  If true then a dataTip is displayed for all visible cells.  If false (the default),
-     *  then a dataTip is only displayed if the column's showDataTip property is true.
+     *  then a dataTip is only displayed if the column's showDataTips property is true.
      *
      *  @default false
      *
@@ -3070,12 +3125,34 @@
         if (!inUpdateDisplayList)
             super.invalidateDisplayList();
     }
+
+    /**
+     *  Used to create a default value for the layers property in commitProperties below.
+     */
+    private function createLayer(id:String):GridLayer
+    {
+        const layer:GridLayer = new GridLayer();
+        layer.id = id;
+        if (id == "rendererLayer")
+            layer.root = this;
+        return layer;
+    }

     /**
      *  @private
      */
     override protected function commitProperties():void
     {
+        // Create a default layers vector if necessary
+        if (_layers == null)
+        {
+            layers = new <GridLayer> [
+                createLayer("backgroundLayer"),
+                createLayer("selectionLayer"),
+                createLayer("rendererLayer"),
+                createLayer("overlayLayer")]
+        }
+
         // rowHeight and variableRowHeight can be set in either order
         if (variableRowHeightChanged || rowHeightChanged)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12370
Author:   smgilson@adobe.com
Date:     2009-12-02T16:48:37.124467Z

Log Message:
-----------
Fix for doc bug FLEXDOCS-1150

Added a few new examples and default sizes to Spark components

QE notes: -
Doc notes: -
Bugs: -
Reviewer: -
Tests run: - FLEXDOCS-1150
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/SkinnableContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/VScrollBarExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/BorderContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/HScrollBarExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TileGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/MyBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/SkinnableDataContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/components/examples/ApplicationContainerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -213,6 +213,15 @@
  *  when the full width of the list items is unlikely to fit.
  *  The user can select one or more items from the list, depending
  *  on the value of the allowMultipleSelection property.
+ *
+ *
The List control has the following default characteristics:

+ *

+ *
Characteristic	Description

+ *
Default size	112 pixels wide by 112 pixels high

+ *
Minimum size	112 pixels wide by 112 pixels high

+ *
Maximum size	10000 pixels wide and 10000 pixels high

+ *
Default skin class	spark.skins.spark.BorderContainerSkin

+ *

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3509
Author:   jimurphy@adobe.com
Date:     2008-10-07T18:19:17.646255Z

Log Message:
-----------
Rename of flex -> mx.

For compatibility reasons it was decided that the new functionality remain integrated with the old framework, although we will continue to build two separate SWCs, one with primarily existing framework classes, and one with new Flex 4 classes. This change removes duplicate names from the Flex 4 framework to avoid class name overlapping with the old framework code.  The naming overlap consists of two major areas:  New Components, and New Effects

Modified Paths:
--------------
386 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/Animate.as
+++ frameworks/projects/spark/src/spark/effects/Animate.as
@@ -8,13 +8,13 @@
 //  in accordance with the terms of the license agreement accompanying it.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package flex.effects
+package mx.effects
 {

-import flex.effects.easing.IEaser;
-import flex.effects.easing.Sine;
-import flex.effects.effectClasses.AnimateInstance;
-import flex.events.AnimationEvent;
+import mx.effects.easing.IEaser;
+import mx.effects.easing.Sine;
+import mx.effects.effectClasses.FxAnimateInstance;
+import mx.events.AnimationEvent;

 import mx.core.mx_internal;
 import mx.effects.Effect;
@@ -35,16 +35,16 @@
  *
The Effect.effectStart event is dispatched
  * before the animationStart event.

  *
- * @eventType flex.events.AnimationEvent.ANIMATION_START
- */
-[Event(name="animationStart", type="flex.events.AnimationEvent")]
+ * @eventType mx.events.AnimationEvent.ANIMATION_START
+ */
+[Event(name="animationStart", type="mx.events.AnimationEvent")]

 /**
  * Dispatched every time the effect updates the target.
  * This event corresponds to a call to
  * the AnimateInstance.updateHandler() method.
  *
- * @eventType flex.events.AnimationEvent.ANIMATION_UPDATE
+ * @eventType mx.events.AnimationEvent.ANIMATION_UPDATE
  */
 [Event(name="animationUpdate", type="mx.events.AnimationEvent")]

@@ -56,9 +56,9 @@
  * Flex also dispatches an animationUpdate event
  * for the effect at the same time.
  *
- * @eventType flex.events.AnimationEvent.ANIMATION_END
- */
-[Event(name="animationRepeat", type="flex.events.AnimationEvent")]
+ * @eventType mx.events.AnimationEvent.ANIMATION_END
+ */
+[Event(name="animationRepeat", type="mx.events.AnimationEvent")]

 /**
  * Dispatched when the effect ends.
@@ -71,9 +71,9 @@
  * A repeating effect dispatches this event only after the
  * final repetition.

  *
- * @eventType flex.events.AnimationEvent.ANIMATION_END
- */
-[Event(name="animationEnd", type="flex.events.AnimationEvent")]
+ * @eventType mx.events.AnimationEvent.ANIMATION_END
+ */
+[Event(name="animationEnd", type="mx.events.AnimationEvent")]

 /**
  * This effect animates an arbitrary set of properties between values, as specified
@@ -90,7 +90,7 @@
  * anim.play();
  * </listing>
  */
-public class Animate extends Effect
+public class FxAnimate extends Effect
 {
     include "../core/Version.as";

@@ -103,11 +103,11 @@
     /**
      * Constructor.
      */
-    public function Animate(target:Object = null)
+    public function FxAnimate(target:Object = null)
     {
         super(target);

-        instanceClass = AnimateInstance;
+        instanceClass = FxAnimateInstance;

         mx_internal::applyTransitionEndProperties = true;
     }
@@ -148,8 +148,8 @@
      * the animation into an eased fraction, which will then be used to
      * calculate the value at that eased elapsed fraction.
      *
-     * @default flex.effects.easing.Sine(.5)
-     * @see flex.effects.easing.Sine
+     * @default mx.effects.easing.Sine(.5)
+     * @see mx.effects.easing.Sine
      */
     public var easer:IEaser = defaultEaser;

@@ -161,7 +161,7 @@
      * where the animation will reverse direction each iteration.
      *
      * @default Animation.LOOP
-     * @see flex.effects.Animation#repeatBehavior
+     * @see mx.effects.Animation#repeatBehavior
      */
     public var repeatBehavior:String = Animation.LOOP;

@@ -205,7 +205,7 @@
     {
         super.initInstance(instance);

-        var animateInstance:AnimateInstance = AnimateInstance(instance);
+        var animateInstance:FxAnimateInstance = FxAnimateInstance(instance);

         animateInstance.addEventListener(AnimationEvent.ANIMATION_START, animationEventHandler);
         animateInstance.addEventListener(AnimationEvent.ANIMATION_UPDATE, animationEventHandler);


Transferred from the Adobe Open Source Subversion Repository

Revision: 18480
Author:   egeorgie@adobe.com
Date:     2010-11-07T04:57:01.323333Z

Log Message:
-----------
Various Resizing Bugs: Ellipse, Path, Rounded Rect

In this change:

- new iterative algorithm for fitting transformed Path, Ellipse, Rounded Rect
- tweaked iterative algorithm for fitting non-transformed Path with miter limit
- fixes to calculating the bounding box of a rounded rect when radiusX != radiusY
- fix to MatrixUtil.fitBounds to take explicits into account in the case where both dimensions are specified
- fix to MatrixUtil to properly return null when no solution exists for 45 degree rotated elements when trying to fit in both dimensions
- fix to MatrixUtil to take explicit settings into account when relaxing constraints while trying to fit an element in both dimensions
- added min/max properties to SpriteVisualElement
- fix GraphicElement to avoid extra layout pass when dealing with transformations (looks like extra invalidation was added with the mirroring infrastrucutre)

QE notes: Maybe add a couple of tests for rotated ellipse, rotated path, rotated round rect, non-rotated path with stroke and miter limit joints
Doc notes:
Bugs: SDK-17269, SDK-26762, SDK-27321, SDK-27516, SDK-27589, SDK-28389
Reviewer: Kevin
Tests run: full mustella cyclone
Is noteworthy for integration: Yes, Yes, Yyyyyyyeeeeeeeeeeeees sir!!

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Rect.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Rect.as
+++ frameworks/projects/spark/src/spark/primitives/Rect.as
@@ -589,6 +589,137 @@

         return stroke + this.y;
     }
+
+    /**
+     *  @private
+     */
+    override public function setLayoutBoundsSize(width:Number,
+                                                 height:Number,
+                                                 postLayoutTransform:Boolean = true):void
+    {
+        super.setLayoutBoundsSize(width, height, postLayoutTransform);
+
+        var isRounded:Boolean = !isNaN(topLeftRadiusX) ||
+                                !isNaN(topRightRadiusX) ||
+                                !isNaN(bottomLeftRadiusX) ||
+                                !isNaN(bottomRightRadiusX) ||
+                                radiusX != 0 ||
+                                radiusY != 0;
+        if (!isRounded)
+            return;
+
+        var m:Matrix = getComplexMatrix(postLayoutTransform);
+        if (!m)
+            return;
+
+        setLayoutBoundsTransformed(width, height, m);
+    }
+
+    /**
+     *  @private
+     */
+    private function setLayoutBoundsTransformed(width:Number, height:Number, m:Matrix):void
+    {
+        var strokeExtents:Rectangle = getStrokeExtents(true);
+        width -= strokeExtents.width;
+        height -= strokeExtents.height;
+
+        var size:Point = fitLayoutBoundsIterative(width, height, m);
+
+        // We couldn't find a solution, try to relax the constraints
+        if (!size && !isNaN(width) && !isNaN(height))
+        {
+            // Try without width constraint
+            var size1:Point = fitLayoutBoundsIterative(NaN, height, m);
+
+            // Try without height constraint
+            var size2:Point = fitLayoutBoundsIterative(width, NaN, m);
+
+            // Ignore solutions that will exceeed the requested size
+            if (size1 && getRoundRectBoundingBox(size1.x, size1.y, this, m).width > width)
+                size1 = null;
+            if (size2 && getRoundRectBoundingBox(size2.x, size2.y, this, m).height > height)
+                size2 = null;
+
+            // Which size was better?
+            if (size1 && size2)
+            {
+                var pickSize1:Boolean = size1.x * size1.y > size2.x * size2.y;
+
+                if (pickSize1)
+                    size = size1;
+                else
+                    size = size2;
+            }
+            else if (size1)
+            {
+                size = size1;
+            }
+            else
+            {
+                size = size2;
+            }
+        }
+
+        if (size)
+            setActualSize(size.x, size.y);
+        else
+            setActualSize(minWidth, minHeight);
+    }
+
+    /**
+     *  Iteratively approach a solution. Returns 0 if no exact solution exists.
+     *  NaN values for width/height mean "not constrained" in that dimesion.
+     *
+     *  @private
+     */
+    private function fitLayoutBoundsIterative(width:Number, height:Number, m:Matrix):Point
+    {
+        var newWidth:Number = this.preferredWidthPreTransform();
+        var newHeight:Number = this.preferredHeightPreTransform();
+        var fitWidth:Number = MatrixUtil.transformBounds(newWidth, newHeight, m).x;
+        var fitHeight:Number = MatrixUtil.transformBounds(newWidth, newHeight, m).y;
+
+        if (isNaN(width))
+            fitWidth = NaN;
+        if (isNaN(height))
+            fitHeight = NaN;
+
+        var i:int = 0;
+        while (i++ < 150)
+        {
+            var roundedRectBounds:Rectangle = getRoundRectBoundingBox(newWidth, newHeight, this, m);
+
+            var widthDifference:Number = isNaN(width) ? 0 : width - roundedRectBounds.width;
+            var heightDifference:Number = isNaN(height) ? 0 : height - roundedRectBounds.height;
+
+            if (Math.abs(widthDifference) < 0.1 && Math.abs(heightDifference) < 0.1)
+            {
+                return new Point(newWidth, newHeight);
+            }
+
+            fitWidth += widthDifference * 0.5;
+            fitHeight += heightDifference * 0.5;
+
+            var newSize:Point = MatrixUtil.fitBounds(fitWidth,
+                                                     fitHeight,
+                                                     m,
+                                                     explicitWidth,
+                                                     explicitHeight,
+                                                     preferredWidthPreTransform(),
+                                                     preferredHeightPreTransform(),
+                                                     minWidth, minHeight,
+                                                     maxWidth, maxHeight);
+            if (!newSize)
+                break;
+
+            newWidth = newSize.x;
+            newHeight = newSize.y;
+        }
+
+        return null;
+    }
+

     /**
      *  @private
@@ -617,25 +748,25 @@
         var boundingBox:Rectangle;
         var rX:Number;
         var rY:Number;
-
+
         // top-left corner ellipse
         rX = radiusValue(radiusX, r.topLeftRadiusX, maxRadiusX);
-        rY = radiusValue(rX, r.topLeftRadiusY, maxRadiusY);
+        rY = radiusValue(radiusY, r.topLeftRadiusY, maxRadiusY);
         boundingBox = MatrixUtil.getEllipseBoundingBox(rX, rY, rX, rY, m, boundingBox);

         // top-right corner ellipse
         rX = radiusValue(radiusX, r.topRightRadiusX, maxRadiusX);
-        rY = radiusValue(rX, r.topRightRadiusY, maxRadiusY);
+        rY = radiusValue(radiusY, r.topRightRadiusY, maxRadiusY);
         boundingBox = MatrixUtil.getEllipseBoundingBox(width - rX, rY, rX, rY, m, boundingBox);

         // bottom-right corner ellipse
         rX = radiusValue(radiusX, r.bottomRightRadiusX, maxRadiusX);
-        rY = radiusValue(rX, r.bottomRightRadiusY, maxRadiusY);
+        rY = radiusValue(radiusY, r.bottomRightRadiusY, maxRadiusY);
         boundingBox = MatrixUtil.getEllipseBoundingBox(width - rX, height - rY, rX, rY, m, boundingBox);

         // bottom-left corner ellipse
         rX = radiusValue(radiusX, r.bottomLeftRadiusX, maxRadiusX);
-        rY = radiusValue(rX, r.bottomLeftRadiusY, maxRadiusY);
+        rY = radiusValue(radiusY, r.bottomLeftRadiusY, maxRadiusY);
         boundingBox = MatrixUtil.getEllipseBoundingBox(rX, height - rY, rX, rY, m, boundingBox);

         return boundingBox;


Match the related nenya change to MisoScenePanel

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@936 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/stage/client/StageScenePanel.as
+++ src/as/com/threerings/stage/client/StageScenePanel.as
@@ -68,7 +68,7 @@
         // TODO
     }

-    protected override function getColorizer (oinfo :ObjectInfo) :Colorizer
+    override public function getColorizer (oinfo :ObjectInfo) :Colorizer
     {
         return _rizer.getColorizer(oinfo);
     }


Widening.

Widening.

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@353 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/whirled/client/SceneDirector.as
+++ src/as/com/threerings/whirled/client/SceneDirector.as
@@ -49,20 +49,17 @@
 import com.threerings.whirled.data.SceneUpdate;

 /**
- * The scene director is the client's interface to all things scene
- * related. It interfaces with the scene repository to ensure that scene
- * objects are available when the client enters a particular scene. It
- * handles moving from scene to scene (it coordinates with the {@link
- * LocationDirector} in order to do this).
+ * The scene director is the client's interface to all things scene related. It interfaces with the
+ * scene repository to ensure that scene objects are available when the client enters a particular
+ * scene. It handles moving from scene to scene (it coordinates with the {@link LocationDirector}
+ * in order to do this).
  *
- *
 Note that when the scene director is in use instead of the location
- * director, scene ids instead of place oids will be supplied to {@link
- * LocationObserver#locationMayChange} and {@link
+ *
 Note that when the scene director is in use instead of the location director, scene ids
+ * instead of place oids will be supplied to {@link LocationObserver#locationMayChange} and {@link
  * LocationObserver#locationChangeFailed}.
  */
 public class SceneDirector extends BasicDirector
-    implements LocationDirector_FailureHandler,
-               SceneReceiver, SceneService_SceneMoveListener
+    implements LocationDirector_FailureHandler, SceneReceiver, SceneService_SceneMoveListener
 {
     private static const log :Log = Log.getLog(SceneDirector);

@@ -70,19 +67,16 @@
      * Creates a new scene director with the specified context.
      *
      * @param ctx the active client context.
-     * @param locdir the location director in use on the client, with
-     * which the scene director will coordinate when changing location.
-     * @param screp the entity from which the scene director will load
-     * scene data from the local client scene storage. This may be null
-     * when the SceneDirector is constructed, but it should be
-     * supplied via {@link #setSceneRepository} prior to really using
-     * this director.
-     * @param fact the factory that knows which derivation of {@link
-     * Scene} to create for the current system.
-     */
-    public function SceneDirector (
-            ctx :WhirledContext, locdir :LocationDirector,
-            screp :SceneRepository, fact :SceneFactory)
+     * @param locdir the location director in use on the client, with which the scene director will
+     * coordinate when changing location.
+     * @param screp the entity from which the scene director will load scene data from the local
+     * client scene storage. This may be null when the SceneDirector is constructed, but it should
+     * be supplied via {@link #setSceneRepository} prior to really using this director.
+     * @param fact the factory that knows which derivation of {@link Scene} to create for the
+     * current system.
+     */
+    public function SceneDirector (ctx :WhirledContext, locdir :LocationDirector,
+                                   screp :SceneRepository, fact :SceneFactory)
     {
         super(ctx);

@@ -92,13 +86,12 @@
         setSceneRepository(screp);
         _fact = fact;

-        // set ourselves up as a failure handler with the location
-        // director because we need to do special processing
+        // set ourselves up as a failure handler with the location director because we need to do
+        // special processing
         _locdir.setFailureHandler(this);

         // register for scene notifications
-        _wctx.getClient().getInvocationDirector().registerReceiver(
-            new SceneDecoder(this));
+        _wctx.getClient().getInvocationDirector().registerReceiver(new SceneDecoder(this));
     }

     /**
@@ -111,8 +104,8 @@
     }

     /**
-     * Returns the display scene object associated with the scene we
-     * currently occupy or null if we currently occupy no scene.
+     * Returns the display scene object associated with the scene we currently occupy or null if we
+     * currently occupy no scene.
      */
     public function getScene () :Scene
     {
@@ -120,13 +113,11 @@
     }

     /**
-     * Requests that this client move the specified scene. A request will
-     * be made and when the response is received, the location observers
-     * will be notified of success or failure.
+     * Requests that this client move the specified scene. A request will be made and when the
+     * response is received, the location observers will be notified of success or failure.
      *
-     * @return true if the move to request was issued, false if it was
-     * rejected by a location observer or because we have another request
-     * outstanding.
+     * @return true if the move to request was issued, false if it was rejected by a location
+     * observer or because we have another request outstanding.
      */
     public function moveTo (sceneId :int) :Boolean
     {
@@ -138,8 +129,7 @@

         // sanity-check the destination scene id
         if (sceneId == _sceneId) {
-            log.warning("Refusing request to move to the same scene " +
-                        "[sceneId=" + sceneId + "].");
+            log.warning("Refusing request to move to the same scene [sceneId=" + sceneId + "].");
             return false;
         }

@@ -148,9 +138,8 @@
             return false;
         }

-        // check the version of our cached copy of the scene to which
-        // we're requesting to move; if we were unable to load it, assume
-        // a cached version of zero
+        // check the version of our cached copy of the scene to which we're requesting to move; if
+        // we were unable to load it, assume a cached version of zero
         var sceneVers :int = 0;
         if (_pendingModel != null) {
             sceneVers = _pendingModel.version;
@@ -163,41 +152,36 @@
     }

     /**
-     * Prepares to move to the requested scene. The location observers are
-     * asked to ratify the move and our pending scene mode is loaded from
-     * the scene repository. This can be called by cooperating directors
-     * that need to coopt the moveTo process.
+     * Prepares to move to the requested scene. The location observers are asked to ratify the move
+     * and our pending scene mode is loaded from the scene repository. This can be called by
+     * cooperating directors that need to coopt the moveTo process.
      */
     public function prepareMoveTo (sceneId :int, rl :ResultListener) :Boolean
     {
-        // first check to see if our observers are happy with this move
-        // request
+        // first check to see if our observers are happy with this move request
         if (!_locdir.mayMoveTo(sceneId, rl)) {
             return false;
         }

-        // we need to call this both to mark that we're issuing a move
-        // request and to check to see if the last issued request should
-        // be considered stale
+        // we need to call this both to mark that we're issuing a move request and to check to see
+        // if the last issued request should be considered stale
         var refuse :Boolean = _locdir.checkRepeatMove();

         // complain if we're over-writing a pending request
         if (_pendingSceneId != -1) {
             if (refuse) {
                 log.warning("Refusing moveTo; We have a request outstanding " +
-                            "[psid=" + _pendingSceneId +
-                            ", nsid=" + sceneId + "].");
+                            "[psid=" + _pendingSceneId + ", nsid=" + sceneId + "].");
                 return false;

             } else {
-                log.warning("Overriding stale moveTo request " +
-                            "[psid=" + _pendingSceneId +
+                log.warning("Overriding stale moveTo request [psid=" + _pendingSceneId +
                             ", nsid=" + sceneId + "].");
             }
         }

-        // load up the pending scene so that we can communicate it's most
-        // recent version to the server
+        // load up the pending scene so that we can communicate it's most recent version to the
+        // server
         _pendingModel = loadSceneModel(sceneId);

         // make a note of our pending scene id
@@ -208,11 +192,9 @@
     }

     /**
-     * Returns the model loaded in preparation for a scene
-     * transition. This is made available only for cooperating directors
-     * which may need to coopt the scene transition process. The pending
-     * model is only valid immediately following a call to {@link
-     * #prepareMoveTo}.
+     * Returns the model loaded in preparation for a scene transition. This is made available only
+     * for cooperating directors which may need to coopt the scene transition process. The pending
+     * model is only valid immediately following a call to {@link #prepareMoveTo}.
      */
     public function getPendingModel () :SceneModel
     {
@@ -222,13 +204,12 @@
     // documentation inherited from interface SceneService_SceneMoveListener
     public function moveSucceeded (placeId :int, config :PlaceConfig) :void
     {
-        // our move request was successful, deal with subscribing to our
-        // new place object
+        // our move request was successful, deal with subscribing to our new place object
         _locdir.didMoveTo(placeId, config);

-        // since we're committed to moving to the new scene, we'll
-        // parallelize and go ahead and load up the new scene now rather
-        // than wait until subscription to our place object succeeds
+        // since we're committed to moving to the new scene, we'll parallelize and go ahead and
+        // load up the new scene now rather than wait until subscription to our place object
+        // succeeds

         // keep track of our previous scene info
         _previousSceneId = _sceneId;
@@ -245,19 +226,17 @@

         // complain if we didn't find a scene
         if (_model == null) {
-            log.warning("Aiya! Unable to load scene [sid=" + _sceneId +
-                        ", plid=" + placeId + "].");
+            log.warning("Aiya! Unable to load scene [sid=" + _sceneId + ", plid=" + placeId + "].");
             return;
         }

-        // and finally create a display scene instance with the model and
-        // the place config
+        // and finally create a display scene instance with the model and the place config
         _scene = _fact.createScene(_model, config);
     }

     // documentation inherited from interface SceneService_SceneMoveListener
     public function moveSucceededWithUpdates (
-            placeId :int, config :PlaceConfig, updates :Array) :void
+        placeId :int, config :PlaceConfig, updates :Array) :void
     {
         log.info("Got updates [placeId=" + placeId + ", config=" + config +
                  ", updates=" + updates + "].");
@@ -270,8 +249,7 @@
                 update.validate(model);
             } catch (ise :IllegalOperationError) {
                 log.warning("Scene update failed validation [model=" + model +
-                            ", update=" + update +
-                            ", error=" + ise.message + "].");
+                            ", update=" + update + ", error=" + ise.message + "].");
                 failure = true;
                 break;
             }
@@ -297,9 +275,9 @@
                 log.logStackTrace(ioe);
             }

-            // act as if the scene move failed, though we'll be in a funny
-            // state because the server thinks we've changed scenes, but
-            // the client can try again without its booched scene model
+            // act as if the scene move failed, though we'll be in a funny state because the server
+            // thinks we've changed scenes, but the client can try again without its booched scene
+            // model
             requestFailed(InvocationCodes.INTERNAL_ERROR);
             return;
         }
@@ -315,9 +293,8 @@
     public function moveSucceededWithScene (
         placeId :int, config :PlaceConfig, model :SceneModel) :void
     {
-        log.info("Got updated scene model [placeId=" + placeId +
-                 ", config=" + config + ", scene=" + model.sceneId + "/" +
-                 model.name + "/" + model.version + "].");
+        log.info("Got updated scene model [placeId=" + placeId + ", config=" + config +
+                 ", scene=" + model.sceneId + "/" + model.name + "/" + model.version + "].");

         // update the model in the repository
         persistSceneModel(model);
@@ -341,8 +318,7 @@
     }

     /**
-     * Called by SceneController instances to tell us about an update
-     * to the current scene.
+     * Called by SceneController instances to tell us about an update to the current scene.
      */
     public function updateReceived (update :SceneUpdate) :void
     {
@@ -351,8 +327,7 @@
     }

     /**
-     * Called to clean up our place and scene state information when we
-     * leave a scene.
+     * Called to clean up our place and scene state information when we leave a scene.
      */
     public function didLeaveScene () :void
     {
@@ -381,11 +356,10 @@
     public function setMoveHandler (handler :SceneDirector_MoveHandler) :void
     {
         if (_moveHandler != null) {
-            log.warning("Requested to set move handler, but we've " +
-                        "already got one. The conflicting entities will " +
-                        "likely need to perform more sophisticated " +
-                        "coordination to deal with failures. " +
-                        "[old=" + _moveHandler + ", new=" + handler + "].");
+            log.warning("Requested to set move handler, but we've already got one. The " +
+                        "conflicting entities will likely need to perform more sophisticated " +
+                        "coordination to deal with failures. [old=" + _moveHandler +
+                        ", new=" + handler + "].");

         } else {
             _moveHandler = handler;
@@ -393,8 +367,8 @@
     }

     /**
-     * Called when something breaks down in the process of performing a
-     * moveTo request.
+     * Called when something breaks down in the process of performing a moveTo
+     * request.
      */
     public function recoverFailedMove (placeId :int) :void
     {
@@ -404,8 +378,8 @@
         // clear out our now bogus scene tracking info
         clearScene();

-        // if we were previously somewhere (and that somewhere isn't where
-        // we just tried to go), try going back to that happy place
+        // if we were previously somewhere (and that somewhere isn't where we just tried to go),
+        // try going back to that happy place
         if (_previousSceneId != -1 && _previousSceneId != sceneId) {
             // if we have a move handler use that
             if (_moveHandler != null) {
@@ -418,8 +392,8 @@
     }

     /**
-     * Clears out our current scene information and releases the scene
-     * model for the loaded scene back to the cache.
+     * Clears out our current scene information and releases the scene model for the loaded scene
+     * back to the cache.
      */
     protected function clearScene () :void
     {
@@ -432,8 +406,8 @@
     }

     /**
-     * Loads a scene from the repository. If the scene is cached, it will
-     * be returned from the cache instead.
+     * Loads a scene from the repository. If the scene is cached, it will be returned from the
+     * cache instead.
      */
     protected function loadSceneModel (sceneId :int) :SceneModel
     {
@@ -451,8 +425,7 @@

             } catch (ioe :IOError) {
                 // complain first, then return null
-                log.warning("Error loading scene [scid=" + sceneId +
-                            ", error=" + ioe + "].");
+                log.warning("Error loading scene [scid=" + sceneId + ", error=" + ioe + "].");
             }
         }

@@ -467,9 +440,8 @@
         try {
             _screp.storeSceneModel(model);
         } catch (ioe :IOError) {
-            log.warning("Failed to update repository with updated scene " +
-                "[sceneId=" + model.sceneId + ", nvers=" + model.version +
-                "].");
+            log.warning("Failed to update repository with updated scene [sceneId=" + model.sceneId +
+                        ", nvers=" + model.version + "].");
             log.logStackTrace(ioe);
         }
     }
@@ -528,8 +500,7 @@
     /** The id of the scene we currently occupy. */
     protected var _sceneId :int = -1;

-    /** Our most recent copy of the scene model for the scene we're about
-     * to enter. */
+    /** Our most recent copy of the scene model for the scene we're about to enter. */
     protected var _pendingModel :SceneModel;

     /** The id of the scene for which we have an outstanding moveTo


Transferred from the Adobe Open Source Subversion Repository

Revision: 9715
Author:   aharui@adobe.com
Date:     2009-08-27T21:20:28.280781Z

Log Message:
-----------
Introduce tabFocusEnabled to IFocusManagerComponent.  This replaces tabEnabled as the way to remove a component from the tabbing loop.  tabEnabled should be set to true for any component that can receive focus, and tabFocusEnabled determines whether the FocusManager will actually give it focus.  If tabEnabled=false on a non-TextField, the player will sometimes momentarily remove focus and dispatch a focusOut when the component has focus and is later clicked on.  This is now quite common with TLF-based text components so we are forced to make this change.

QE Notes: tests using tabEnabled must now use tabFocusEnabled
Doc Notes: needs documentation
Bugs: SDK-22731
Reviewer: Gordon
API Change: Yes
Is noteworthy for integration: Yes
tests: checkintests cyclone

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/accordionClasses/AccordionHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.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/controls/sliderClasses/Slider.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/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ButtonBar.as
+++ frameworks/projects/mx/src/mx/controls/ButtonBar.as
@@ -348,6 +348,7 @@
         super();

         tabEnabled = true;
+        tabFocusEnabled = true;

         navItemFactory = new ClassFactory(ButtonBarButton);

@@ -794,7 +795,7 @@
     {
         var newButton:Button = Button(navItemFactory.newInstance());

-        // Set tabEnabled to false so individual buttons don't get focus.
+        // Set focusEnabled to false so individual buttons don't get focus.
         newButton.focusEnabled = false;
         newButton.label = label;
         newButton.setStyle("icon", icon);


Transferred from the Adobe Open Source Subversion Repository

Revision: 10561
Author:   cframpto@adobe.com
Date:     2009-09-24T01:26:50.541480Z

Log Message:
-----------
Halo ComboBox control did not look very good when using TLFTextField because the spark TextInput obscured the underlying button.  The TextInput border and background needed to be turned off.

Rename ITextInput.showBorder(visible) to ITextInput.showBorderAndBackground(visible).  PARB approved.

Remove TLFTextField from SparkClasses.  UITLFTextField will pull it in.

QE notes:
Doc notes:
Bugs: SDK-23242
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>

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

--- frameworks/projects/mx/src/mx/controls/TextInput.as
+++ frameworks/projects/mx/src/mx/controls/TextInput.as
@@ -2297,14 +2297,15 @@
     //--------------------------------------------------------------------------

     /**
-     *  Used to determine if the control's border object is visible.
+     *  Used to determine if the control's border and background are
+     *  visible.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function showBorder(visible:Boolean):void
+    public function showBorderAndBackground(visible:Boolean):void
     {
         if (border)
             border.visible = visible;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10464
Author:   rfrishbe@adobe.com
Date:     2009-09-21T17:40:30.663638Z

Log Message:
-----------
Removing support in Flex framework for compatibility version < 3.  We won't support compatibility-version 2 or 2.01 anymore.  We only keep compatibility-version for one full release, so for Flex 4, we only support compatibility-version = 3.x.

This should reduce our code-size some as we no longer need this old code.  I didn't clean up the compiler's support for compatibility-versioning as it didn't seem worth the effort.

QE notes: -
Doc notes: -
Bugs: SDK-15360
Reviewer: Kevin
Tests run: checkintests, Joan ran all mustella tests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/accordionClasses/AccordionHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/CanvasLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</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/frameworks/projects/framework/src/mx/skins/halo/ScrollArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/AccordionHeaderSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.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/controls/NavBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeaderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/DateChooserYearArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PanelSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuItemRenderer.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/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>

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

--- frameworks/projects/mx/src/mx/controls/CheckBox.as
+++ frameworks/projects/mx/src/mx/controls/CheckBox.as
@@ -225,29 +225,6 @@
             textH += getStyle("paddingTop") + getStyle("paddingBottom");
             measuredMinHeight = measuredHeight = Math.max(textH, measuredMinHeight);
         }
-        else if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
-        {
-            var textHeight:Number = measureText(label).height;
-            var iconHeight:Number = currentIcon ? currentIcon.height : 0;
-
-            var h:Number = 0;
-
-            if (labelPlacement == ButtonLabelPlacement.LEFT ||
-                labelPlacement == ButtonLabelPlacement.RIGHT)
-            {
-                h = Math.max(textHeight, iconHeight);
-            }
-            else
-            {
-                h = textHeight + iconHeight;
-
-                var verticalGap:Number = getStyle("verticalGap");
-                if (iconHeight != 0 && !isNaN(verticalGap))
-                    h += verticalGap;
-            }
-
-            measuredMinHeight = measuredHeight = Math.max(h, 18);
-        }
     }
 }


Removed debugging log from VisibilityTransitionVO

--- src/reprise/css/transitions/VisibilityTransitionVO.as
+++ src/reprise/css/transitions/VisibilityTransitionVO.as
@@ -24,7 +24,6 @@
 				//immediately instead of waiting another frame. This makes sense
 				//and prevents severe problems with validation caused by using
 				//display:none in transitions
-				log('start!',startValue);
 				return endValue;
 			}
 			return ratio == 1 ? endValue : startValue;


- use isPlainObject()
- support Point and Rectangle.

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

--- src/as/com/threerings/util/ObjectMarshaller.as
+++ src/as/com/threerings/util/ObjectMarshaller.as
@@ -22,6 +22,9 @@
 package com.threerings.util {

 import flash.net.ObjectEncoding;
+
+import flash.geom.Point;
+import flash.geom.Rectangle;

 import flash.system.ApplicationDomain;

@@ -148,16 +151,13 @@
             if (type == "number" || type == "string" || type == "boolean" ) {
                 return null; // kosher!
             }
-            if (value is ByteArray) {
+            if (-1 != VALID_CLASSES.indexOf(ClassUtil.getClass(value))) {
                 return null; // kosher
             }
-            var clazz :Class = ClassUtil.getClass(value);
-            var clazzparentname :String = getQualifiedSuperclassName(clazz);
-            var rootclass :Boolean = (clazzparentname == null);
-            if (! rootclass) {
+            if (!Util.isPlainObject(value)) {
                 return "Non-simple properties may not be set.";
             }
-            // fall through and verify the object's sub-properties
+            // fall through and verify the plain object's sub-properties
         }

         // check sub-properties (of arrays and objects)
@@ -170,5 +170,8 @@

         return null; // it all checks out!
     }
+
+    /** Non-simple classes that we allow, as long as they are not subclassed. */
+    protected static const VALID_CLASSES :Array = [ ByteArray, Point, Rectangle ];
 }
 }


Fix typo.

Fix typo.

--- HLSPlugin/src/com/kaltura/hls/m2ts/M2TSParser.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/M2TSParser.as
@@ -299,7 +299,7 @@
 				}
 				else
 				{
-					//trace("parseAVCPAcket - Exiting due to no NALU before end");
+					//trace("parseAVCPacket - Exiting due to no NALU before end");
 					break;
 				}


fixed bug so he bounce back when he hits two blocks at once

--- src/Mukik.as
+++ src/Mukik.as
@@ -40,7 +40,7 @@
 		public var symbol:SymRock;
 		private var symRocks:Array = new Array();

-		public var size:int = 10;//length of the snake
+		public var size:int = 5;//length of the snake
 		public var snakeBods:Array = new Array();
 		public var bod:SnakeBod;
 		private var tail:SnakeTail = new SnakeTail();
@@ -196,41 +196,55 @@
 				//}

 			}
-			//set the vision
 			addPath(snake.x, snake.y, snake.rotation);
-			//checking for collision type and direction
+
+			//loop through all the rocks
 			for (var i:int = 0; i<rocks.length; i++) {
+				//set the vision
 				if (Math.abs(snake.x-rocks[i].x) < 100 && Math.abs(snake.y-rocks[i].y) < 100 && !snake.hitTestObject(rocks[i]) && symRocks[i].type != 4) {
 					symRocks[i].visible = true;
 				}
 				else {symRocks[i].visible = false;}
-
-				if (snake.hitTestObject(rocks[i]) && snake.type == symRocks[i].type) {
-					rocks[i].visible = false;
-					//symRocks[i] = new RockExplosion();
-					symRocks[i].visible = false;
-					symRocks[i].type = 4;
-					rockFxChannel = rockFx.play();
-					//symRocks[i] = null;
-					//rocks[i] = null;
-					//this.removeChild(symRocks[i]);
-				}
-				else if (snake.hitTestObject(rocks[i]) && symRocks[i].type != 4) {
-
-						if (dir=="d") {
+				//checking for collision type and direction
+				if (snake.hitTestObject(rocks[i])) {
+					if( snake.type == symRocks[i].type) {
+
+						rocks[i].visible = false;
+						//symRocks[i] = new RockExplosion();
+						symRocks[i].visible = false;
+						symRocks[i].type = 4;
+						rockFxChannel = rockFx.play();
+
+						//symRocks[i] = null;
+						//rocks[i] = null;
+						//this.removeChild(symRocks[i]);
+					}
+
+					else if (symRocks[i].type != 4) {
+
+						if (dir=="d") {
+							snake.y-=2; //fixes it so he bounces back when he hits more than one block
 							reverse("up", snake);
+
 						}
 						else if (dir =="u") {
+							snake.y+=2;
 							reverse("down", snake);
 						}
 						else if (dir=="r") {
+							snake.x-=2;
 							reverse("left", snake);
 						}
 						else if (dir=="l") {
+							snake.x+=2;
 							reverse("right", snake);
 						}
-
-				}
+
+					}
+
+				}
+
+
 			}

 			if (snake.x<50) {
@@ -324,6 +338,7 @@
 		public function reverse(d:String, snake:Snake): void {
 			bounce = true;
 			if(d == "right"){
+
 				vx *= -1;
 				vy=0;
 				snake.y-=b;