Transferred from the Adobe Open Source Subversion Repository

Revision: 5119
Author:   smgilson@adobe.com
Date:     2009-03-01T15:19:39.936226Z

Log Message:
-----------
Clean up some ASDoc tags from the addition of the @productversion/@playerversion tags

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/ResultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.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/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.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/core/UITextField.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/halo/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/NCManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/Base64Encoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/StringValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IInteractiveObjectInterface.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/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ContainerRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.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/videoClasses/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/Schema.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/HexEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectContainerInterface.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/effects/effectClasses/SoundEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISpriteInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/HaloRectBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/Operation.as</path>

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
@@ -75,17 +75,17 @@
  *  @productversion Flex 3
  */
 public class DataGridItemRenderer extends UITextField
-								  implements IDataRenderer,
-								  IDropInListItemRenderer, ILayoutManagerClient,
-								  IListItemRenderer, IStyleClient
+                                  implements IDataRenderer,
+                                  IDropInListItemRenderer, ILayoutManagerClient,
+                                  IListItemRenderer, IStyleClient
 {
-	include "../../core/Version.as";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------

     /**
      *  Constructor.
@@ -95,42 +95,42 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-	public function DataGridItemRenderer()
-	{
-		super();
-
-		tabEnabled = false;
-		mouseWheelEnabled = false;
-
-		ignorePadding = false;
-
-		addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
-
-		inheritingStyles = nonInheritingStyles =
-			StyleProtoChain.STYLE_UNINITIALIZED;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Variables
-	//
-	//--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     */
-	private var invalidatePropertiesFlag:Boolean = false;
-
-    /**
-     *  @private
-     */
-	private var invalidateSizeFlag:Boolean = false;
-
- 	//--------------------------------------------------------------------------
-	//
-	//  Overridden properties: UIComponent
-	//
-	//--------------------------------------------------------------------------
+    public function DataGridItemRenderer()
+    {
+        super();
+
+        tabEnabled = false;
+        mouseWheelEnabled = false;
+
+        ignorePadding = false;
+
+        addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
+
+        inheritingStyles = nonInheritingStyles =
+            StyleProtoChain.STYLE_UNINITIALIZED;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var invalidatePropertiesFlag:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var invalidateSizeFlag:Boolean = false;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: UIComponent
+    //
+    //--------------------------------------------------------------------------

     //----------------------------------
     //  nestLevel
@@ -139,22 +139,22 @@
     /**
      *  @private
      */
-	override public function set nestLevel(value:int):void
-	{
-		super.nestLevel = value;
-
-		UIComponentGlobals.layoutManager.invalidateProperties(this);
-		invalidatePropertiesFlag = true;
-
-		UIComponentGlobals.layoutManager.invalidateSize(this);
-		invalidateSizeFlag = true;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
+    override public function set nestLevel(value:int):void
+    {
+        super.nestLevel = value;
+
+        UIComponentGlobals.layoutManager.invalidateProperties(this);
+        invalidatePropertiesFlag = true;
+
+        UIComponentGlobals.layoutManager.invalidateSize(this);
+        invalidateSizeFlag = true;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------

     //----------------------------------
     //  data
@@ -165,14 +165,14 @@
      */
     private var _data:Object;

-	[Bindable("dataChange")]
-
-    /**
-	 *  The implementation of the data property as
-	 *  defined by the IDataRenderer interface.
-	 *
-	 *  The value is ignored.  Only the listData property is used.
-	 *  @see mx.core.IDataRenderer
+    [Bindable("dataChange")]
+
+    /**
+     *  The implementation of the data property as
+     *  defined by the IDataRenderer interface.
+     *
+     *  The value is ignored.  Only the listData property is used.
+     *  @see mx.core.IDataRenderer
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -184,74 +184,74 @@
         return _data;
     }

-	/**
-	 *  @private
-	 */
-	public function set data(value:Object):void
-	{
-		_data = value;
-
-		dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
-	}
+    /**
+     *  @private
+     */
+    public function set data(value:Object):void
+    {
+        _data = value;
+
+        dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
+    }

     //----------------------------------
     //  listData
     //----------------------------------

-	/**
-	 *  @private
-	 */
-	private var _listData:DataGridListData;
-
-	[Bindable("dataChange")]
-
-	/**
-	 *  The implementation of the listData property as
-	 *  defined by the IDropInListItemRenderer interface.
-	 *  The text of the renderer is set to the label
-	 *  property of the listData.
-	 *
-	 *  @see mx.controls.listClasses.IDropInListItemRenderer
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function get listData():BaseListData
-	{
-		return _listData;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set listData(value:BaseListData):void
-	{
-		_listData = DataGridListData(value);
-		if (nestLevel && !invalidatePropertiesFlag)
-		{
-			UIComponentGlobals.layoutManager.invalidateProperties(this);
-			invalidatePropertiesFlag = true;
-			UIComponentGlobals.layoutManager.invalidateSize(this);
-			invalidateSizeFlag = true;
-		}
-	}
+    /**
+     *  @private
+     */
+    private var _listData:DataGridListData;
+
+    [Bindable("dataChange")]
+
+    /**
+     *  The implementation of the listData property as
+     *  defined by the IDropInListItemRenderer interface.
+     *  The text of the renderer is set to the label
+     *  property of the listData.
+     *
+     *  @see mx.controls.listClasses.IDropInListItemRenderer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get listData():BaseListData
+    {
+        return _listData;
+    }
+
+    /**
+     *  @private
+     */
+    public function set listData(value:BaseListData):void
+    {
+        _listData = DataGridListData(value);
+        if (nestLevel && !invalidatePropertiesFlag)
+        {
+            UIComponentGlobals.layoutManager.invalidateProperties(this);
+            invalidatePropertiesFlag = true;
+            UIComponentGlobals.layoutManager.invalidateSize(this);
+            invalidateSizeFlag = true;
+        }
+    }

     //----------------------------------
     //  styleDeclaration
     //----------------------------------

-	/**
-	 *  @private
-	 *  Storage for the styleDeclaration property.
-	 */
-	private var _styleDeclaration:CSSStyleDeclaration;
+    /**
+     *  @private
+     *  Storage for the styleDeclaration property.
+     */
+    private var _styleDeclaration:CSSStyleDeclaration;

     /**
      *  Storage for the inline inheriting styles on this object.
-	 *  This CSSStyleDeclaration is created the first time that setStyle()
-	 *  is called on this component to set an inheriting style.
+     *  This CSSStyleDeclaration is created the first time that setStyle()
+     *  is called on this component to set an inheriting style.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -259,87 +259,87 @@
      *  @productversion Flex 3
      */
     public function get styleDeclaration():CSSStyleDeclaration
-	{
-		return _styleDeclaration;
-	}
-
-    /**
-     *  @private
-	 */
+    {
+        return _styleDeclaration;
+    }
+
+    /**
+     *  @private
+     */
     public function set styleDeclaration(value:CSSStyleDeclaration):void
-	{
-		_styleDeclaration = value;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: UITextField
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	override public function initialize():void
-	{
-		regenerateStyleCache(false)
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function validateNow():void
-	{
-		if (data && parent)
-		{
-			var newColor:Number;
-
-			if (DataGridBase(_listData.owner).isItemHighlighted(_listData.uid))
-			{
-        		newColor = getStyle("textRollOverColor");
-			}
-			else if (DataGridBase(_listData.owner).isItemSelected(_listData.uid))
-			{
-        		newColor = getStyle("textSelectedColor");
-			}
-			else
-			{
-        		newColor = getStyle("color");
-			}
-
-			if (newColor != explicitColor)
-			{
-				styleChangedFlag = true;
-				explicitColor = newColor;
-				invalidateDisplayList();
-			}
-		}
-
-		super.validateNow();
-	}
+    {
+        _styleDeclaration = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UITextField
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function initialize():void
+    {
+        regenerateStyleCache(false)
+    }
+
+    /**
+     *  @private
+     */
+    override public function validateNow():void
+    {
+        if (data && parent)
+        {
+            var newColor:Number;
+
+            if (DataGridBase(_listData.owner).isItemHighlighted(_listData.uid))
+            {
+                newColor = getStyle("textRollOverColor");
+            }
+            else if (DataGridBase(_listData.owner).isItemSelected(_listData.uid))
+            {
+                newColor = getStyle("textSelectedColor");
+            }
+            else
+            {
+                newColor = getStyle("color");
+            }
+
+            if (newColor != explicitColor)
+            {
+                styleChangedFlag = true;
+                explicitColor = newColor;
+                invalidateDisplayList();
+            }
+        }
+
+        super.validateNow();
+    }

     /**
      *  @copy mx.core.UIComponent#getStyle()
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
     override public function getStyle(styleProp:String):*
     {
         return (StyleManager.inheritingStyles[styleProp]) ?
-        	inheritingStyles[styleProp] : nonInheritingStyles[styleProp];
+            inheritingStyles[styleProp] : nonInheritingStyles[styleProp];
     }

     /**
      *  @copy mx.core.UIComponent#setStyle()
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
     override public function setStyle(styleProp:String, newValue:*):void
     {
         if (styleProp == "styleName")
@@ -351,7 +351,7 @@
             return;
         }

-		/*
+        /*
         if (styleProp == "themeColor")
         {
             // setThemeColor handles the side effects.
@@ -360,20 +360,15 @@
             // Do not short circuit, because themeColor is a style.
             // It just has side effects, too.
         }
-		*
-		*  @langversion 3.0
-		*  @playerversion Flash 9
-		*  @playerversion AIR 1.1
-		*  @productversion Flex 3
-		*/
+        */

         // If this UIComponent didn't previously have any inline styles,
         // then regenerate the UIComponent's proto chain (and the proto chains
         // of this UIComponent's descendants).
         var isInheritingStyle:Boolean =
-			StyleManager.isInheritingStyle(styleProp);
+            StyleManager.isInheritingStyle(styleProp);
         var isProtoChainInitialized:Boolean =
-			inheritingStyles != StyleProtoChain.STYLE_UNINITIALIZED;
+            inheritingStyles != StyleProtoChain.STYLE_UNINITIALIZED;
         if (isInheritingStyle)
         {
             if (getStyle(styleProp) == newValue && isProtoChainInitialized)
@@ -424,121 +419,121 @@
         }
     }

- 	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  If Flex calls the LayoutManager.invalidateProperties()
-	 *  method on this ILayoutManagerClient, then
-	 *  this function is called when it's time to commit property values.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function validateProperties():void
-	{
-		invalidatePropertiesFlag = false;
-		if (_listData)
-		{
-			var dg:DataGrid = DataGrid(_listData.owner);
-
-			var column:DataGridColumn =
-				dg.columns[_listData.columnIndex];
-
-			text = _listData.label;
-
-			if (_data is DataGridColumn)
-				wordWrap = dg.columnHeaderWordWrap(column);
-			else
-				wordWrap = dg.columnWordWrap(column);
-
-			if (DataGrid(_listData.owner).variableRowHeight)
-				multiline = true;
-
-			var dataTips:Boolean = dg.showDataTips;
-			if (column.showDataTips == true)
-				dataTips = true;
-			if (column.showDataTips == false)
-				dataTips = false;
-			if (dataTips)
-			{
-				if (!(_data is DataGridColumn) && (textWidth > width
-					|| column.dataTipFunction || column.dataTipField
-					|| dg.dataTipFunction || dg.dataTipField))
-				{
-					toolTip = column.itemToDataTip(_data);
-				}
-				else
-				{
-					toolTip = null;
-				}
-			}
-			else
-			{
-				toolTip = null;
-			}
-		}
-		else
-		{
-			text = " ";
-			toolTip = null;
-		}
-	}
-
-	/**
-	 *  If Flex calls the LayoutManager.invalidateSize()
-	 *  method on this ILayoutManagerClient, then
-	 *  this function is called when it's time to do measurements.
-	 *
-	 *  @param recursive If true, call this method
-	 *  on the object's children.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function validateSize(recursive:Boolean = false):void
-	{
-		invalidateSizeFlag = false;
-		validateNow();
-	}
-
-	/**
-	 *  If Flex calls LayoutManager.invalidateDisplayList()
-	 *  method on this ILayoutManagerClient, then
-	 *  this function is called when it's time to update the display list.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function validateDisplayList():void
-	{
-		validateNow();
-	}
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  If Flex calls the LayoutManager.invalidateProperties()
+     *  method on this ILayoutManagerClient, then
+     *  this function is called when it's time to commit property values.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function validateProperties():void
+    {
+        invalidatePropertiesFlag = false;
+        if (_listData)
+        {
+            var dg:DataGrid = DataGrid(_listData.owner);
+
+            var column:DataGridColumn =
+                dg.columns[_listData.columnIndex];
+
+            text = _listData.label;
+
+            if (_data is DataGridColumn)
+                wordWrap = dg.columnHeaderWordWrap(column);
+            else
+                wordWrap = dg.columnWordWrap(column);
+
+            if (DataGrid(_listData.owner).variableRowHeight)
+                multiline = true;
+
+            var dataTips:Boolean = dg.showDataTips;
+            if (column.showDataTips == true)
+                dataTips = true;
+            if (column.showDataTips == false)
+                dataTips = false;
+            if (dataTips)
+            {
+                if (!(_data is DataGridColumn) && (textWidth > width
+                    || column.dataTipFunction || column.dataTipField
+                    || dg.dataTipFunction || dg.dataTipField))
+                {
+                    toolTip = column.itemToDataTip(_data);
+                }
+                else
+                {
+                    toolTip = null;
+                }
+            }
+            else
+            {
+                toolTip = null;
+            }
+        }
+        else
+        {
+            text = " ";
+            toolTip = null;
+        }
+    }
+
+    /**
+     *  If Flex calls the LayoutManager.invalidateSize()
+     *  method on this ILayoutManagerClient, then
+     *  this function is called when it's time to do measurements.
+     *
+     *  @param recursive If true, call this method
+     *  on the object's children.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function validateSize(recursive:Boolean = false):void
+    {
+        invalidateSizeFlag = false;
+        validateNow();
+    }
+
+    /**
+     *  If Flex calls LayoutManager.invalidateDisplayList()
+     *  method on this ILayoutManagerClient, then
+     *  this function is called when it's time to update the display list.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function validateDisplayList():void
+    {
+        validateNow();
+    }

     /**
      *  @copy mx.core.UIComponent#clearStyle()
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function clearStyle(styleProp:String):void
-	{
-		setStyle(styleProp, undefined);
-	}
-
-    /**
-	 *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function clearStyle(styleProp:String):void
+    {
+        setStyle(styleProp, undefined);
+    }
+
+    /**
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -546,14 +541,14 @@
      *  @productversion Flex 3
      */
     public function notifyStyleChangeInChildren(
-						styleProp:String, recursive:Boolean):void
+                        styleProp:String, recursive:Boolean):void
     {
-	}
-
-    /**
-	 *  Sets up the inheritingStyles
-	 *  and nonInheritingStyles objects
-	 *  and their proto chains so that the getStyle() method can work.
+    }
+
+    /**
+     *  Sets up the inheritingStyles
+     *  and nonInheritingStyles objects
+     *  and their proto chains so that the getStyle() method can work.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -639,16 +634,16 @@
         // Finally, we'll add the in-line styles
         // to the head of the proto chain.
         inheritingStyles = styleDeclaration ?
-        				   styleDeclaration.addStyleToProtoChain(inheritChain, this) :
-        				   inheritChain;
+                           styleDeclaration.addStyleToProtoChain(inheritChain, this) :
+                           inheritChain;

         nonInheritingStyles = styleDeclaration ?
-        					  styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
-        					  nonInheritChain;
-    }
-
-    /**
-	 *  @inheritDoc
+                              styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
+                              nonInheritChain;
+    }
+
+    /**
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -657,8 +652,8 @@
      */
     public function regenerateStyleCache(recursive:Boolean):void
     {
-		initProtoChain();
-	}
+        initProtoChain();
+    }

     /**
      *  @inheritDoc
@@ -670,10 +665,10 @@
      */
     public function registerEffects(effects:Array /* of String */):void
     {
-	}
-
-    /**
-	 *  @inheritDoc
+    }
+
+    /**
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -682,66 +677,66 @@
      */
     public function getClassStyleDeclarations():Array
     {
-		var className:String = getQualifiedClassName(this)
-		className = className.replace("::", ".");
-
-		var decls:Array = [];
-
-		while (className != null &&
-			   className != "mx.core.UIComponent" &&
-			   className != "mx.core.UITextField")
-		{
-			var s:CSSStyleDeclaration =
-				StyleManager.getStyleDeclaration(className);
-
-			if (s)
-			{
-			 	decls.unshift(s);
-			}
-
-			try
-			{
-				className = getQualifiedSuperclassName(getDefinitionByName(className));
-				className = className.replace("::", ".");
-			}
-			catch(e:ReferenceError)
-			{
-				className = null;
-			}
-		}
-
-		return decls;
-    }
-
-	//--------------------------------------------------------------------------
-	//
-	//  Event handlers
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  The event handler to position the tooltip.
-	 *
-	 *  @param event The event object.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	protected function toolTipShowHandler(event:ToolTipEvent):void
-	{
-		var toolTip:IToolTip = event.toolTip;
-
-		// Calculate global position of label.
+        var className:String = getQualifiedClassName(this)
+        className = className.replace("::", ".");
+
+        var decls:Array = [];
+
+        while (className != null &&
+               className != "mx.core.UIComponent" &&
+               className != "mx.core.UITextField")
+        {
+            var s:CSSStyleDeclaration =
+                StyleManager.getStyleDeclaration(className);
+
+            if (s)
+            {
+                decls.unshift(s);
+            }
+
+            try
+            {
+                className = getQualifiedSuperclassName(getDefinitionByName(className));
+                className = className.replace("::", ".");
+            }
+            catch(e:ReferenceError)
+            {
+                className = null;
+            }
+        }
+
+        return decls;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The event handler to position the tooltip.
+     *
+     *  @param event The event object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function toolTipShowHandler(event:ToolTipEvent):void
+    {
+        var toolTip:IToolTip = event.toolTip;
+
+        // Calculate global position of label.
         var sm:ISystemManager = systemManager.topLevelSystemManager;
         var sbRoot:DisplayObject = sm.getSandboxRoot();
         var screen:Rectangle;
-		var pt:Point = new Point(0, 0);
-		pt = localToGlobal(pt);
-		pt = sbRoot.globalToLocal(pt);
-
-		toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);
+        var pt:Point = new Point(0, 0);
+        pt = localToGlobal(pt);
+        pt = sbRoot.globalToLocal(pt);
+
+        toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);

         if (sm != sbRoot)
         {
@@ -754,13 +749,13 @@
         else
             screen = sm.getVisibleApplicationRect();

-		var screenRight:Number = screen.x + screen.width;
-		pt.x = toolTip.x;
-		pt.y = toolTip.y;
+        var screenRight:Number = screen.x + screen.width;
+        pt.x = toolTip.x;
+        pt.y = toolTip.y;
         pt = sbRoot.localToGlobal(pt);
-		if (pt.x + toolTip.width > screenRight)
-			toolTip.move(toolTip.x - (pt.x + toolTip.width - screenRight), toolTip.y);
-	}
+        if (pt.x + toolTip.width > screenRight)
+            toolTip.move(toolTip.x - (pt.x + toolTip.width - screenRight), toolTip.y);
+    }
 }

 }


removed two spaces from close body

removed two spaces from close body

--- com/rtmfpcat/rtmfp/RTMFPSocket.as
+++ com/rtmfpcat/rtmfp/RTMFPSocket.as
@@ -69,7 +69,7 @@

         public function close():void
         {
-            connection.close();
+          connection.close();
         }

         public function get id():String


fixed stack overflow

fixed stack overflow

--- WeaveJS/src/weavejs/net/URLRequestUtils.as
+++ WeaveJS/src/weavejs/net/URLRequestUtils.as
@@ -38,6 +38,18 @@
 		public static const RESPONSE_JSON:String = 'json';
 		public static const RESPONSE_TEXT:String = 'text';

+		private function byteArrayToString(byteArray:Array):String
+		{
+			var MAX_ARGUMENTS_LENGTH:int = 4096;
+			var n:int = byteArray.length;
+			if (n <= MAX_ARGUMENTS_LENGTH)
+				return String.fromCharCode.apply(String, byteArray);
+			var str:String = "";
+			for (var i:int = 0; i < n;)
+				str += String.fromCharCode.apply(String, byteArray.slice(i, i += MAX_ARGUMENTS_LENGTH));
+			return str;
+		}
+
 		public function request(relevantContext:Object, method:String, url:String, requestHeaders:Object, data:String, responseType:String):WeavePromise
 		{
 			if (url.indexOf(LOCAL_FILE_URL_SCHEME) == 0)
@@ -53,7 +65,7 @@
 							case RESPONSE_TEXT:
 								return resolve(String.fromCharCode.apply(null, byteArray));
 							case RESPONSE_JSON:
-								return resolve(JSON.parse(String.fromCharCode.apply(null, byteArray)));
+								return resolve(JSON.parse(byteArrayToString(byteArray)));
 							case RESPONSE_BLOB:
 								return resolve(new JS.global.Blob([byteArray.buffer]));
 							case RESPONSE_ARRAYBUFFER:


avoiding compile error

avoiding compile error

--- WeaveJS/src/weavejs/data/bin/NumberClassifier.as
+++ WeaveJS/src/weavejs/data/bin/NumberClassifier.as
@@ -79,9 +79,11 @@
 				_maxInclusive = maxInclusive.value;
 				_triggerCount = _callbacks.triggerCounter;
 			}
-			// use private variables for speed
-			return (_minInclusive ? value >= _min : value > _min)
-				&& (_maxInclusive ? value <= _max : value < _max);
+			// use private variables for speed
+			if (_minInclusive ? value >= _min : value > _min)
+				if (_maxInclusive ? value <= _max : value < _max)
+					return true;
+			return false;
 		}

 		/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 18567
Author:   klin@adobe.com
Date:     2010-11-13T00:28:51.781896Z

Log Message:
-----------
Fix for Bindable metadata being in the wrong place in DataGrid, Grid and GridColumn. Made GridColumn.editable Bindable. variableRowHeight and resizableColumns were also not dispatching a change event. I also took the liberty of performing some code clean up and fixing some docs.

QE notes: Check properties to make sure they're Bindable
Doc notes: No
Bugs: SDK-28464
Reviewer: Hans
Tests run: DataGrid, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/CellPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridRowList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRendererOwner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/CellRegion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridRowNode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridSelection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridSelectionMode.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridSelectionMode.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridSelectionMode.as
@@ -18,6 +18,15 @@
  */
 public final class GridSelectionMode
 {
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
     public function GridSelectionMode()
     {
         super();


Use ImpetusChannel instead SoundChannel

Use ImpetusChannel instead SoundChannel

--- ImpetusSound.as
+++ ImpetusSound.as
@@ -1,27 +1,26 @@
 package io.github.jwhile.impetus
 {
     import flash.media.Sound;
-    import flash.media.SoundChannel;
     import flash.net.URLRequest;

     public class ImpetusSound
     {
         private var sound:Sound;

-        private var channels:Vector.<SoundChannel>;
+        private var channels:Vector.<ImpetusChannel>;

         public function ImpetusSound(url:String):void
         {
             this.sound = new Sound();

-            this.channels = new Vector.<SoundChannel>;
+            this.channels = new Vector.<ImpetusChannel>;

             this.sound.load(new URLRequest(url));
         }

-        public function playNew():SoundChannel
+        public function playNew():ImpetusChannel
         {
-            var c:SoundChannel = this.sound.play(0);
+            var c:ImpetusChannel = new ImpetusChannel(this.sound.play(0));

             channels.push(c);


- Changed the method to determine whether an attribute should be made into a bit selector editor. - Bit masks outside of the selection range cause bit selectors to gray out to avoid confusion.

--- Bin/Data/Scripts/Editor/AttributeEditor.as
+++ Bin/Data/Scripts/Editor/AttributeEditor.as
@@ -28,6 +28,15 @@
 // Exceptions for string attributes that should not be continuously edited
 Array<String> noTextChangedAttrs = {"Script File", "Class Name", "Script Object Type", "Script File Name"};

+// List of attributes that should be created with a bit selection editor
+const Array<String> bitSelectionAttrs = {"Collision Mask", "Collision Layer", "Light Mask", "Zone Mask", "View Mask", "Shadow Mask"};
+
+// Number of editable bits for bit selection editor
+const int MAX_BITMASK_BITS = 8;
+const int MAX_BITMASK_VALUE = (1 << MAX_BITMASK_BITS) - 1;
+Color nonEditableBitSelectorColor(0.5f, 0.5f, 0.5f);
+Color editableBitSelectorColor(1.0f, 1.0f, 1.0f);
+
 WeakHandle testAnimState;

 bool dragEditAttribute = false;
@@ -133,7 +142,7 @@
     return attrEdit;
 }

-UIElement@ CreateAttributeBitSelector(UIElement@ parent, Array<Serializable@>@ serializables, uint index, uint subIndex)
+LineEdit@ CreateAttributeBitSelector(UIElement@ parent, Array<Serializable@>@ serializables, uint index, uint subIndex)
 {
     UIElement@ container = UIElement();
     parent.AddChild(container);
@@ -165,14 +174,13 @@
 void UpdateBitSelection(UIElement@ parent)
 {
     int mask = 0;
-    const int MAX_MASK_BITS = 8;
-    for (int i = 0; i < MAX_MASK_BITS; i++)
+    for (int i = 0; i < MAX_BITMASK_BITS; i++)
     {
         CheckBox@ bitBox = parent.GetChild("BitSelect_" + String(i), true);
         mask = mask | (bitBox.checked ? 1 << i : 0);
     }

-    if (mask == (1 << MAX_MASK_BITS) - 1 )
+    if (mask == MAX_BITMASK_VALUE)
         mask = -1;

     inUpdateBitSelection = true;
@@ -184,13 +192,21 @@
 void SetBitSelection(UIElement@ parent, int value)
 {
     int mask = value;
-    const int MAX_MASK_BITS = 8;
+    bool enabled = true;
+
     if (mask ==  -1)
-        mask = (1 << MAX_MASK_BITS) - 1;
-
-    for (int i = 0; i < MAX_MASK_BITS; i++)
+        mask = MAX_BITMASK_VALUE;
+    else if (mask > MAX_BITMASK_VALUE)
+        enabled = false;
+
+    for (int i = 0; i < MAX_BITMASK_BITS; i++)
     {
         CheckBox@ bitBox = parent.GetChild("BitSelect_" + String(i), true);
+        bitBox.enabled = enabled;
+        if (!enabled)
+            bitBox.color = nonEditableBitSelectorColor;
+        else
+            bitBox.color = editableBitSelectorColor;

         if ((1 << i) & mask != 0)
             bitBox.checked = true;
@@ -286,10 +302,10 @@
 {
     UIElement@ parent = CreateAttributeEditorParent(list, info.name, index, subIndex);

-    // Check for masks
-    if (info.name.Contains("Mask", false))
-    {
-        UIElement@ attrEdit = CreateAttributeBitSelector(parent, serializables, index, subIndex);
+    // Check for masks and layers
+    if (bitSelectionAttrs.Find(info.name) > -1)
+    {
+        LineEdit@ attrEdit = CreateAttributeBitSelector(parent, serializables, index, subIndex);
     }
     // Check for enums
     else if (info.enumNames is null || info.enumNames.empty)
@@ -584,7 +600,7 @@
         SetEditable(SetValue(parent.children[1], value.GetBool(), sameValue), editable && sameValue);
     else if (type == VAR_INT)
     {
-        if (info.name.Contains("Mask", false))
+        if (bitSelectionAttrs.Find(info.name) > -1)
             SetEditable(SetValue(parent.GetChild("LineEdit", true), value.ToString(), sameValue), editable && sameValue);
         else if (info.enumNames is null || info.enumNames.empty)
             SetEditable(SetValue(parent.children[1], value.ToString(), sameValue), editable && sameValue);


Improved speed of splitAtIndex().

Improved speed of splitAtIndex().

--- WeaveData/src/weave/primitives/BLGTree.as
+++ WeaveData/src/weave/primitives/BLGTree.as
@@ -66,7 +66,14 @@

 			// create a new node object to hold these values
 			var newNode:BLGNode = new BLGNode(index, importance, x, y);
-
+			_insert(newNode);
+		}
+
+		/**
+		 * @private
+		 */
+		private function _insert(newNode:BLGNode):void
+		{
 			// base case: tree is empty, save as root node
 			if (rootNode == null)
 			{
@@ -383,34 +390,100 @@
 		 */
 		private var previousTraversalVisibleBounds:IBounds2D = new Bounds2D();

+		private static function assertTrue(bool:Boolean):void
+		{
+			if (!bool)
+				throw new Error("Assertion failed");
+		}
+
+		private static function assertValid(node:BLGNode, assertNode:Function):void
+		{
+			if (!node)
+				return;
+
+			assertNode(node);
+			if (node.left)
+			{
+				assertTrue(node.left.index < node.index);
+				assertValid(node.left, assertNode);
+			}
+			if (node.right)
+			{
+				assertTrue(node.index < node.right.index);
+				assertValid(node.right, assertNode);
+			}
+		}
+
 		/**
 		 * @param splitIndex An index to split the tree at.
 		 * @return A new BLGTree containing all the points whose index >= splitIndex.
 		 */
-		public function splitAtIndex(splitIndex:int):BLGTree
-		{
-			var newTree:BLGTree = new BLGTree();
-			// get all points in this tree
-			var nodes:Vector.<BLGNode> = getPointVector();
-			// clear this tree
-			rootNode = null;
-			// add back all the points to the appropriate trees
-			for each (var node:BLGNode in nodes)
-			{
-				(node.index < splitIndex ? this : newTree).insert(node.index, node.importance, node.x, node.y);
-				// break up tree structure of the old nodes
-				node.left = node.right = null;
-			}
-			// clear references to previous nodes
-			traversalVector.length = 0;
-			previousTraversalMinImportance = -1;
+		public function splitAtIndex(splitIndex:int):BLGTree
+		{
+			// reset these values so previous traversal won't be reused
+			previousTraversalMinImportance = -1;
+			traversalVector.length = 0;
+
+			// create new tree for points whose index >= splitIndex
+			var newTree:BLGTree = new BLGTree();
+
+			while (true)
+			{
+				// traverse down right side of this tree until we find a subtree that should go to the new tree
+				var parent:BLGNode = null;
+				var subtree:BLGNode = this.rootNode;
+				while (subtree && subtree.index < splitIndex)
+				{
+					parent = subtree;
+					subtree = subtree.right;
+				}
+
+				// stop if no appropriate subtree found
+				if (!subtree)
+					break;
+
+				// remove subtree
+				if (parent)
+					parent.right = null;
+				else
+					this.rootNode = null;
+
+				// add to new tree
+				newTree._insert(subtree);
+
+				// traverse down left side of new tree until we find a subtree that should go back to the old tree
+				parent = null;
+				subtree = newTree.rootNode;
+				while (subtree && subtree.index >= splitIndex)
+				{
+					parent = subtree;
+					subtree = subtree.left;
+				}
+
+				// stop if no appropriate subtree found
+				if (!subtree)
+					break;
+
+				// remove subtree
+				if (parent)
+					parent.left = null;
+				else
+					newTree.rootNode = null;
+
+				// add to old tree
+				this._insert(subtree);
+			}
+
+			//assertValid(this.rootNode, function(node:BLGNode):void{ assertTrue(node.index < splitIndex); });
+			//assertValid(newTree.rootNode, function(node:BLGNode):void{ assertTrue(node.index >= splitIndex); });
+
 			// return new tree
-			return newTree;
+			return newTree;
 		}

 		/**
 		 * Removes all points from the BLGTree.
-		 */
+		 */
 		public function clear():void
 		{
 			rootNode = null;


Fix missing default argument.

Fix missing default argument.

--- src/aerys/minko/scene/node/camera/AbstractCamera.as
+++ src/aerys/minko/scene/node/camera/AbstractCamera.as
@@ -176,7 +176,7 @@
 		 * @return
 		 *
 		 */
-		public function getProjection(output : Matrix4x4) : Matrix4x4
+		public function getProjection(output : Matrix4x4 = null) : Matrix4x4
 		{
 			output ||= new Matrix4x4();


added checks for null parameters

added checks for null parameters

--- WeaveCore/src/weave/core/SessionManager.as
+++ WeaveCore/src/weave/core/SessionManager.as
@@ -140,6 +140,11 @@
 		 */
 		public function registerDisposableChild(disposableParent:Object, disposableChild:Object):*
 		{
+			if (!disposableParent)
+				throw new Error("registerDisposableChild(): Parent parameter cannot be null.");
+			if (!disposableChild)
+				throw new Error("registerDisposableChild(): Child parameter cannot be null.");
+
 			// if this parent has no owner-to-child mapping, initialize it now with parent-to-child mapping
 			if (ownerToChildDictionaryMap[disposableParent] === undefined)
 			{
@@ -166,6 +171,11 @@
 		 */
 		public function unregisterLinkableChild(parent:ILinkableObject, child:ILinkableObject):void
 		{
+			if (!parent)
+				throw new Error("unregisterLinkableChild(): Parent parameter cannot be null.");
+			if (!child)
+				throw new Error("unregisterLinkableChild(): Child parameter cannot be null.");
+
 			if (childToParentDictionaryMap[child])
 				delete childToParentDictionaryMap[child][parent];
 			if (parentToChildDictionaryMap[parent])


fixed bugs with new datauri responseType option

--- WeaveJS/src/weavejs/net/URLRequestUtils.as
+++ WeaveJS/src/weavejs/net/URLRequestUtils.as
@@ -26,6 +26,11 @@

 	public class URLRequestUtils implements IURLRequestUtils
 	{
+		private function byteArrayToDataUri(byteArray:/*Uint8*/Array, mimeType:String):String
+		{
+			return "data:" + (mimeType || '') + ';base64,' + JS.global.btoa(byteArray);
+		}
+
 		private function byteArrayToString(byteArray:/*Uint8*/Array):String
 		{
 			var CHUNK_SIZE:int = 8192;
@@ -63,7 +68,7 @@
 							case ResponseType.UINT8ARRAY:
 								return resolve(byteArray);
 							case ResponseType.DATAURI:
-								return resolve("data:" + (urlRequest.mimeType || '') + ';base64,' + JS.global.btoa(byteArray));
+								return resolve(byteArrayToDataUri(byteArray, urlRequest.mimeType));
 						}
 					});
 				});
@@ -81,7 +86,7 @@
 					for (var name:String in urlRequest.requestHeaders)
 						xhr.setRequestHeader(name, urlRequest.requestHeaders[name], false);

-					if (urlRequest.responseType === ResponseType.UINT8ARRAY)
+					if (urlRequest.responseType === ResponseType.UINT8ARRAY || urlRequest.responseType === ResponseType.DATAURI)
 						xhr.responseType = ResponseType.ARRAYBUFFER;
 					else
 						xhr.responseType = urlRequest.responseType;
@@ -91,6 +96,8 @@

 						if (urlRequest.responseType === ResponseType.UINT8ARRAY)
 							result = new JS.Uint8Array(result);
+						if (urlRequest.responseType === ResponseType.DATAURI)
+							result = byteArrayToDataUri(new JS.Uint8Array(result), urlRequest.mimeType);

 						resolve(result);
 						done = true;


DynamicEditor now dynamically updates for ILinkableHashMap.

--- WeaveUI/src/weave/editors/DynamicEditor.as
+++ WeaveUI/src/weave/editors/DynamicEditor.as
@@ -22,13 +22,11 @@
 	import flash.display.DisplayObject;
 	import flash.events.Event;
 	import flash.events.MouseEvent;
-	import flash.utils.Dictionary;

 	import mx.containers.VBox;
 	import mx.controls.Button;
 	import mx.core.IUIComponent;
 	import mx.events.FlexEvent;
-	import mx.utils.ObjectUtil;

 	import weave.api.core.ILinkableDynamicObject;
 	import weave.api.core.ILinkableHashMap;
@@ -37,7 +35,6 @@
 	import weave.api.data.IAttributeColumn;
 	import weave.api.linkBindableProperty;
 	import weave.api.ui.ISelectableAttributes;
-	import weave.compiler.StandardLib;
 	import weave.core.LinkableBoolean;
 	import weave.core.LinkableNumber;
 	import weave.core.SessionManager;
@@ -52,29 +49,20 @@
 	import weave.ui.Indent;
 	import weave.ui.IndentTextInput;
 	import weave.ui.SessionStateEditor;
-	import weave.utils.VectorUtils;

 	public class DynamicEditor
 	{
 		/**
 		 * Creates an editor component for an ILinkableObject.
-		 * @param obj Either an ILinkableObject or a session state tree generated by SessionManager.getSessionStateTree().
+		 * @param target An ILinkableObject.
 		 * @param label A label for the ILinkableObject.
 		 * @param indentChildren If true and the object does not have a simple editor, an Indent component will be created with
 		 *                       the specified label in front of a vertical list of child editors. If false, the vertical list
 		 *                       will not be indented.
 		 */
-		public static function createComponent(object:Object, label:String, indentChildren:Boolean):IUIComponent
+		public static function createComponent(target:ILinkableObject, label:String, indentChildren:Boolean):IUIComponent
 		{
 			var sm:SessionManager = WeaveAPI.SessionManager as SessionManager;
-
-			var tree:WeaveTreeItem = object as WeaveTreeItem;
-			var target:ILinkableObject = object as ILinkableObject;
-			if (target)
-				tree = sm.getSessionStateTree(target, label);
-			else
-				target = tree.source as ILinkableObject;
-
 			var indent:Indent;

 			var lb:LinkableBoolean = target as LinkableBoolean;
@@ -145,7 +133,7 @@
 				return clc;
 			}

-			if (ldo || lhm)
+			if (ldo)// || lhm)
 			{
 				var button:Button = new Button();
 				button.data = target;
@@ -161,67 +149,8 @@
 				return indent;
 			}

-			//----------------------
-
 			// for everything else, generate editors for each child in the session state
-			var subtrees:Array = tree.children;
-
-			if (!(target is ILinkableHashMap))
-			{
-				// sort by class, then by name
-				StandardLib.sort(subtrees, function(st1:WeaveTreeItem, st2:WeaveTreeItem):int {
-					var c1:Class = Object(st1.source).constructor;
-					var c2:Class = Object(st2.source).constructor;
-					var l1:String = st1.label;
-					var l2:String = st2.label;
-					return ObjectUtil.stringCompare(String(c1), String(c2))
-						|| ObjectUtil.stringCompare(l1, l2);
-				});
-			}
-
-			// editors for enumerated selectable attributes should appear first
-			var owsa:ISelectableAttributes = target as ISelectableAttributes;
-			if (owsa)
-			{
-				var lookup:Dictionary = VectorUtils.createLookup(subtrees, 'source');
-				var names:Array = owsa.getSelectableAttributeNames();
-				subtrees = owsa.getSelectableAttributes()
-					.map(function(attr:*, i:*, a:*):WeaveTreeItem{
-						return subtrees[lookup[attr]]
-							|| sm.getSessionStateTree(attr, names[i]);
-					})
-					.concat(subtrees);
-			}
-
-			// create child editors
-			var components:Array = [];
-			var ignore:Dictionary = new Dictionary(true);
-			for each (var subtree:WeaveTreeItem in subtrees)
-			{
-				var childLabel:String = subtree.label;
-				var childObject:ILinkableObject = subtree.source;
-
-				// make sure we don't add duplicate editors
-				if (ignore[childObject])
-					continue;
-				ignore[childObject] = true;
-
-				var component:IUIComponent = createComponent(childObject, childLabel, true);
-				if (component)
-					components.push(component);
-			}
-
-			// if there are no child components, there is no session state and no editor.
-			if (components.length == 0)
-				return null;
-
-			// create a vbox to contain the child editors
-			var vbox:VBox = new VBox();
-			vbox.label = lang(label);
-			vbox.setStyle('verticalGap', 4);
-			UIUtils.pad(vbox, 4, 100, 100);
-			for each (component in components)
-				vbox.addChild(component as DisplayObject);
+			var vbox:VBox = new ComponentUpdater(target, label).vbox;

 			if (!indentChildren)
 				return vbox;
@@ -239,14 +168,119 @@
 }

 import flash.display.DisplayObject;
+import flash.utils.Dictionary;

 import mx.binding.utils.BindingUtils;
-
+import mx.containers.VBox;
+import mx.core.IUIComponent;
+import mx.utils.ObjectUtil;
+
+import weave.api.core.ILinkableHashMap;
+import weave.api.core.ILinkableObject;
 import weave.api.core.ILinkableVariable;
+import weave.api.detectLinkableObjectChange;
 import weave.api.getCallbackCollection;
+import weave.api.ui.ISelectableAttributes;
+import weave.compiler.StandardLib;
 import weave.core.ClassUtils;
+import weave.core.SessionManager;
 import weave.core.UIUtils;
+import weave.editors.DynamicEditor;
+import weave.primitives.WeaveTreeItem;
 import weave.utils.EventUtils;
+import weave.utils.VectorUtils;
+
+internal class ComponentUpdater
+{
+	public function ComponentUpdater(target:ILinkableObject, label:String)
+	{
+		var sm:SessionManager = WeaveAPI.SessionManager as SessionManager;
+		tree = sm.getSessionStateTree(target, label);
+		sm.addTreeCallback(target, update, true);
+	}
+
+	// create a vbox to contain the child editors
+	public const vbox:VBox = new VBox();
+	private const cachedComponents:Dictionary = new Dictionary(true); // ILinkableObject -> component
+	private var tree:WeaveTreeItem;
+
+	private function update():void
+	{
+		// stop if nothing changed
+		if (!detectLinkableObjectChange(update, tree.source))
+			return;
+
+		vbox.label = lang(tree.label);
+		vbox.setStyle('verticalGap', 4);
+		UIUtils.pad(vbox, 4, 100, 100);
+
+		var subtrees:Array = tree.children || [];
+
+		if (!(tree.source is ILinkableHashMap))
+		{
+			// sort by class, then by name
+			StandardLib.sort(subtrees, function(st1:WeaveTreeItem, st2:WeaveTreeItem):int {
+				var c1:Class = Object(st1.source).constructor;
+				var c2:Class = Object(st2.source).constructor;
+				var l1:String = st1.label;
+				var l2:String = st2.label;
+				return ObjectUtil.stringCompare(String(c1), String(c2))
+					|| ObjectUtil.stringCompare(l1, l2);
+			});
+		}
+
+		// editors for enumerated selectable attributes should appear first
+		var sa:ISelectableAttributes = tree.source as ISelectableAttributes;
+		if (sa)
+		{
+			// this code adds duplicate items to the subtrees array
+			var lookup:Dictionary = VectorUtils.createLookup(subtrees, 'source');
+			var names:Array = sa.getSelectableAttributeNames();
+			subtrees = sa.getSelectableAttributes()
+				.map(function(attr:*, i:*, a:*):WeaveTreeItem{
+					return subtrees[lookup[attr]]
+						|| (WeaveAPI.SessionManager as SessionManager).getSessionStateTree(attr, names[i]);
+				})
+				.concat(subtrees);
+		}
+
+		var ignore:Dictionary = new Dictionary(true);
+		var i:int;
+		var component:IUIComponent;
+		var orderedComponents:Array = [];
+		for (i = 0; i < subtrees.length; i++)
+		{
+			var subtree:WeaveTreeItem = subtrees[i] as WeaveTreeItem;
+
+			// avoid handling an item twice
+			if (ignore[subtree])
+				continue;
+			ignore[subtree] = true;
+
+			var childTarget:ILinkableObject = subtree.source;
+
+			// create component if necessary
+			component = cachedComponents[childTarget];
+			if (!component)
+				cachedComponents[childTarget] = component = DynamicEditor.createComponent(childTarget, subtree.label, true);
+
+			// add to vbox if necessary
+			if (component.parent != vbox)
+				UIUtils.spark_addChild(vbox, component as DisplayObject);
+
+			// remember order
+			orderedComponents.push(component);
+		}
+
+		// set child order
+		for (i = 0; i < orderedComponents.length; i++)
+			UIUtils.spark_setChildIndex(vbox, orderedComponents[i], i);
+
+		// remove extra children
+		while (UIUtils.spark_numChildren(vbox) > orderedComponents.length)
+			UIUtils.spark_removeChildAt(vbox, orderedComponents.length);
+	}
+}

 internal class JsonSynchronizer
 {


Marshall and unmarshall arrays in a standard way.

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

--- src/as/com/threerings/util/FlashObjectMarshaller.as
+++ src/as/com/threerings/util/FlashObjectMarshaller.as
@@ -7,16 +7,27 @@
 import flash.utils.ByteArray;
 import flash.utils.Endian;

+import com.threerings.io.TypedArray;
+
 /**
  * Utility methods for transferring flash properties via
  * the presents dobj system.
  */
 public class FlashObjectMarshaller
 {
-    public static function encode (obj :Object) :ByteArray
+    public static function encode (
+        obj :Object, keepArrays :Boolean = false) :Object
     {
         if (obj == null) {
             return null;
+        }
+        if (!keepArrays && obj is Array) {
+            var src :Array = (obj as Array);
+            var dest :TypedArray = TypedArray.create(ByteArray);
+            for each (var o :Object in src) {
+                dest.push(encode(o, true));
+            }
+            return dest;
         }

         // TODO: Our own encoding, that takes into account
@@ -28,11 +39,20 @@
         return bytes;
     }

-    public static function decode (bytes :ByteArray) :Object
+    public static function decode (encoded :Object) :Object
     {
-        if (bytes == null) {
+        if (encoded == null) {
             return null;
         }
+        if (encoded is TypedArray) {
+            var src :TypedArray = (encoded as TypedArray);
+            var dest :Array = [];
+            for each (var b :ByteArray in src) {
+                dest.push(decode(b));
+            }
+            return dest;
+        }
+        var bytes :ByteArray = (encoded as ByteArray);

         // TODO: Our own decoding, that takes into account
         // the ApplicationDomain


organize imports

organize imports

Change-Id: Ibd7ad36facc6697ea08b055f5edf98d1be62d442

--- WeaveUI/src/weave/ui/CustomColorPicker.as
+++ WeaveUI/src/weave/ui/CustomColorPicker.as
@@ -19,21 +19,14 @@

 package weave.ui
 {
-	import flash.events.Event;
-	import flash.system.Capabilities;
-
-	import mx.collections.CursorBookmark;
 	import mx.controls.ColorPicker;
-	import mx.controls.ComboBox;
 	import mx.core.mx_internal;
-	import mx.events.ColorPickerEvent;
-	import mx.events.DropdownEvent;
-	import mx.events.FlexEvent;
+	import mx.events.DropdownEvent;

 	use namespace mx_internal;

 	/**
-	 * Added functionality: The same selectedColor can be selected again with the popup and still trigger a change event.
+	 * Added functionality: The current selectedColor value can be selected again with the popup and still trigger a change event.
 	 *
 	 * @author adufilie
 	 */


Simplify NetStream failure handling

Simplify NetStream failure handling

--- src/SoundManager2_SMSound_AS3.as
+++ src/SoundManager2_SMSound_AS3.as
@@ -540,21 +540,15 @@

     public function doNetStatus(e: NetStatusEvent) : void {

-      // this will eventually let us know what is going on.. is the stream loading, empty, full, stopped?
-      this.lastNetStatus = e.info.code;
-
-      // Recover from failures
+      // Handle failures
       if (e.info.code == "NetStream.Failed"
           || e.info.code == "NetStream.Play.FileStructureInvalid"
           || e.info.code == "NetStream.Play.StreamNotFound") {

-        // KJV Ignore if the sound has already failed.  We treat these as failures,
-        // but should we rather call this.onLoadError()?
-        if (!this.failed) {
-          writeDebug('netStatusEvent: ' + e.info.code);
-          this.failed = true;
-          ExternalInterface.call(baseJSObject + "['" + this.sID + "']._onfailure", '', e.info.level, e.info.code);
-        }
+        this.lastNetStatus = e.info.code;
+        writeDebug('netStatusEvent: ' + e.info.code);
+        this.failed = true;
+        ExternalInterface.call(baseJSObject + "['" + this.sID + "']._onfailure", '', e.info.level, e.info.code);
         return;
       }

@@ -564,7 +558,6 @@
       // @see http://www.actionscript.org/forums/archive/index.php3/t-159194.html
       if (e.info.code == "NetStream.Play.Stop") {

-        writeDebug('NetStream.Play.Stop - oSound.useNetstream='+this.useNetstream);
         if (!this.useNetstream) {
           // finished playing
           // this.didFinish = true; // will be reset via JS callback
@@ -594,7 +587,7 @@

           // Call pause in JS.  This will call back to us to pause again, but
           // that should be harmless.
-          writeDebug('Pausing song because buffer is now full.');
+          writeDebug('Pausing song because buffer is full');
           ExternalInterface.call(baseJSObject + "['" + this.sID + "'].pause", false);
         }


Don't use parentChanged() to track whether we're onscreen or not,
it's unreliable.

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

--- src/as/com/threerings/flex/ChatControl.as
+++ src/as/com/threerings/flex/ChatControl.as
@@ -68,6 +68,9 @@
             _txt.height = height;
             _but.height = height;
         }
+
+        addEventListener(Event.ADDED_TO_STAGE, handleAddRemove);
+        addEventListener(Event.REMOVED_FROM_STAGE, handleAddRemove);
     }

     /**
@@ -104,26 +107,6 @@
         _txt.setStyle("backgroundColor", color);
     }

-    override public function parentChanged (p :DisplayObjectContainer) :void
-    {
-        super.parentChanged(p);
-
-        if (p != null) {
-            // set up any already-configured text
-            _txt.text = _curLine;
-
-            // request focus
-            callLater(function () :void {
-                _txt.setFocus();
-            });
-            _controls.push(this);
-
-        } else {
-            _curLine = _txt.text;
-            ArrayUtil.removeAll(_controls, this);
-        }
-    }
-
     /**
      * Handles FlexEvent.ENTER and the action from the send button.
      */
@@ -142,6 +125,27 @@

         // if there was no error, clear the entry area in prep for the next entry event
         _txt.text = "";
+    }
+
+    /**
+     * Handles Event.ADDED_TO_STAGE and Event.REMOVED_FROM_STAGE.
+     */
+    protected function handleAddRemove (event :Event) :void
+    {
+        if (event.type == Event.ADDED_TO_STAGE) {
+            // set up any already-configured text
+            _txt.text = _curLine;
+
+            // request focus
+            callLater(function () :void {
+                _txt.setFocus();
+            });
+            _controls.push(this);
+
+        } else {
+            _curLine = _txt.text;
+            ArrayUtil.removeAll(_controls, this);
+        }
     }

     /** Our client-side context. */


M Minor code cleanup

M Minor code cleanup

--- src/aerys/minko/render/shader/part/coordinates/SphericalCoordinatesShaderPart.as
+++ src/aerys/minko/render/shader/part/coordinates/SphericalCoordinatesShaderPart.as
@@ -54,17 +54,22 @@
 			var phi		: SFloat;
 			var theta	: SFloat;

-			phi = divide(z, r);
-			theta = divide(x, sqrt(dotProduct2(xy, xy)));
+			phi		= divide(z, r);
+			theta	= divide(x, sqrt(dotProduct2(xy, xy)));

 			// group phi and theta to compute acos, as it is an expensive operation
-			var tmpFloat2 : SFloat = float2(phi, theta);
-			tmpFloat2 = acos(tmpFloat2, 0);
+			var tmpFloat2 : SFloat = acos(float2(phi, theta), 0);

-			phi = tmpFloat2.x;
-			theta = tmpFloat2.y;
+			phi			= tmpFloat2.x;
+			theta		= tmpFloat2.y;

-			theta = add(multiply(ySup0, theta), multiply(subtract(1, ySup0), subtract(2 * Math.PI, theta)));
+			theta = add(
+				multiply(ySup0, theta),
+				multiply(
+					subtract(1, ySup0),
+					subtract(2 * Math.PI, theta)
+				)
+			);

 			return float3(r, phi, theta);
 		}


Fixed minor dmodule first-frame graphics bug

--- src/Displays/DModule.as
+++ src/Displays/DModule.as
@@ -70,6 +70,7 @@
 			if (module.getConfiguration() && module.configurableInPlace && !module.FIXED && U.state.level.canEditModules)
 				editButton = new EditButton(this);

+			getColor();
 			updatePosition();
 		}


added elementNames() to XMLList

added elementNames() to XMLList

--- frameworks/projects/XML/src/main/flex/XMLList.as
+++ frameworks/projects/XML/src/main/flex/XMLList.as
@@ -255,7 +255,8 @@
 			while(i<len)
 				appendChild(list[i++]);

-//			for each(item in list)
+//			var xmlList:XMLList = list;
+//			for each(item in xmlList)
 //				appendChild(item);

 			return this;
@@ -337,6 +338,17 @@
 				if(list.length())
 					retVal.concat(list);
 			}
+			return retVal;
+		}
+
+		COMPILE::JS
+		public function elementNames():Array
+		{
+			var retVal:Array = [];
+			var i:int=0;
+			var len:int = _xmlArray.length;
+			while(i<len)
+				retVal.push(i++);
 			return retVal;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10479
Author:   jimurphy@adobe.com
Date:     2009-09-22T00:33:54.511456Z

Log Message:
-----------
Merged gumbo_beta2 revisions 10396,10434,10463,10472 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/CompcPreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Box.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/SymbolTable.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/MxmlDocument.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Tile.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/HBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/MxmlCompiler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Canvas.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/VBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/CompilerAPI.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>

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

--- frameworks/projects/mx/src/mx/containers/VBox.as
+++ frameworks/projects/mx/src/mx/containers/VBox.as
@@ -37,6 +37,7 @@
 [IconFile("VBox.png")]

 [Alternative(replacement="spark.components.VGroup", since="4.0")]
+[Alternative(replacement="spark.components.Border", since="4.0")]

 /**
  *  The Halo VBox container lays out its children in a single vertical column.


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/utils/HashUtil.as
+++ frameworks/projects/rpc/src/mx/utils/HashUtil.as
@@ -0,0 +1,87 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.utils
+{
+
+[ExcludeClass]
+
+/**
+ * @private
+ *
+ *  Provides several hash implementations, RS, AP, etc.
+ */
+public class HashUtil
+{
+
+   public static function rsHash(value:String):Number
+   {
+      var a:int = 63689;
+      var b:int = 378551;
+      var result:Number;
+
+      for (var i:int = 0; i < value.length; i++)
+      {
+         result = (result * a) + value.charCodeAt(i);
+         a = a * b;
+      }
+
+      return (result & 0x7FFFFFFF);
+   }
+
+   public static function jsHash(value:String):Number
+   {
+      var result:Number = 1315423911;
+
+      for (var i:int = 0; i < value.length; i++)
+      {
+         result ^= ((result << 5) + value.charCodeAt(i) + (result >> 2));
+      }
+
+      return (result & 0x7FFFFFFF);
+   }
+
+   public static function apHash(value:String):Number
+   {
+      var result:int;
+
+      for (var i:int = 0; i < value.length; i++)
+      {
+
+         if ((i & 1) == 0)
+         {
+            result ^= ((result << 7)^value.charCodeAt(i)^(result >> 3));
+         }
+         else
+         {
+            result ^= (~((result << 11)^value.charCodeAt(i)^(result >> 5)));
+         }
+
+      }
+
+      return (result & 0x7FFFFFFF);
+
+   }
+
+   public static function dbjHash(value:String):Number
+   {
+      var result:Number = 5381;
+
+      for (var i:int = 0; i < value.length; i++)
+      {
+         result = ((result << 5) + result) + value.charCodeAt(i);
+      }
+
+      return (result & 0x7FFFFFFF);
+   }
+}
+
+}


strict sort

strict sort

--- source/com/kemsky/Stream.as
+++ source/com/kemsky/Stream.as
@@ -1488,7 +1488,7 @@
          * </pre>
          * @internal mutable
          */
-        public function sortOn(names:Object, options:uint = 0):*
+        public function sortOn(names:Object, options:Object = null):*
         {
             var result:* = source.sortOn.apply(null, [names, options]);


Fix the asdocs here. But wait, why is this even showing up in the SDK docs?

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

--- src/as/com/threerings/util/StreamableHashMap.as
+++ src/as/com/threerings/util/StreamableHashMap.as
@@ -30,8 +30,9 @@
 import com.threerings.util.maps.ForwardingMap;

 /**
- * A {@link HashMap} that can be sent over the wire, bearing in mind that all keys and values must
- * be primitives or implement {@link Streamable}.
+ * A @see com.threerings.util.Map that can be sent over the wire,
+ * bearing in mind that all keys and values must
+ * be primitives or implement @see com.threerings.io.Streamable
  */
 public class StreamableHashMap extends ForwardingMap
     implements Streamable


Movie.frames -> Movie.numFrames

Movie.frames -> Movie.numFrames

--- runtime/src/main/as/flump/display/Movie.as
+++ runtime/src/main/as/flump/display/Movie.as
@@ -68,7 +68,7 @@
     public function get frame () :int { return _frame; }

     /** @return the number of frames in the movie. */
-    public function get frames () :int { return _numFrames; }
+    public function get numFrames () :int { return _numFrames; }

     /** @return true if the movie is currently playing. */
     public function get isPlaying () :Boolean { return _playing; }


updated doc

updated doc

--- WeaveData/src/weave/data/KeySets/ColumnDataFilter.as
+++ WeaveData/src/weave/data/KeySets/ColumnDataFilter.as
@@ -36,8 +36,10 @@
 		public const column:DynamicColumn = newLinkableChild(this, DynamicColumn, _resetKeyLookup);

 		/**
-		 * An Array of Numbers, Strings and/or objects specifying numeric ranges.
-		 * Range objects contain one value named min/minInclusive/minExclusive and one value named max/maxInclusive/maxExclusive.
+		 * An Array of Numbers, Strings and/or Range objects specifying numeric ranges.
+		 * A Range object contains two properties: "min" and "max".
+		 * Alternatively, you can specify "minInclusive" or "minExclusive" in place of "min"
+		 * and "minInclusive" or "maxExclusive" in place of "max".
 		 */
 		public const values:LinkableVariable = registerLinkableChild(this, new LinkableVariable(Array), _resetKeyLookup);


fixed compiler warning

fixed compiler warning

--- WeaveData/src/weave/graphs/AbstractGraphAlgorithm.as
+++ WeaveData/src/weave/graphs/AbstractGraphAlgorithm.as
@@ -368,6 +368,7 @@
 			if (rId != _rId)
 				return;

+			var i:int;
 			var node:IGraphNode;
 			var constrainingBounds:IBounds2D = (token as RToken).bounds;

@@ -378,7 +379,7 @@
 				return;
 			}
 			var layoutResult:Object = {};
-			for (var i:int = 0; i<array.length; i++)
+			for (i = 0; i<array.length; i++)
 			{
 				var subResult:Object = array[i] as Object;
 				layoutResult[subResult.name] = subResult.value as Array;
@@ -391,7 +392,7 @@
 				var localKeyNames:Array = layoutResult["V(weaveGraph)$name"];
 				var resultLocations:Array = layoutResult["weaveGraphLayout"];
 				var vertexes:Array = layoutResult["vertexes"];
-				for (var i:int = 0; i < resultLocations.length; ++i)
+				for (i = 0; i < resultLocations.length; ++i)
 				{
 					// get the key and node
 					var key:IQualifiedKey = WeaveAPI.QKeyManager.getQKey(_nodeKeyType, localKeyNames[i]);


+ 更详细的注释

+ 更详细的注释

--- common1/src/export.as
+++ common1/src/export.as
@@ -2,7 +2,14 @@
 {

 	/**
-	 * 如果 key 不为 condition 则从 from 导出 key 到 to
+	 * 导出 from 对象中指定字段的值到 to 对象中，通过设置 condition 可以避免特定的值被导出
+	 *

+	 * var src = {fieldA: null, fieldB: "b"}
+	 * var dest = {};
+	 * export(src, dest, "fieldA", null);
+	 * export(src, dest, "fieldB", null);
+	 * // dest 的值是 {fieldB: "b"}，因为 fieldA 为 null
+	 *

 	 */
 	[Inline]
 	public function export(from:Object, to:Object, key:String, condition:*):void


A encodeCustomObject
A decodeCustomObject

git-svn-id: 3704838867447408e01268abee7e32a5bd8c3d03@8 5cda2b45-c24c-6f34-eaa9-e0910a1cbe04

--- src/aerys/qark/Qark.as
+++ src/aerys/qark/Qark.as
@@ -1,9 +1,9 @@
 package aerys.qark
 {
-	import flash.net.FileReference;
 	import flash.utils.ByteArray;
-	import flash.utils.Dictionary;
 	import flash.utils.describeType;
+	import flash.utils.getDefinitionByName;
+	import flash.utils.getQualifiedClassName;

 	public class Qark
 	{
@@ -15,6 +15,7 @@
 		private static const FLAG_UTF_STRING	: int		= 5;
 		private static const FLAG_BYTES			: int		= 6;
 		private static const FLAG_BOOLEAN		: int		= 7;
+		private static const FLAG_CUSTOM		: int		= 8;

 		private static const ENCODERS		: Array		= [encodeObject,
 														   encodeArray,
@@ -23,7 +24,8 @@
 														   encodeString,
 														   encodeUTFString,
 														   encodeBytes,
-														   encodeBoolean];
+														   encodeBoolean,
+														   encodeCustomObject];

 		private static const DECODERS		: Array		= [decodeObject,
 														   decodeArray,
@@ -32,7 +34,8 @@
 														   decodeString,
 														   decodeUTFString,
 														   decodeBytes,
-														   decodeBoolean];
+														   decodeBoolean,
+														   decodeCustomObject];

 		private static function getTypeFlag(source : *) : int
 		{
@@ -48,8 +51,10 @@
 				return FLAG_BYTES;
 			if (source is Boolean)
 				return FLAG_BOOLEAN;
-
-			return FLAG_OBJECT;
+			if (getQualifiedClassName(source) == "Object")
+				return FLAG_OBJECT;
+
+			return FLAG_CUSTOM;
 		}

 		public static function encode(source : *) : ByteArray
@@ -99,21 +104,6 @@
 				++length;
 			}

-			if (length == 0)
-			{
-				var variables : XMLList = describeType(source).variable;
-
-				for each (var variable : XML in variables)
-				{
-					propertyName = variable.@name;
-
-					encodeString(propertyName, target);
-					encodeRecursive(source[propertyName], target);
-
-					++length;
-				}
-			}
-
 			var stop : int = target.position;

 			target.position = start;
@@ -121,15 +111,16 @@
 			target.position = stop;
 		}

-		private static function decodeObject(source : ByteArray) : Object
-		{
-			var object 	: Object 	= new Object();
+		private static function decodeObject(source : ByteArray, target : Object = null) : Object
+		{
 			var length	: int		= source.readShort();

+			target ||= new Object();
+
 			for (; length > 0; --length)
-				object[decodeString(source)] = decodeRecursive(source);
-
-			return object;
+				target[decodeString(source)] = decodeRecursive(source);
+
+			return target;
 		}

 		private static function encodeArray(source : Array, target : ByteArray) : void
@@ -227,5 +218,32 @@
 		{
 			return source.readByte() == 1;
 		}
+
+		private static function encodeCustomObject(source : Object, target : ByteArray) : void
+		{
+			var variables : XMLList = describeType(source).variable;
+			var object	: Object = new Object();
+
+			encodeString(getQualifiedClassName(source), target);
+
+			for each (var variable : XML in variables)
+			{
+				var propertyName : String = variable.@name;
+
+				object[propertyName] = source[propertyName];
+			}
+
+			encodeObject(object, target);
+		}
+
+		private static function decodeCustomObject(source : ByteArray) : Object
+		{
+			var className : String = decodeString(source);
+			var instance : Object = new (getDefinitionByName(className))();
+
+			decodeObject(source, instance);
+
+			return instance;
+		}
 	}
 }


Cherry-picked from pre-merge: Add sID to "Ignoring Buffer.Empty..." message so we can identify the track.

--- src/SoundManager2_AS3.as
+++ src/SoundManager2_AS3.as
@@ -729,7 +729,7 @@
         // Ignore this event if we are more than 5 seconds from the end of the song.
         if (e.info.code == "NetStream.Buffer.Empty" && (oSound.lastNetStatus == 'NetStream.Play.Stop' || oSound.lastNetStatus == 'NetStream.Buffer.Flush')) {
           if (oSound.duration && (oSound.ns.time * 1000) < (oSound.duration - 5000)) {
-            writeDebug('Ignoring Buffer.Empty because this is too early to be the end of the stream! (time: '+(oSound.ns.time*1000)+', duration: '+oSound.duration+')');
+            writeDebug('Ignoring Buffer.Empty because this is too early to be the end of the stream! (sID: '+oSound.sID+', time: '+(oSound.ns.time*1000)+', duration: '+oSound.duration+')');
           } else {
             oSound.didJustBeforeFinish = false; // reset
             oSound.finished = true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/framework/src/mx/containers/utilityClasses/IConstraintLayout.as
+++ frameworks/projects/framework/src/mx/containers/utilityClasses/IConstraintLayout.as
@@ -28,6 +28,11 @@
  *  @see mx.containers.utilityClasses.ConstraintRow;
  *  @see mx.modules.Module;
  *  @see mx.styles.metadata.AnchorStyles;
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IConstraintLayout
 {
@@ -47,6 +52,11 @@
 	 *  indices increase from left to right.
 	 *
 	 *  @default []
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function get constraintColumns():Array /* of ConstraintColumn */;

@@ -65,6 +75,11 @@
 	 *  indices increase from top to bottom.
 	 *
 	 *  @default []
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function get constraintRows():Array /* of ConstraintRow */;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19737
Author:   jasonsj@adobe.com
Date:     2011-01-12T22:13:58.979077Z

Log Message:
-----------
SDK-28851 Symbol was added twice when changing enabled state
SDK-28159 Account for empty and null title in ActionBar

Removed unused textAlign code in ButtonSkinBase
Removed B-feature code for focusColor in MobileSkin

QE notes: None
Doc notes:
Bugs:
SDK-28851 CheckBox icon not properly updated when iconPlacement=right, checkbox is disabled and style changed
SDK-28159 ActionBar titleDisplay should measure the same for null and empty title
Reviewer: jszeto
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as
@@ -33,7 +33,6 @@
 use namespace mx_internal;

 // FIXME (jasonsj): do we need blendMode handling like Group?
-// FIXME (jasonsj): B-feature for IFocusColorSkin may be removed
 /**
  *  ActionScript-based skin for mobile applications. This skin is the
  *  base class for all of the ActionScript mobile skins. As an optimization,
@@ -44,7 +43,7 @@
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
-public class MobileSkin extends UIComponent implements IHighlightBitmapCaptureClient /*, IFocusColorSkin*/
+public class MobileSkin extends UIComponent implements IHighlightBitmapCaptureClient
 {
     //--------------------------------------------------------------------------
     //
@@ -133,8 +132,6 @@
      */
     protected var useSymbolColor:Boolean = false;

-    private var _focus:Boolean = false;
-
     //----------------------------------
     //  applicationDPI
     //----------------------------------
@@ -195,29 +192,6 @@
             commitCurrentState();
         }
     }
-
-    // FIXME (jasonsj): B-feature for IFocusColorSkin may be removed
-    public function get isFocusColorSupported():Boolean
-    {
-        return true;
-    }
-
-    // FIXME (jasonsj): B-feature for IFocusColorSkin may be removed
-    public function get useFocusColor():Boolean
-    {
-        return _focus;
-    }
-
-    // FIXME (jasonsj): B-feature for IFocusColorSkin may be removed
-    public function set useFocusColor(value:Boolean):void
-    {
-        if (_focus != value)
-        {
-            _focus = value;
-            invalidateDisplayList();
-        }
-    }
-

     /**
      *  Called whenever the currentState changes. Skins should override
@@ -263,7 +237,7 @@
     {
         super.updateDisplayList(unscaledWidth, unscaledHeight);

-        if (useChromeColor || _focus)
+        if (useChromeColor)
         {
             graphics.clear();

@@ -371,10 +345,9 @@
     }

     /**
-     * Gets the value of the chromeColor style property. If the skin has focus, then this method gets
-     * the value of the focusColor style property.
-     *
-     *  @return The value of the chromeColor or focusColor style property.
+     *  Gets the value of the chromeColor style property.
+     *
+     *  @return The value of the chromeColor style property.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -383,8 +356,7 @@
      */
     protected function getChromeColor():uint
     {
-        var chromeColorStyle:String = (_focus) ? "focusColor" : "chromeColor";
-        return getStyle(chromeColorStyle);
+        return getStyle("chromeColor");
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 4600
Author:   jszeto@adobe.com
Date:     2009-01-20T21:11:33.133710Z

Log Message:
-----------
Flex SDK - Move style metadata from base class down to component classes

Previously, all spark and text styles were defined on FxComponent even though not every component supports all of those styles. So I have moved each style to the top-most base class where the style will apply to all descendant classes of that base class.

This is the set of styles that were added to the various classes:

baseColor
color
focusColor
symbolColor
selectionColor
contentBackgroundColor
rollOverColor
alternatingItemColors
basic text styles
advanced text styles

Here are some details about the implementation:
- baseColor was added to FxComponent because every component and container supports it
- FxContainer and GroupBase are containers, so their children can potentially support any of the styles. Thus the container classes support all of the styles indirectly.
- FxDataContainer doesn't support all of the styles because its subclasses (FxButtonBar, FxList) don't support all styles.
- FxList supports selectionColor, but not inactiveSelectionColor or unfocusedSelectionColor. All other components that support selectionColor, support the other two styles, and thus include styles/metadata/SelectionFormatTextStyles.as
- GroupBase contains the style declarations that have the full ASDoc. All other declarations use the @copy keyword to reference the asdoc from GroupBase.

QE Notes: Update tests to remove references to styles that are no longer allowed on various components/FxButton.as
Doc Notes: Write the ASDoc comments for the style declarations in GroupBase
Bugs: n/a
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxCheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -38,14 +38,10 @@
 //  Styles
 //--------------------------------------

-include "../../styles/metadata/BasicContainerFormatTextStyles.as"
-include "../../styles/metadata/AdvancedContainerFormatTextStyles.as"
-include "../../styles/metadata/BasicParagraphFormatTextStyles.as"
-include "../../styles/metadata/AdvancedParagraphFormatTextStyles.as"
-include "../../styles/metadata/BasicCharacterFormatTextStyles.as"
-include "../../styles/metadata/AdvancedCharacterFormatTextStyles.as"
-include "../../styles/metadata/SelectionFormatTextStyles.as"
-include "../../styles/metadata/SparkColorStyles.as"
+/**
+ *  @copy mx.components.baseClasses.GroupBase#baseColor
+ */
+[Style(name="baseColor", type="uint", format="Color", inherit="yes")]

 /**
  *  Name of the skin class to use for this component. The skin must be a class that extends


Transferred from the Adobe Open Source Subversion Repository

Revision: 3534
Author:   smgilson@adobe.com
Date:     2008-10-09T12:26:47.131069Z

Log Message:
-----------
Update ASDoc comments

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -65,7 +65,7 @@
  *  <MyComponent skinZZ="my.skins.MyComponentSkin"/>

  *
  *
- *  @see mx.core.Skin
+ *  @see mx.components.Skin
  */
 public class FxComponent extends UIComponent
 {
@@ -109,8 +109,8 @@

     private function set _skinObject(value:Skin):void
     {
-    	if (value === __skinObject)
-    	   return;
+        if (value === __skinObject)
+           return;

         __skinObject = value;
         dispatchEvent(new Event("skinObjectChanged"));
@@ -243,6 +243,9 @@
      *  Sets the new state of the skin.
      *  A subclass of FxComponent can override this method to add
      *  extra validation logic.
+     *
+     *
You do not call this method directly.
+     *  Flex calls it in response to a call to the invalidateSkinState() method.

      *
      *  @param newState A string specifying the name of the state to set.
      */
@@ -257,17 +260,17 @@
     //
     //--------------------------------------------------------------------------

-	/**
+    /**
      *  Load the skin for the component.
      *  You do not call this method directly.
      *  Flex calls it automatically when it calls
      *  the UIComponent.commitProperties() method.
      *  Typically, a subclass of FxComponent does not override this method.
-	 *
+     *
      *
This method instantiates the skin for the component,
      *  adds the skin as a child of the component,
      *  resolves all part associations for the skin, and calls the skinLoaded() method.

-	 */
+     */
     protected function loadSkin():void
     {
         // Factory
@@ -304,7 +307,7 @@
                 }
                 catch (err:Error) {}
             }
-
+
             addChild(skinObject);
         }
         else
@@ -353,17 +356,17 @@
         }
     }

-	/**
+    /**
      *  Attach behaviors to the skin object.
      *  You do not call this method directly.
      *  Flex calls it automatically when it calls the loadSkin() method.
-	 *
+     *
      *
A subclass of FxComponent must override this method to
      *  attach behaviors to the skin object.

      *
      *
Override the partAdded() method to attach behaviors to
      *  an individual part of the skin.

-	 */
+     */
     protected function skinLoaded():void
     {
         skinObject.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, skin_propertyChangeHandler);
@@ -372,13 +375,13 @@
         // Use partAdded for individual part behaviors
     }

-	/**
+    /**
      *  Remove behavior from the skin object.
      *  You do not call this method directly.
      *  Flex calls it automatically when it calls the unloadSkin() method.
-	 *
+     *
      *
This method should be overridden by subclasses of FxComponent.

-	 */
+     */
     protected function unloadingSkin():void
     {
         skinObject.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, skin_propertyChangeHandler);
@@ -495,11 +498,12 @@
     private var dynamicPartsCache:Object;

     /**
-     *  Create an instance of a dynamic part.
-     *  Dynamic parts should always be instantiated by this method,
+     *  Create an instance of a dynamic skin part.
+     *  Dynamic skin parts should always be instantiated by this method,
      *  rather than directly by calling the newInstance() method on the factory.
      *  This method creates the part, but does not add it to the display list.
-     *  The componet must call UIComponent.addItem()
+     *  The componet must call the Group.addItem() method, or the appropriate
+     *  method to add the skin part to the display list.
      *
      *  @param partName The name of the part.
      *
@@ -655,10 +659,16 @@
     // the component as an argument to derive the systemManager instead.

     /**
-     * Add handlers to both the systemManager and stage objects to track this
-     * event both on and off the stage. If offstageHandler is
-     * null or is not supplied, onstagehandler will
-     * be used as the handler for both situations.
+     * Add handlers to both the SystemManager and stage objects to track this
+     * event both on and off the stage.
+     *
+     *  @param eventType The event type to handle.
+     *
+     *  @param onstageHandler The handler added to the SystemManager object.
+     *
+     *  @param offstageHandler The handler added to the stage.
+     *  If null or not specified, the onstagehandler
+     *  is used.
      */
     protected function addSystemHandlers(eventType:String, onstageHandler:Function,
            offstageHandler:Function = null):void
@@ -673,10 +683,15 @@

     /**
      * Removes handlers from both the systemManager and stage objects for this
-     * event. If offstageHandler is
-     * null or is not supplied, onstagehandler will
-     * be used as the handler for both situations. Parameters to this function
-     * should match the parameters supplied to addSystemHandlers.
+     * event.
+     * Parameters passed to this method should match the
+     * parameters supplied to the corresponding addSystemHandlers() method.
+     *
+     *  @param eventType The event type to handle.
+     *
+     *  @param onstageHandler The handler added to the SystemManager object.
+     *
+     *  @param offstageHandler The handler added to the stage.
      */
     protected function removeSystemHandlers(eventType:String, onstageHandler:Function,
            offstageHandler:Function = null):void


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/AnimatePropertyInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/AnimatePropertyInstance.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.effects.effectClasses
 {


Repeated String Conditional Syllogism Fix

--- Arguments/src/Model/SimpleStatementModel.as
+++ Arguments/src/Model/SimpleStatementModel.as
@@ -239,6 +239,11 @@
 					}
 				}
 				else{
+					//var rex:RegExp = /[a-zA-Z0-9]/g;
+					if(simpleStatement.parent.firstReason == true && simpleStatement.parent.argumentTypeModel!=null)
+						if(simpleStatement.parent.statementFunction==StatementModel.STATEMENT && simpleStatement.parent.argumentTypeModel.logicClass==AGORAParameters.getInstance().COND_SYLL && simpleStatement.text == simpleStatement.parent.statement.text && (text == "" || text == " "))
+							if(simpleStatement.parent.argumentTypeModel.reasonModels.length<2)
+								continue;
 					simpleStatement.text = text;

 				}


Update inspector window right after creation to fix bugged layout.

--- Bin/Data/Scripts/Editor/EditorInspectorWindow.as
+++ Bin/Data/Scripts/Editor/EditorInspectorWindow.as
@@ -119,6 +119,8 @@
     attributeInspectorWindow.opacity = uiMaxOpacity;
     attributeInspectorWindow.BringToFront();

+    UpdateAttributeInspector();
+
     SubscribeToEvent(attributeInspectorWindow.GetChild("CloseButton", true), "Released", "HideAttributeInspectorWindow");
     SubscribeToEvent(attributeInspectorWindow, "LayoutUpdated", "HandleWindowLayoutUpdated");
 }