Transferred from the Adobe Open Source Subversion Repository

Revision: 3499
Author:   rfrishbe@adobe.com
Date:     2008-10-06T23:57:04.003486Z

Log Message:
-----------
Code cleanup:

1.  Remove IDisplayObjectElement and IAssignableDisplayObjectElement.  No one was actually using these interfaces...a few classes were implementing them though.

2.  Big ASDoc comment scrub for Group, DataGroup, and GroupBase.  Fixed some ASDoc in LayoutBase, IViewport, and ResizeMode.

3.  Spit and finish on Group.  No more variables or parameters typed as "*".  Got the content APIs in-line with Flash's DisplayObjectContainer, which means exceptions are now thrown where appropriate.

4.  Fixed a bug in DataGround where graphic items with item renderers had trouble in itemRemoved() (SDK-17175)

QE: Yes - Please revamp the excluded test cases to look for the new exceptions.
Doc: Yes
Bugs: SDK-17175
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/ResizeMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/GroupBase.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/IDisplayObjectElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/IAssignableDisplayObjectElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/intf/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -80,7 +80,11 @@
     //----------------------------------

     private var _layout:LayoutBase;  // initialized in the ctor
-
+
+    /**
+     *  The layout object for this container.  This object determines
+     *  how the items are laid out.
+     */
     public function get layout():LayoutBase
     {
         return _layout;
@@ -103,6 +107,20 @@

     private var _resizeMode:uint = ResizeMode._NORMAL_UINT;

+    /**
+     *  The ResizeMode for this container.  If the resize mode
+     *  is set to ResizeMode.NORMAL, resizing is done by laying
+     *  out the children with our new width and height.  If the
+     *  resize mode is set to ResizeMode.SCALE, all of the children
+     *  will keep their unscaled width and height and the children
+     *  will be scaled to change size.
+     *
+     *
For more info, check out the ResizeMode class.

+     *
+     * @default ResizeMode.NORMAL
+     *
+     * @see flex.core.ResizeMode
+     */
     public function get resizeMode():String
     {
         return ResizeMode.toString(_resizeMode);
@@ -132,7 +150,7 @@
     }

     /**
-     *  @inheritDoc
+     *  @private
      */
     override public function setActualSize(w:Number, h:Number):void
     {
@@ -202,7 +220,7 @@
     /**
      *  Override so that we can return correct width when in scale mode.
      */
-   [PercentProxy("percentWidth")]
+    [PercentProxy("percentWidth")]
     override public function get width():Number
     {
         if (_resizeMode == ResizeMode._SCALE_UINT)
@@ -214,7 +232,7 @@
     /**
      *  Override so that we can return correct height when in scale mode.
      */
-   [PercentProxy("percentHeight")]
+    [PercentProxy("percentHeight")]
     override public function get height():Number
     {
         if (_resizeMode == ResizeMode._SCALE_UINT)
@@ -224,14 +242,17 @@
     }

     /**
-     *  @inheritDoc
-     */
+     *  @private
+     */
     override protected function skipMeasure():Boolean
     {
         // We never want to skip measure, if we resize by scaling
         return _resizeMode == ResizeMode._SCALE_UINT ? false : super.skipMeasure();
     }
-
+
+    /**
+     *  @private
+     */
     override protected function commitProperties():void
     {
         super.commitProperties();
@@ -275,6 +296,9 @@
         }
     }

+    /**
+     *  @private
+     */
     override protected function measure():void
     {
         super.measure();
@@ -283,6 +307,9 @@
             _layout.measure();
     }

+    /**
+     *  @private
+     */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
         if (_resizeMode == ResizeMode._SCALE_UINT)
@@ -309,6 +336,9 @@

     [Bindable]

+    /**
+     *  @copy flex.intf.IViewport#horizontalScrollPosition
+     */
     public function get horizontalScrollPosition():Number
     {
         return (layout) ? layout.horizontalScrollPosition : 0;
@@ -325,7 +355,10 @@
     //----------------------------------

     [Bindable]
-
+
+    /**
+     *  @copy flex.intf.IViewport#verticalScrollPosition
+     */
     public function get verticalScrollPosition():Number
     {
         return (layout) ? layout.verticalScrollPosition : 0;
@@ -341,11 +374,17 @@
     //  horizontal,verticalScrollPositionDelta
     //----------------------------------

+    /**
+     *  @copy flex.intf.IViewport#horizontalScrollPositionDelta
+     */
     public function horizontalScrollPositionDelta(unit:uint):Number
     {
         return (layout) ? layout.horizontalScrollPositionDelta(unit) : 0;
     }

+    /**
+     *  @copy flex.intf.IViewport#verticalScrollPositionDelta
+     */
     public function verticalScrollPositionDelta(unit:uint):Number
     {
         return (layout) ? layout.verticalScrollPositionDelta(unit) : 0;
@@ -367,8 +406,7 @@
     [Inspectable(category="General")]

     /**
-     * The positive extent of this Group's content, relative to the 0,0
-     * origin, along the X axis.
+     *  @copy flex.core.IViewport#contentWidth
      */
     public function get contentWidth():Number
     {
@@ -394,8 +432,7 @@
     [Inspectable(category="General")]

     /**
-     * The positive extent of this Group's content, relative to the 0,0
-     * origin, along the Y axis.
+     *  @copy flex.core.IViewport#contentWidth
      */
     public function get contentHeight():Number
     {
@@ -433,6 +470,9 @@
     //  clipContent
     //----------------------------------

+    /**
+     *  @copy flex.intf.IViewport#clipContent
+     */
     public function get clipContent():Boolean
     {
         return (layout) ? layout.clipContent : false;
@@ -467,6 +507,9 @@
     // This is the same as UIComponent's focusPane getter/setter but it uses
     // super.add/removeChild.

+    /**
+     *  @private
+     */
     override public function get focusPane():Sprite
     {
         return _focusPane;
@@ -507,8 +550,8 @@
     //--------------------------------------------------------------------------

      /**
-     *  The number of layout items in this Group. Typically this is the same
-     *  as the number of items in the Group.
+     *  The number of layout items in this container. Typically this is the same
+     *  as the number of items in the container.
      */
     public function get numLayoutItems():int
     {
@@ -516,11 +559,11 @@
     }

     /**
-     *  Gets the nth layout item in the Group. For visual items, the
+     *  Gets the nth layout item in the container. For visual items, the
      *  layout item is the item itself. For data items, the layout item is the
      *  item renderer instance that is associated with the item.
      *
-     *  @param index The index of the item to retrieve.
+     *  @param index The index of the layout item to retrieve.
      *
      *  @return The layout item at the specified index.
      */
@@ -575,6 +618,9 @@
     private var maskTypeChanged:Boolean;
     private var originalMaskFilters:Array;

+    /**
+     *  Documentation is not currently available.
+     */
     public function get maskType():String
     {
         return _maskType;
@@ -598,7 +644,7 @@
     //--------------------------------------------------------------------------

     /**
-     *  @inheritDoc
+     *  Documentation is not currently available.
      */
     public function elementChanged(e:IGraphicElement):void
     {
@@ -608,7 +654,7 @@
     }

     /**
-     *  @inheritDoc
+     *  Documentation is not currently available.
      */
     public function elementSizeChanged(e:IGraphicElement):void
     {
@@ -618,7 +664,7 @@
     }

     /**
-     * @inheritDoc
+     *  Documentation is not currently available.
      */
     public function elementLayerChanged(e:IGraphicElement):void
     {
@@ -629,7 +675,7 @@
     }

     /**
-     *  @inheritDoc
+     *  Documentation is not currently available.
      */
     public function get parentGraphic():Graphic
     {
@@ -637,7 +683,7 @@
     }

     /**
-     *  @inheritDoc
+     *  Documentation is not currently available.
      */
     public function addMaskElement(mask:DisplayObject, target:IGraphicElement):void
     {
@@ -645,7 +691,7 @@
     }

     /**
-     *  @inheritDoc
+     *  Documentation is not currently available.
      */
     public function removeMaskElement(mask:DisplayObject, target:IGraphicElement):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@1284125 13f79535-47bb-0310-9956-ffa450edef68

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


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

--- frameworks/projects/framework/src/mx/core/IRepeaterClient.as
+++ frameworks/projects/framework/src/mx/core/IRepeaterClient.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.core
 {


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

--- frameworks/projects/rpc/src/mx/messaging/MessageResponder.as
+++ frameworks/projects/rpc/src/mx/messaging/MessageResponder.as
@@ -0,0 +1,302 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.messaging
+{
+
+import flash.events.TimerEvent;
+import flash.net.Responder;
+import flash.utils.Timer;
+import mx.messaging.messages.IMessage;
+import mx.messaging.messages.ErrorMessage;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+
+[ResourceBundle("messaging")]
+
+/**
+ *  The MessageResponder class handles a successful result or fault from a message
+ *  destination. For each message that a Channel sends, the Channel creates a
+ *  MessageResponder to handle the result. Upon a response, the Channel will
+ *  invoke either the result() or status() callback
+ *  on the MessageResponder. MessageResponder subclasses should override these
+ *  methods to perform any necessary processing. For every response, whether a
+ *  successful result or an error, the MessageResponder should invoke
+ *  acknowledge() on its agent. If the response was a fault, the
+ *  MessageResponder should also invoke fault() on its agent.
+ */
+public class MessageResponder extends Responder
+{
+	//--------------------------------------------------------------------------
+	//
+	// Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructs a MessageResponder to handle the response for the specified
+     *  Message for the specified MessageAgent.
+     *
+     *  @param  agent The MessageAgent sending the Message.
+     *
+     *  @param  message The Message being sent.
+     *
+     *  @param channel The Channel used to send.
+     */
+    public function MessageResponder(agent:MessageAgent, message:IMessage,
+                                                        channel:Channel = null)
+    {
+        super(result, status);
+
+        _agent = agent;
+        _channel = channel;
+        _message = message;
+        _requestTimedOut = false;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Flag indicating whether the request corresponding to this responder
+	 *  has timed out. This is used by responders that cannot close
+	 *  their underlying connection (NetConnection for instance) so they must
+	 *  instead ignore any response that is returned after the request timeout
+	 *  is reached.
+	 */
+	private var _requestTimedOut:Boolean;
+
+	/**
+	 *  @private
+	 *  Timer used to trigger a request timeout.
+	 */
+	private var _requestTimer:Timer;
+
+    /**
+     * @private
+     */
+    private var resourceManager:IResourceManager =
+									ResourceManager.getInstance();
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  agent
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _agent:MessageAgent;
+
+    /**
+     *  Provides access to the MessageAgent that sent the message.
+     */
+    public function get agent():MessageAgent
+    {
+        return _agent;
+    }
+
+	//----------------------------------
+	//  channel
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _channel:Channel;
+
+    /**
+     *  Provides access to the Channel used to send the message.
+     */
+    public function get channel():Channel
+    {
+        return _channel;
+    }
+
+	//----------------------------------
+	//  message
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _message:IMessage;
+
+    /**
+     *  Provides access to the sent Message.
+     */
+    public function get message():IMessage
+    {
+        return _message;
+    }
+
+    /**
+     * @private
+     */
+    public function set message(value:IMessage):void
+    {
+        _message = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Starts a timer to monitor a request timeout. If the timer hits the
+     *  specified requestTimeout before a response is returned,
+     *  requestTimedOut() is invoked and any subsequent
+     *  response is ignored by this responder.
+     *
+     *  @param requestTimeout The amount of time in seconds to allow a request
+     *                        to run before timing it out.
+     */
+    final public function startRequestTimeout(requestTimeout:int):void
+    {
+        _requestTimer = new Timer(requestTimeout * 1000, 1);
+        _requestTimer.addEventListener(TimerEvent.TIMER, timeoutRequest);
+        _requestTimer.start();
+    }
+
+    /**
+     *  Called by the channel that created this MessageResponder when a
+     *  response returns from the destination.
+     *  This method performs core result processing and then invokes the
+     *  resultHandler() method that subclasses may override to
+     *  perform any necessary custom processing.
+     *
+     *  @param message The result Message returned by the destination.
+     */
+    final public function result(message:IMessage):void
+    {
+        // Ignore any response after the request has timed out.
+        if (!_requestTimedOut)
+        {
+            // Shut down the timeout timer if it's alive.
+            if (_requestTimer != null)
+            {
+                releaseTimer();
+            }
+            resultHandler(message);
+        }
+    }
+
+    /**
+     *  Called by the channel that created this MessageResponder when a fault
+     *  response returns from the destination.
+     *  This method performs core result processing and then invokes the
+     *  statusHandler() method that subclasses may override to
+     *  perform any necessary custom processing.
+     *
+     *  @param message The fault Message returned by the destination.
+     */
+    final public function status(message:IMessage):void
+    {
+        // Ignore any response after the request has timed out.
+        if (!_requestTimedOut)
+        {
+            // Shut down the timeout timer if it's alive.
+            if (_requestTimer != null)
+            {
+                releaseTimer();
+            }
+            statusHandler(message);
+        }
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	// Protected Members
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructs an ErrorMessage that can be passed to the associated
+     *  MessageAgent's callbacks upon a request timeout.
+     */
+    protected function createRequestTimeoutErrorMessage():ErrorMessage
+    {
+        var errorMsg:ErrorMessage = new ErrorMessage();
+        errorMsg.correlationId = message.messageId;
+        errorMsg.faultCode = "Client.Error.RequestTimeout";
+        errorMsg.faultString = resourceManager.getString(
+			"messaging", "requestTimedOut");
+        errorMsg.faultDetail = resourceManager.getString(
+			"messaging", "requestTimedOut.details");
+        return errorMsg;
+    }
+
+    /**
+     *  Subclasses must override this method to perform custom processing of
+     *  the result and invoke the proper callbacks on the associated
+     *  MessageAgent.
+     *
+     *  @param message The result Message returned by the destination.
+     */
+    protected function resultHandler(message:IMessage):void {}
+
+    /**
+     *  Subclasses must override this method to handle a request timeout and
+     *  invoke the proper callbacks on the associated MessageAgent.
+     */
+    protected function requestTimedOut():void {}
+
+    /**
+     *  Subclasses must override this method to perform custom processing of
+     *  the status and invoke the proper callbacks on the associated
+     *  MessageAgent.
+     *
+     *  @param message The fault Message returned by the destination.
+     */
+    protected function statusHandler(message:IMessage):void {}
+
+	//--------------------------------------------------------------------------
+	//
+	// Private Members
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Helper callback that flags the request as timed out before delegating
+     *  to custom timeout processing.
+     */
+    private function timeoutRequest(event:TimerEvent):void
+    {
+        _requestTimedOut = true;
+        releaseTimer();
+        requestTimedOut();
+    }
+
+    /**
+     *  @private
+     *  Utility method to shutdown the request timeout Timer.
+     */
+    private function releaseTimer():void
+    {
+        _requestTimer.stop();
+        _requestTimer.removeEventListener(TimerEvent.TIMER, timeoutRequest);
+        _requestTimer = null;
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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

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

--- frameworks/projects/rpc/src/mx/rpc/xml/SchemaTypeRegistry.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/SchemaTypeRegistry.as
@@ -26,6 +26,11 @@
  * new instance of the type, otherwise an anonymous Object will be used to
  * hold the decoded properties.
  * </p>
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class SchemaTypeRegistry
 {
@@ -41,6 +46,11 @@
      *
      * @return Returns the sole instance of this singleton class, creating it
      * if it does not already exist.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function getInstance():SchemaTypeRegistry
     {
@@ -76,6 +86,11 @@
      * @param type The QName or String representing the type name.
      * @return Returns the Class for the given type, or null of the type
      * has not been registered.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getClass(type:Object):Class
     {
@@ -99,6 +114,11 @@
      *
      * @return Returns the Class for the collection type represented by
      * the given Qname or String.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getCollectionClass(type:Object):Class
     {
@@ -120,6 +140,11 @@
      * Class itself.
      * @param type The QName or String representation of the type name.
      * @param definition The Class itself or class name as a String.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function registerClass(type:Object, definition:Object):void
     {
@@ -135,6 +160,11 @@
      * @param type The QName or String representation of the type name.
      *
      * @param definition The Class itself or class name as a String.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function registerCollectionClass(type:Object, definition:Object):void
     {
@@ -144,6 +174,11 @@
     /**
      * Removes a Class from the registry for the given type.
      * @param type The QName or String representation of the type name.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function unregisterClass(type:Object):void
     {
@@ -158,6 +193,11 @@
      * Removes a collection Class from the registry for the given type.
      * @param type The QName or String representation of the collection type
      * name.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function unregisterCollectionClass(type:Object):void
     {


- change: slight cleanup in Scrollbar class

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@839 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/controls/Scrollbar.as
+++ src/reprise/controls/Scrollbar.as
@@ -29,19 +29,15 @@
 		/***************************************************************************
 		*							public properties							   *
 		***************************************************************************/
-		public static var ORIENTATION_VERTICAL : String = 'vertical';
-		public static var ORIENTATION_HORIZONTAL : String = 'horizontal';
-
-		public static var className : String = "Scrollbar";
+		public static const ORIENTATION_VERTICAL : String = 'vertical';
+		public static const ORIENTATION_HORIZONTAL : String = 'horizontal';

 		/***************************************************************************
 		*							protected properties							   *
 		***************************************************************************/
-		protected static var g_linkageID : String = "Scrollbar";
-
-		protected static var SCROLL_DIR_UP : int = -1;
-		protected static var SCROLL_DIR_DOWN : int = 1;
+		protected static const SCROLL_DIR_UP : int = -1;
+		protected static const SCROLL_DIR_DOWN : int = 1;

 		protected var m_scrollUpBtn : SimpleButton;


暴露IFieldDescriptor.type

暴露IFieldDescriptor.type

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

 		function get tagNumber():uint


Remove MATCHING operator for now per RBL-8583

--- as3/xobjas3/src/com/rpath/xobj/FilterTerm.as
+++ as3/xobjas3/src/com/rpath/xobj/FilterTerm.as
@@ -58,9 +58,10 @@
     public static const NOT_LIKE:String = "NOT_LIKE";
     public static const IN:String = "IN";
     public static const NOT_IN:String = "NOT_IN";
+/*  NOT YET IMPLEMENTED
     public static const MATCHING:String = "MATCHING";
     public static const NOT_MATCHING:String = "NOT_MATCHING";
-
+*/
     public static const YES:String = "YES";
     public static const NO:String = "NO";


- change: Added proper resource cleanup to Image. It now stops a running loading process on removal and on setting a new source
- change: Added support for disabling bitmap caching to the Image control

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@805 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/controls/html/Image.as
+++ src/reprise/controls/html/Image.as
@@ -36,6 +36,7 @@

 		protected var m_priority : int = 0;
 		protected var m_checkPolicyFile : Boolean;
+		private var m_cacheBitmap : Boolean = true;

 		/***************************************************************************
@@ -53,9 +54,14 @@
 			}
 			src = CSSParsingHelper.resolvePathAgainstPath(src, m_xmlURL);
 			m_loaded = false;
+			if (m_imageLoader)
+			{
+				m_imageLoader.cancel();
+			}
 			m_imageLoader = new BitmapResource();
 			m_imageLoader.setCheckPolicyFile(m_checkPolicyFile);
 			m_imageLoader.priority = m_priority;
+			m_imageLoader.setCacheBitmap(m_cacheBitmap);
 			m_imageLoader.setURL(src);
 			m_imageLoader.addEventListener(Event.COMPLETE, imageLoaded);
 			m_imageLoader.execute();
@@ -70,6 +76,15 @@
 			return m_checkPolicyFile;
 		}

+		public function setCacheBitmap(cacheBitmap : Boolean) : void
+		{
+			m_cacheBitmap = cacheBitmap;
+		}
+		public function cacheBitmap() : Boolean
+		{
+			return m_cacheBitmap;
+		}
+
 		public function setPriority(value : int) : void
 		{
 			m_priority = value;
@@ -77,6 +92,17 @@
 			{
 				m_imageLoader.priority = value;
 			}
+		}
+
+		override public function remove(...args : *) : void
+		{
+			if (m_imageLoader)
+			{
+				m_imageLoader.cancel();
+				m_imageLoader.removeEventListener(Event.COMPLETE, imageLoaded);
+				m_imageLoader = null;
+			}
+			super.remove(args);
 		}

@@ -92,6 +118,8 @@
 			}
 			m_loaded = true;
 			setBitmapData(BitmapData(m_imageLoader.content()));
+			m_imageLoader.removeEventListener(Event.COMPLETE, imageLoaded);
+			m_imageLoader = null;
 			dispatchEvent(new DisplayEvent(DisplayEvent.LOAD_COMPLETE));
 		}


Better control of start/pause, and exposed isRunning

--- com/zehfernando/input/binding/KeyActionBinder.as
+++ com/zehfernando/input/binding/KeyActionBinder.as
@@ -17,7 +17,7 @@
 		// Provides universal input control for game controllers and keyboard

 		// Properties
-		private var _isStarted:Boolean;
+		private var _isRunning:Boolean;

 		// Instances
 		private var bindings:Vector.<BindingInfo>;						// Actual existing bindings, their action, and whether they're activated or not
@@ -51,7 +51,7 @@
 			_onActionDeactivated = new SimpleSignal();
 			_onSensitiveActionChanged = new SimpleSignal();

-			refreshGameInputDeviceList();
+			start();
 		}

@@ -246,7 +246,7 @@
 		// PUBLIC INTERFACE -----------------------------------------------------------------------------------------------

 		public function start():void {
-			if (!_isStarted) {
+			if (!_isRunning) {
 				// Starts listening to keyboard events
 				stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
 				stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
@@ -257,12 +257,14 @@
 					gameInput.addEventListener(GameInputEvent.DEVICE_REMOVED, onGameInputDeviceRemoved);
 				}

-				_isStarted = true;
+				refreshGameInputDeviceList();
+
+				_isRunning = true;
 			}
 		}

 		public function stop():void {
-			if (_isStarted) {
+			if (_isRunning) {
 				// Stops listening to keyboard events
 				stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDown, false);
 				stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUp, false);
@@ -273,7 +275,9 @@
 					gameInput.removeEventListener(GameInputEvent.DEVICE_REMOVED, onGameInputDeviceRemoved);
 				}

-				_isStarted = false;
+				removeGameInputDeviceEvents();
+
+				_isRunning = false;
 			}
 		}

@@ -330,6 +334,10 @@
 		public function get onSensitiveActionChanged():SimpleSignal {
 			return _onSensitiveActionChanged;
 		}
+
+		public function get isRunning():Boolean {
+			return _isRunning;
+		}
 	}
 }
 import com.zehfernando.input.binding.IBinding;


Разработка csi

Разработка csi

--- csi/flash/src/main/flex/org/shypl/biser/csi/client/Connection.as
+++ csi/flash/src/main/flex/org/shypl/biser/csi/client/Connection.as
@@ -1,13 +1,13 @@
 package org.shypl.biser.csi.client {
 	import flash.utils.ByteArray;
 	import flash.utils.IDataInput;
-

 	import org.shypl.biser.csi.Address;
 	import org.shypl.biser.csi.ConnectionCloseReason;
 	import org.shypl.biser.csi.Protocol;
 	import org.shypl.common.collection.LinkedList;
 	import org.shypl.common.lang.IllegalArgumentException;
+	import org.shypl.common.lang.IllegalStateException;
 	import org.shypl.common.logging.LogManager;
 	import org.shypl.common.logging.Logger;
 	import org.shypl.common.logging.PrefixedLoggerProxy;
@@ -23,6 +23,7 @@

 		private var _opened:Boolean;
 		private var _alive:Boolean;
+		private var _messaging:Boolean;

 		private var _processor:ConnectionProcessor;
 		private var _channel:Channel;
@@ -46,6 +47,7 @@

 			_opened = true;
 			_alive = false;
+			_messaging = false;

 			setProcessor(new ConnectionProcessorAuthorization(authorizationKey));
 			openChannel();
@@ -93,9 +95,9 @@

 		public function acceptChannel(channel:Channel):ChannelHandler {
 			if (_opened) {
+				_logger.debug("Channel opened");
+
 				_alive = true;
-				_logger.debug("Channel opened");
-
 				_channel = channel;
 				_processor.processAccept();
 				return this;
@@ -115,6 +117,8 @@
 		public function handleChannelClose():void {
 			_logger.debug("Channel closed (alive: {})", _alive);

+
+			_messaging = false;
 			_alive = false;
 			_channel = null;
 			if (_opened) {
@@ -163,22 +167,23 @@
 		}

 		internal function beginSession(sid:ByteArray, activityTimeout:int, recoveryTimeout:int):void {
+
+
 			_logger.debug("Begin session (sid: {}, activityTimeout: {}, recoveryTimeout: {})", sid, activityTimeout, recoveryTimeout);

 			_sid = sid;
 			_activityTimeout = activityTimeout;
 			_recoveryTimeout = recoveryTimeout;

-			callDelayed(_client.processConnected);
+			callDelayed(beginSessionDelayed);
 		}

 		internal function recoverSession():void {
 			_logger.debug("Recover session");

 			writeByteToChannel(_inputMessageEven ? Protocol.MESSAGE_EVEN_RECEIVED : Protocol.MESSAGE_ODD_RECEIVED);
-			_alive = true;
-
-			callDelayed(_client.processConnectionEstablished);
+
+			callDelayed(recoverSessionDelayed);
 		}

 		internal function sendByte(byte:int):void {
@@ -202,8 +207,8 @@
 		internal function sendMessage(message:ByteArray):void {
 			if (_opened) {
 				_outputMessages.addLast(message);
-				if (_alive && _outputMessageSendAvailable) {
-					sendMessage0(message);
+				if (_messaging && _outputMessageSendAvailable) {
+					sendNextMessage();
 				}
 			}
 			else {
@@ -228,9 +233,9 @@

 		internal function processMessageReceived(even:Boolean):void {
 			_outputMessageSendAvailable = true;
-			if (_alive) {
+			if (_messaging) {
 				if (_outputMessageEven != even) {
-					sendMessage0(ByteArray(_outputMessages.getFirst()));
+					sendNextMessage();
 				}
 				else {
 					if (_outputMessages.isEmpty()) {
@@ -238,15 +243,39 @@
 					}
 					else {
 						_outputMessages.removeFirst();
-						if (!_outputMessages.isEmpty()) {
-							sendMessage0(ByteArray(_outputMessages.getFirst()));
-						}
+						sendNextMessageIfExists();
 					}
 				}
 			}
 		}

+		private function beginSessionDelayed():void {
+			_messaging = true;
+			_client.processConnected();
+			if (_messaging && _outputMessageSendAvailable) {
+				sendNextMessageIfExists();
+			}
+		}
+
+		private function recoverSessionDelayed():void {
+			_messaging = true;
+			_client.processConnectionEstablished();
+		}
+
+		private function sendNextMessageIfExists():void {
+			if (!_outputMessages.isEmpty()) {
+				sendMessage0(ByteArray(_outputMessages.getFirst()));
+			}
+		}
+
+		private function sendNextMessage():void {
+			sendMessage0(ByteArray(_outputMessages.getFirst()));
+		}
+
 		private function sendMessage0(message:ByteArray):void {
+			if (!_outputMessageSendAvailable) {
+				throw new IllegalStateException("Send message is not available");
+			}
 			if (message.length == 0) {
 				throw new IllegalArgumentException("Outgoing message is empty");
 			}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.charts.chartClasses
 {


FLEX-14596 Added O and Z as valid format characters

--- frameworks/projects/framework/src/mx/formatters/DateFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/DateFormatter.as
@@ -88,7 +88,7 @@
     /**
      *  @private
      */
-    private static const VALID_PATTERN_CHARS:String = "Y,M,D,A,E,H,J,K,L,N,S,Q";
+    private static const VALID_PATTERN_CHARS:String = "Y,M,D,A,E,H,J,K,L,N,S,Q,O,Z";

     //--------------------------------------------------------------------------
     //
@@ -122,7 +122,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public static function parseDateString (str:String, format:String = null):Date
+    public static function parseDateString(str:String, format:String = null):Date
     {
         if (!str || str == "")
             return null;
@@ -684,7 +684,7 @@
             {
                 error = defaultInvalidValueError;
                 return "";
-            }
+			}
         }
         else if (!(value is Date))
         {


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

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

 package mx.controls.videoClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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

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

--- frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPMultiService.as
+++ frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPMultiService.as
@@ -47,6 +47,11 @@
  *

  *
  * @see mx.rpc.http.HTTPMultiService
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class HTTPMultiService extends mx.rpc.http.HTTPMultiService implements IMXMLSupport, IMXMLObject
 {
@@ -63,6 +68,11 @@
      * @param rootURL The URL the HTTPService should use when computing relative URLS.
      *
      * @param destination An HTTPService destination name in the service-config.xml file.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function HTTPMultiService(rootURL:String = null, destination:String = null)
     {
@@ -101,6 +111,11 @@
      * @param id The identifier used by document to refer
      * to this object. If the object is a deep property on document,
      * id is null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function initialized(document:Object, id:String):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8530
Author:   jszeto@adobe.com
Date:     2009-07-13T18:17:46.547231Z

Log Message:
-----------
Change Slider and NumericStepper default value

http://bugs.adobe.com/jira/browse/SDK-18380 - FxHSlider and FxVSlider have default max of 100, should be 10

Changed the default value for Slider by setting the value to 10 in the constructor. I changed NumericStepper’s implementation to match Slider. The problem with NumericStepper’s previous implementation was that it wasn’t calling Range’s maximum setter. Thus there was some important logic in Range.commitProperties that wasn’t called.

QE Notes: Update tests with new default
Doc Notes: Update docs with new default
Bugs: SDK-18380
Reviewer: Hans

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -183,6 +183,7 @@
     public function NumericStepper()
     {
         super();
+        maximum = 10;
     }

     //--------------------------------------------------------------------------
@@ -419,7 +420,6 @@
     // maximum
     //---------------------------------

-    private var _maximum:Number = 10;
     private var maxChanged:Boolean = false;

     /**
@@ -436,20 +436,11 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    override public function get maximum():Number
-    {
-        return _maximum;
-    }

     override public function set maximum(value:Number):void
     {
-        if (value == _maximum)
-            return;
-
-        _maximum = value;
         maxChanged = true;
-
-        invalidateProperties();
+        super.maximum = value;
     }

     //---------------------------------


def: 1872 sometimes entry started to play after pre play seek

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@85097 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
@@ -680,6 +680,7 @@
 						//for rtmp the seek will be performed after player is in "playing" state
 						if (_mediaProxy.vo.deliveryType == StreamerType.HTTP && _mediaProxy.vo.keyframeValuesArray)
 						{
+							_pausedPending = true;
 							doIntelliSeek(_offset);
 						}
 						_isPrePlaySeek = false;
@@ -937,10 +938,9 @@
 						_prevState = "";
 					}

-					//the movie started, pre play seek has now ended.
-					if (_isPrePlaySeekInProgress)
-					{
-
+					//the movie started, pre play seek has now ended (unless we are still waiting for videoMetadataRecieved)
+					if (_isPrePlaySeekInProgress && !_isPrePlaySeek)
+					{
 						if (_mediaProxy.vo.deliveryType != StreamerType.HTTP && player.canSeek)
 						{
 							//fix a bug with akamai HD plugin, we can't call player.seek immediately


qnd: dont load playmanifest on "changePreferredBitrate"

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@86180 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
@@ -630,7 +630,8 @@
 					if ((curIndex > -1) && (curIndex < _mediaProxy.vo.kalturaMediaFlavorArray.length) )
 					{
 						_mediaProxy.vo.preferedFlavorBR = _mediaProxy.vo.kalturaMediaFlavorArray[curIndex].bitrate;
-						_mediaProxy.prepareMediaElement();
+						if (!_mediaProxy.shouldWaitForElement)
+							_mediaProxy.prepareMediaElement();
 						if (_mediaProxy.vo.deliveryType != StreamerType.HDNETWORK)
 							sendNotification( NotificationType.SWITCHING_CHANGE_COMPLETE, {newIndex : curIndex, newBitrate: _mediaProxy.vo.preferedFlavorBR}  );
 					}


def: 1868 dont play on every flavor switch in http

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@84553 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
@@ -510,7 +510,8 @@
 					}
 					else // change media
 					{
-						_mediaProxy.vo.singleAutoPlay = true;
+						if (player.state == MediaPlayerState.PLAYING || player.state == MediaPlayerState.BUFFERING)
+							_mediaProxy.vo.singleAutoPlay = true;
 						_mediaProxy.vo.isFlavorSwitching = true;
 						sendNotification( NotificationType.CHANGE_MEDIA, {entryId: _mediaProxy.vo.entry.id, flavorId: null, preferedFlavorBR: preferedFlavorBR });
 					}


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

--- frameworks/projects/framework/src/mx/formatters/CurrencyFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/CurrencyFormatter.as
@@ -63,6 +63,11 @@
  *
  *  @see mx.formatters.NumberBase
  *  @see mx.formatters.NumberBaseRoundType
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class CurrencyFormatter extends Formatter
 {
@@ -76,6 +81,11 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function CurrencyFormatter()
 	{
@@ -111,6 +121,11 @@
      *  Permitted values are "left" and "right".
 	 *
      *  @default "left"
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get alignSymbol():String
 	{
@@ -157,6 +172,11 @@
 	 *  appears between the number and the minus sign or parentheses.
 	 *
      *  @default "$"
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get currencySymbol():String
 	{
@@ -198,6 +218,11 @@
 	 *  when parsing an input string.
 	 *
      *  @default "."
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get decimalSeparatorFrom():String
 	{
@@ -239,6 +264,11 @@
 	 *  when outputting formatted decimal numbers.
 	 *
      *  @default "."
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get decimalSeparatorTo():String
 	{
@@ -285,6 +315,11 @@
 	 *  rounding, return a value based on that rounding type.
 	 *
      *  @default -1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get precision():Object
 	{
@@ -332,6 +367,11 @@
 	 *  @default NumberBaseRoundType.NONE
  	 *
 	 *  @see mx.formatters.NumberBaseRoundType
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get rounding():String
 	{
@@ -373,6 +413,11 @@
 	 *  in the input String.
 	 *
      *  @default ","
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get thousandsSeparatorFrom():String
 	{
@@ -414,6 +459,11 @@
 	 *  in the output string.
 	 *
      *  @default ","
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get thousandsSeparatorTo():String
 	{
@@ -457,6 +507,11 @@
 	 *  surrounded by parentheses, for example (400).
 	 *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get useNegativeSign():Object
 	{
@@ -498,6 +553,11 @@
 	 *  by using a separator character.
 	 *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public function get useThousandsSeparator():Object
 	{
@@ -550,6 +610,11 @@
      *  @param value Value to format.
 	 *
      *  @return Formatted string. Empty if an error occurs.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function format(value:Object):String
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 7980
Author:   hmuller@adobe.com
Date:     2009-06-18T21:55:51.288721Z

Log Message:
-----------
Fix default values for delegated Skinnable{Data}Container scroll position properties.  Default was NaN, correct default is 0.

QE Notes: Fixes a problem caused by SVN 7929, "Range et al PARB changes, Opus #1"
Doc Notes:
Bugs:  sdk-21891, sdk21878
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -486,9 +486,12 @@
      */
     public function get horizontalScrollPosition():Number
     {
-        return (contentGroup)
-            ? contentGroup.horizontalScrollPosition
-            : contentGroupProperties.horizontalScrollPosition;
+        if (contentGroup)
+            return contentGroup.horizontalScrollPosition;
+
+        var hsp:Number = contentGroupProperties.horizontalScrollPosition;
+        return isNaN(hsp) ? 0 : hsp;
+
     }

     /**
@@ -622,9 +625,11 @@
      */
     public function get verticalScrollPosition():Number
     {
-        return (contentGroup)
-            ? contentGroup.verticalScrollPosition
-            : contentGroupProperties.verticalScrollPosition;
+        if (contentGroup)
+            return contentGroup.verticalScrollPosition;
+
+        var vsp:Number = contentGroupProperties.verticalScrollPosition;
+        return isNaN(vsp) ? 0 : vsp;
     }

     /**


unit test correction

unit test correction

git-svn-id: 4969af7a11582c80b682e8a73ed7b35a57fe0a9c@128820 3e83ccf1-c6ce-0310-9054-8fdb33cf0640

--- zucchini.lib/test/src/pl/ydp/automation/scripts/steps/TestStepsResolver.as
+++ zucchini.lib/test/src/pl/ydp/automation/scripts/steps/TestStepsResolver.as
@@ -3,6 +3,7 @@
 	import flash.events.Event;

 	import mockolate.mock;
+	import mockolate.nice;
 	import mockolate.prepare;
 	import mockolate.strict;

@@ -20,7 +21,7 @@

 		private const SOURCE_PATTERN:RegExp = /press {identifier} button/;
 		private const EXPECTED_PATTERN:RegExp = /press (\w+) button/;
-		private const PATTERN:RegExp = /\w/;
+		private const PATTERN:RegExp = /\w+/;

 		[Before]
 		public function setUp():void
@@ -28,6 +29,7 @@

 			namespaceVariables = strict( INamespaceVariables );
 			mock( namespaceVariables ).getter( 'variablePattern' ).returns( /{(\w+)}/g );
+			mock( namespaceVariables ).getter( 'patterns' ).returns( {identifier: PATTERN} );

 			stepsResolver = new StepsResolver();
 			stepsResolver.namespaceVariables = namespaceVariables;
@@ -43,7 +45,7 @@
 		public function should_get_regexp_for_variable():void
 		{
 			//			when
-			var pattern:RegExp = stepsResolver.getRegExpForVariable( '{variable}' );
+			var pattern:RegExp = stepsResolver.getRegExpForVariable( '{identifier}' );

 			//			then
 			assertThat( pattern, notNullValue() );


Transferred from the Adobe Open Source Subversion Repository

Revision: 12126
Author:   klin@adobe.com
Date:     2009-11-23T23:41:51.154822Z

Log Message:
-----------
Recommitting 12078. Fixed a bug in the check-in test that was breaking sometimes.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/ScrollBarTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -218,35 +218,35 @@
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var dataFormatter:NumberFormatter;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var animator:Animation = null;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var dataTipInitialPosition:Point;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var dataTipInstance:IDataRenderer;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var slideToValue:Number;
-
-	/**
-	 *  @private
-	 */
-	private var isKeyDown:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var isKeyDown:Boolean = false;

     /**
      *  @private
@@ -294,9 +294,9 @@
     //  dataTipformatFunction
     //---------------------------------

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var _dataTipFormatFunction:Function;

     /**
@@ -333,9 +333,9 @@
         return _dataTipFormatFunction;
     }

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     public function set dataTipFormatFunction(value:Function):void
     {
         _dataTipFormatFunction = value;
@@ -492,7 +492,7 @@
         // Don't draw the error skin
     }

-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
     //
     //  Methods
     //
@@ -547,39 +547,41 @@
      */
     private function animationUpdateHandler(animation:Animation):void
     {
-		// FIXME (klin): Should the animation be setting the value
-		// as it goes like ScrollBar does? Should this behavior
-		// depend on liveDraggin?
+        // FIXME (klin): Should the animation be setting the value
+        // as it goes like ScrollBar does? Should this behavior
+        // depend on liveDragging?
         pendingValue = animation.currentValue["value"];
     }

     /**
      *  @private
      *  Handles end event from the Animation that runs the animated slide.
-     *  We dispatch the "change" event at this time, after the animation
+     *  We dispatch the "changeEnd" event at this time, after the animation
      *  is done since each animation occurs after a user interaction.
      */
     private function animationEndHandler(animation:Animation):void
     {
         setValue(slideToValue);
-
+
         dispatchEvent(new Event(Event.CHANGE));
-    }
-
-	/**
-	 *  @private
-	 *  Stops a running animation prematurely and sets the value
-	 *  of the slider to the current pendingValue. We also dispatch
-	 *  a "change" event since the user has started another interaction.
-	 */
-	private function stopAnimation():void
-	{
-		animator.stop();
-
-		setValue(nearestValidValue(pendingValue, snapInterval));
-
-		dispatchEvent(new Event(Event.CHANGE));
-	}
+        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
+    }
+
+    /**
+     *  @private
+     *  Stops a running animation prematurely and sets the value
+     *  of the slider to the current pendingValue. We also dispatch
+     *  a "changeEnd" event since the user has started another interaction.
+     */
+    private function stopAnimation():void
+    {
+        animator.stop();
+
+        setValue(nearestValidValue(pendingValue, snapInterval));
+
+        dispatchEvent(new Event(Event.CHANGE));
+        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
+    }

     //--------------------------------------------------------------------------
     //
@@ -592,32 +594,32 @@
      */
     override protected function thumb_mouseDownHandler(event:MouseEvent):void
     {
-		// finish previous animation
-		if (animator && animator.isPlaying)
-			stopAnimation();
-
+        // finish previous animation
+        if (animator && animator.isPlaying)
+            stopAnimation();
+
         super.thumb_mouseDownHandler(event);
         clickOffset = thumb.globalToLocal(new Point(event.stageX, event.stageY));
-
+
         // Popup a dataTip only if we have a SkinPart and the boolean flag is true
         if (dataTip && showDataTip && enabled)
         {
             dataTipInstance = IDataRenderer(createDynamicPartInstance("dataTip"));
-
-			dataTipInstance.data = formatDataTipText(
-				nearestValidValue(pendingValue, snapInterval));
-
-			var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
-
-			// Allow styles to be inherited from Slider.
-			if (tipAsUIComponent)
-			{
-				tipAsUIComponent.owner = this;
-				tipAsUIComponent.isPopUp = true;
-			}
-
-			systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
-
+
+            dataTipInstance.data = formatDataTipText(
+                nearestValidValue(pendingValue, snapInterval));
+
+            var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
+
+            // Allow styles to be inherited from Slider.
+            if (tipAsUIComponent)
+            {
+                tipAsUIComponent.owner = this;
+                tipAsUIComponent.isPopUp = true;
+            }
+
+            systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
+
             // Force the dataTip to render so that we have the correct size since
             // updateDataTip might need the size
             if (tipAsUIComponent)
@@ -646,9 +648,14 @@
         {
             dispatchEvent(new TrackBaseEvent(TrackBaseEvent.THUMB_DRAG));
             if (getStyle("liveDragging") === true)
+            {
                 setValue(newValue);
+                dispatchEvent(new Event(Event.CHANGE));
+            }
             else
+            {
                 pendingValue = newValue;
+            }
         }

         if (dataTipInstance && showDataTip)
@@ -676,7 +683,10 @@
     override protected function system_mouseUpHandler(event:Event):void
     {
         if ((getStyle("liveDragging") === false) && (value != pendingValue))
+        {
             setValue(pendingValue);
+            dispatchEvent(new Event(Event.CHANGE));
+        }

         if (dataTipInstance)
         {
@@ -694,9 +704,9 @@
      *  decreases the value by stepSize. The opposite for
      *  Right/Up arrows. The Home and End keys set the value
      *  to the min and max respectively.
-	 *
-	 *  We dispatch changing events when the keystroke
-	 *  may both repeat and alter the value.
+     *
+     *  We dispatch changing events when the keystroke
+     *  may both repeat and alter the value.
      */
     override protected function keyDownHandler(event:KeyboardEvent):void
     {
@@ -706,8 +716,8 @@
             return;

         if (animator && animator.isPlaying)
-			stopAnimation();
-
+            stopAnimation();
+
         // FIXME (hmuller): Provide a way to easily override the keyboard
         // behavior. This means having a callback in the subclasses
         // that tell the superclass all the positions in an array
@@ -721,17 +731,18 @@
             case Keyboard.DOWN:
             case Keyboard.LEFT:
             {
-				newValue = nearestValidValue(pendingValue - stepSize, snapInterval);
-
-				if (prevValue != newValue)
-				{
-					if (!isKeyDown)
-					{
-						dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
-						isKeyDown = true;
-					}
-					setValue(newValue);
-				}
+                newValue = nearestValidValue(pendingValue - stepSize, snapInterval);
+
+                if (prevValue != newValue)
+                {
+                    if (!isKeyDown)
+                    {
+                        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
+                        isKeyDown = true;
+                    }
+                    setValue(newValue);
+                    dispatchEvent(new Event(Event.CHANGE));
+                }
                 event.preventDefault();
                 break;
             }
@@ -739,17 +750,18 @@
             case Keyboard.UP:
             case Keyboard.RIGHT:
             {
-				newValue = nearestValidValue(pendingValue + stepSize, snapInterval);
-
-				if (prevValue != newValue)
-				{
-					if (!isKeyDown)
-					{
-						dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
-						isKeyDown = true;
-					}
-                	setValue(newValue);
-				}
+                newValue = nearestValidValue(pendingValue + stepSize, snapInterval);
+
+                if (prevValue != newValue)
+                {
+                    if (!isKeyDown)
+                    {
+                        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
+                        isKeyDown = true;
+                    }
+                    setValue(newValue);
+                    dispatchEvent(new Event(Event.CHANGE));
+                }
                 event.preventDefault();
                 break;
             }
@@ -757,8 +769,8 @@
             case Keyboard.HOME:
             {
                 value = minimum;
-				if (value != prevValue)
-					dispatchEvent(new Event(Event.CHANGE));
+                if (value != prevValue)
+                    dispatchEvent(new Event(Event.CHANGE));
                 event.preventDefault();
                 break;
             }
@@ -766,40 +778,40 @@
             case Keyboard.END:
             {
                 value = maximum;
-				if (value != prevValue)
-					dispatchEvent(new Event(Event.CHANGE));
+                if (value != prevValue)
+                    dispatchEvent(new Event(Event.CHANGE));
                 event.preventDefault();
                 break;
             }
         }
     }
-
-	/**
-	 *  @private
-	 *  Handle keyboard release events. Allows us to send out exactly
-	 *  one change event per user gesture.
-	 */
-	override protected function keyUpHandler(event:KeyboardEvent) : void
-	{
-		switch (event.keyCode)
-		{
-			case Keyboard.DOWN:
-			case Keyboard.LEFT:
-			case Keyboard.UP:
-			case Keyboard.RIGHT:
-			{
-				if (isKeyDown)
-				{
-					// Dispatch "change" event only after a repeat occurs.
-					dispatchEvent(new Event(Event.CHANGE));
-					isKeyDown = false;
-				}
-				event.preventDefault();
-				break;
-			}
-		}
-	}
-
+
+    /**
+     *  @private
+     *  Handle keyboard release events. Allows us to send out changeEnd
+     *  event.
+     */
+    override protected function keyUpHandler(event:KeyboardEvent) : void
+    {
+        switch (event.keyCode)
+        {
+            case Keyboard.DOWN:
+            case Keyboard.LEFT:
+            case Keyboard.UP:
+            case Keyboard.RIGHT:
+            {
+                if (isKeyDown)
+                {
+                    // Dispatch "change" event only after a repeat occurs.
+                    dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
+                    isKeyDown = false;
+                }
+                event.preventDefault();
+                break;
+            }
+        }
+    }
+
     /**
      *  @private
      *  Handle mouse-down events for the slider track. We
@@ -837,11 +849,11 @@
                     // FIXME (chaase): hard-coding easer for now - how to style it?
                     animator.easer = new Sine(0);
                 }
-
-				// Finish any current animation before we start the next one.
-				if (animator.isPlaying)
-					stopAnimation();
-
+
+                // Finish any current animation before we start the next one.
+                if (animator.isPlaying)
+                    stopAnimation();
+
                 // holds the final value to be set when animation ends
                 slideToValue = newValue;
                 animator.duration = slideDuration *
@@ -849,7 +861,7 @@
                 animator.motionPaths = new <MotionPath>[
                     new SimpleMotionPath("value", pendingValue, slideToValue)];

-                dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
+                dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
                 animator.play();
             }
             else


correctly set audiotracks in case we are in fallback PIDs mode

--- src/org/mangui/HLS/muxing/TS.as
+++ src/org/mangui/HLS/muxing/TS.as
@@ -127,6 +127,13 @@
              _data.position = 0;
              _audioId = _audioFallbackId;
              _audioIsAAC = _audioFallbackIsAAC;
+             if(_audioId > 0) {
+               if(_audioIsAAC) {
+                  _aacIds.push(_audioId);
+               } else {
+                  _mp3Ids.push(_audioId);
+               }
+             }
              _avcId = _avcFallbackId;
              _fallbackMode = true;
           } else {


classes updated Signed-off-by:delfi <delfi@segonquart.localhost>

classes updated
Signed-off-by:delfi <7a08856f93580430fa9b7f49ec8380a13169718b@segonquart.localhost>

--- as/form/frame1.as
+++ as/form/frame1.as
@@ -1,11 +1,11 @@
-import com.segonquart.*
+import com.segonquart. *
+        //
+                function onPreloaderOut ():Void
+                {
+                    preloader_mc.removeEventListener ("onPreloaderOut",this);
+                    nextFrame ();
+                }

-stop ();
-function onPreloaderOut ()
-{
-	preloader_mc.removeEventListener ("onPreloaderOut", this);
-	nextFrame();
-}
-
-preloader_mc.addEventListener ("onPreloaderOut", this);
-preloader_mc.startPreload (this);+        preloader_mc.addEventListener ("onPreloaderOut",this);
+        preloader_mc.startPreload (this);
+        stop ();


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

--- frameworks/projects/framework/src/mx/binding/RepeatableBinding.as
+++ frameworks/projects/framework/src/mx/binding/RepeatableBinding.as
@@ -0,0 +1,174 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-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.binding
+{
+
+import flash.events.Event;
+import mx.core.IRepeaterClient;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+[ExcludeClass]
+
+/**
+ *  @private
+ */
+public class RepeatableBinding extends Binding
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Create a Binding object
+	 *
+     *  @param document The document that is the target of all of this work.
+	 *
+     *  @param srcFunc The function that returns us the value
+	 *  to use in this Binding.
+	 *
+     *  @param destFunc The function that will take a value
+	 *  and assign it to the destination.
+	 *
+     *  @param destString The destination represented as a String.
+	 *  We can then tell the ValidationManager to validate this field.
+     */
+    public function RepeatableBinding(document:Object, srcFunc:Function,
+									  destFunc:Function, destString:String)
+    {
+        super(document, srcFunc, destFunc, destString);
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Execute the binding.
+     *  Call the source function and get the value we'll use.
+     *  Then call the destination function passing the value as an argument.
+     */
+    override public function execute(o:Object = null):void
+    {
+        if (isExecuting)
+            return;
+
+        isExecuting = true;
+
+        // o is an array index, a single instance of a UIComponent,
+		// a Repeater, or is null.
+        // If it is a number it is because a Watcher fired
+		// and we are being passed the cloneIndex
+        // If it is defined as an Object, it is because the Binding Manager
+		// just called executeBindings() on that particular instance,
+		// and passed it in.
+        // If it is null (now unlikely for RepeatableBinding) a watcher
+		// has just fired and we will execute this RepeatableBinding
+		// on all repeated instances of the object specified by
+		// the _destString of this RepeatableBinding.
+        // For example, if the _destString is "b.label", we update
+        // all instances with id "b", which we locate via their indexed
+        // id references on the document, such as b[2][4].
+        var id:String;
+        if (!o)
+        {
+            id = destString.substring(0, destString.indexOf("."));
+            o = document[id];
+        }
+        else if (typeof(o) == "number")
+        {
+            id = destString.substring(0, destString.indexOf("."));
+            var components:Array = document[id] as Array;
+            if (components)
+                o = components[o];
+            else
+                o = null;
+        }
+
+        if (o)
+            recursivelyProcessIDArray(o);
+
+        isExecuting = false;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+	 */
+	private function recursivelyProcessIDArray(o:Object):void
+    {
+        // o is either a scalar id reference (to a UIComponent or a Repeater)
+        // or an array, perhaps multi-dimensional, of id references
+
+        if (o is Array)
+        {
+            var array:Array = o as Array;
+			var n:int = array.length;
+            for (var i:int = 0; i < n; i++)
+            {
+                recursivelyProcessIDArray(array[i]);
+            }
+        }
+        else if (o is IRepeaterClient)
+        {
+            var client:IRepeaterClient = IRepeaterClient(o);
+
+            wrapFunctionCall(this, function():void
+            {
+                var value:Object = wrapFunctionCall(this, srcFunc, null, client.instanceIndices, client.repeaterIndices);
+
+                if (BindingManager.debugDestinationStrings[destString])
+                {
+                    trace("RepeatableBinding: destString = " + destString + ", srcFunc result = " + value);
+                }
+
+                destFunc(value, client.instanceIndices);
+            },
+            o);
+        }
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event handlers
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  The only reason a Binding listens to an event
+	 *  is because it wants a signal to execute
+     */
+    public function eventHandler(event:Event):void
+    {
+        if (isHandlingEvent)
+            return;
+        isHandlingEvent = true;
+
+        execute();
+
+        isHandlingEvent = false;
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8483
Author:   smgilson@adobe.com
Date:     2009-07-09T17:52:48.367800Z

Log Message:
-----------
Second checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.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/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Keyframe.as
+++ frameworks/projects/spark/src/spark/effects/animation/Keyframe.as
@@ -43,7 +43,7 @@
  *  and adds the following tag attributes:

  *
  *

- *  <mx:Keyframe
+ *  <s:Keyframe
  *    id="ID"
  *    easier="Linear"
  *    time="val"


fixed bug removing duplicate results

fixed bug removing duplicate results

--- WeaveData/src/weave/primitives/KDTree.as
+++ WeaveData/src/weave/primitives/KDTree.as
@@ -84,10 +84,9 @@

 			var result:Array = as3_kd_query_range(tree_ptr, minKey, maxKey, boundaryInclusive);
 			result.sort(Array.NUMERIC);
-			VectorUtils.removeDuplicatesFromSortedArray(result);
-
 			for (var i:int = 0; i < result.length; i++)
 				result[i] = objects[result[i]];
+			VectorUtils.removeDuplicatesFromSortedArray(result);
 			return result;
 		}


ComboBox list is populated by the dataProvider if the list has been created already

--- src/org/openPyro/controls/ComboBox.as
+++ src/org/openPyro/controls/ComboBox.as
@@ -137,6 +137,9 @@
 			if(_bttn && _bttn.hasOwnProperty("label") && bindButtonLabelToSelectedItem)
 			{
 				_bttn["label"] = _bttnLabelFunction(data[0]);
+			}
+			if(_list){
+				_list.dataProvider = data;
 			}
 		}


Added missing portlayout->port.disconnect() move

--- src/Modules/Module.as
+++ src/Modules/Module.as
@@ -215,7 +215,7 @@

 		public function deregister():Module {
 			for each (var portLayout:PortLayout in layout.ports) {
-				portLayout.disconnect();
+				portLayout.port.disconnect();
 				portLayout.deregister();
 			}


Fixed bug in junit output introduced with blocks to evaluate passed to require

--- src/as3spec/Should.as
+++ src/as3spec/Should.as
@@ -234,8 +234,9 @@
 			{
 				rval = this.value();
 			}
-			catch (error:*)
-			{
+			catch (e:*)
+			{
+			  error = e;
 			  raised = true;
 			}


formatNumber() now uses roundSignificant() when precision is not specified

--- WeaveCore/src/weave/compiler/StandardLib.as
+++ WeaveCore/src/weave/compiler/StandardLib.as
@@ -282,6 +282,7 @@
 			}
 			else
 			{
+				number = StandardLib.roundSignificant(number);
 				if (Math.abs(number) < 1)
 					return String(number); // this fixes the bug where "0.1" gets converted to ".1" (we don't want the "0" to be lost)
 				_numberFormatter.precision = -1;


Debug message

Debug message

--- src/com/benoitfreslon/layoutmanager/LayoutLoader.as
+++ src/com/benoitfreslon/layoutmanager/LayoutLoader.as
@@ -97,7 +97,7 @@
 						var a : Array = [ ButtonExtended ];

 						var objectClass : Class;
-						if (debug) trace(child.className);
+						if (debug) trace("LayoutLoader: child.className",child.className);
 						if ( child.className ) {
 							objectClass = getDefinitionByName( child.className ) as Class;
 						} else {


- renamed absolutePathToBase to stringByResolvingRelativePathToPath
- added documentation

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@477 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/utils/PathUtil.as
+++ src/reprise/utils/PathUtil.as
@@ -183,33 +183,46 @@
 			}
 		}

-		public static function absolutePathToBase(file:String, base:String = null) : String
-		{
-			file = stringByStandardizingPath(file);
+		/**
+		* Converts a relative path into an absolute path by resolving the relative path
+		* resolvee to a given absolute path base.
+		*
+		* If base is null or resolvee is already an absolute
+		* path, the method returns the value of resolvee unaltered.
+		*
+		* @param resolvee A relative path to be converted into an absolute path
+		* @param base An absolute path to be used as the root for the relative path
+		*
+		* @return The resolved absolute path
+		*/
+		public static function stringByResolvingRelativePathToPath(resolvee:String,
+			base:String = null) : String
+		{
+			resolvee = stringByStandardizingPath(resolvee);
 			if (!base)
 			{
-				return file;
+				return resolvee;
 			}
 			base = stringByStandardizingPath(base);

-			if (isAbsolutePath(file))
-			{
-				return file;
-			}
-
-			var fileComponents : Array = pathComponents(file);
+			if (isAbsolutePath(resolvee))
+			{
+				return resolvee;
+			}
+
+			var resolveeComponents : Array = pathComponents(resolvee);
 			var baseComponents : Array = pathComponents(base);
 			var lastComponent : String = '';

-			if (pathExtension(file) != '')
-			{
-				lastComponent = String(fileComponents.pop());
+			if (pathExtension(resolvee) != '')
+			{
+				lastComponent = String(resolveeComponents.pop());
 			}

 			var i : Number;
-			for (i = 0; i < fileComponents.length; i++)
-			{
-				var currentDirPart:String = fileComponents[i];
+			for (i = 0; i < resolveeComponents.length; i++)
+			{
+				var currentDirPart:String = resolveeComponents[i];
 				if (currentDirPart == '..')
 				{
 					baseComponents.pop();