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

--- frameworks/projects/framework/src/mx/core/IConstraintClient.as
+++ frameworks/projects/framework/src/mx/core/IConstraintClient.as
@@ -0,0 +1,73 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 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.core
+{
+
+/**
+ *  The IConstraintClient interface defines the interface for components that
+ *  support layout constraints. This interface is only used by implementations
+ *  of constraint-based layout.
+ */
+
+public interface IConstraintClient
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  getConstraintValue
+    //----------------------------------
+
+    /**
+     *  Returns the specified constraint value.
+     *
+     *  @param constraintName name of the constraint value. Constraint parameters are
+     *  "baseline", "bottom", "horizontalCenter",
+     *  "left", "right", "top", and
+     *  "verticalCenter".
+     *
+     *
For more information about these parameters, see the Canvas and Panel containers and
+     *  Styles Metadata AnchorStyles.

+     *
+     *  @return The constraint value, or null if it is not defined.
+     *
+     *  @see mx.containers.Canvas
+     *  @see mx.containers.Panel
+     */
+    function getConstraintValue(constraintName:String):*;
+
+    //----------------------------------
+    //  setConstraintValue
+    //----------------------------------
+
+    /**
+     *  Sets the specified constraint value.
+     *
+     *  @param constraintName name of the constraint value. Constraint parameters are
+     *  "baseline", "bottom", "horizontalCenter",
+     *  "left", "right", "top", and
+     *  "verticalCenter".
+     *
+     *
For more information about these parameters, see the Canvas and Panel containers and
+     *  Styles Metadata AnchorStyles.

+     *
+     *  @param value The new value for the constraint.
+     *
+     *  @see mx.containers.Canvas
+     *  @see mx.containers.Panel
+     */
+    function setConstraintValue(constraintName:String, value:*):void;
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17060
Author:   tkraikit@adobe.com
Date:     2010-07-26T17:43:05.087209Z

Log Message:
-----------
Fix for bug 26012: steps to better enforce singleton pattern in ResourceManager and LayoutManager (removed one constructor, @private'd the ASDoc for the other)

QE notes: -
Doc notes: -
Bugs: SDK-26012
Reviewer: Corey Lucier
Tests run: checkintests, mustella
Is noteworthy for integration: -

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -179,6 +179,7 @@
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
+     *  @private
      */
     public function LayoutManager()
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4778
Author:   jvroom@adobe.com
Date:     2009-02-01T17:26:43.632085Z

Log Message:
-----------
AS Doc updates

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as

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

--- frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as
+++ frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as
@@ -6,16 +6,59 @@
 use namespace mx_internal;

 /**
- * An instance of this class can manage formatting HTTP request responses and
- * converting their parameters.  HTTPMultiService and HTTPService will expose a
- * serializationFilter property, or you can define one of these statically and register it
- * for a custom resultFormat.  In that case, the resultFormat can be used to choose the
- * SerializationFilter automatically.
+ * This class is useful for framework developers wishing to plug in or modify the
+ * HTTP services to use a new serialization format.  This allows you to invoke
+ * methods on the service object and control how parameters are mapped to a specific
+ * serialiation format such as XML, JSON, etc.  The SerializationFilter mechanism
+ * allows you to add a new resultFormat as well.
+ *

+ * An instance of this class can manage formatting HTTP requests, responses, and
+ * converting their parameters.  When you use HTTPService or HTTPMultiService, you
+ * are usually talking to a server which expects the data to be provided in a specific
+ * format - for example, URL encoded values for a type HTML form, XML values or another
+ * serialization format such as JSON.  SerializationFilter
+ * allows you to customize how HTTPService and HTTPMultiService convert an operation's
+ * parameters into the body of the HTTP request and how the response is converted into
+ * the return value of the operation.  Framework developers can introduce a new serialization
+ * format to the system by providing a new implementation of the SerializationFilter and
+ * use these components and all of the frameworks and tools built on these components
+ * without having to know the details of the format itself.
+ *

+ *

+ * The first thing you do is to extend the SerializationFilter and override one or more
+ * of the conversion methods.   The filter allows you to turn the ordered list of parameters
+ * into a request body, modify the request body, modify the content type used in the
+ * request, modify the actual URL used in the request, and convert the response data into
+ * the result object returned in the result event of the service.
+ *

+ *

+ * There are two ways to specify the SerializationFilter for a particular HTTPService,
+ * or HTTPMultiService.  You can either set the serializationFilter property on the service
+ * or you can statically register a SerializationFilter for a new result format.  If you
+ * use this approach, simply by specifying the resultFormat you can use a pre-registered
+ * SerializationFilter.  So for example, you might register a SerializationFilter for the
+ * "json" type and can then use that filter by setting resultFormat="json".
+ *

+ * Note that HTTPService only provides methods which directly take the request body
+ * and so does not use the "serializeParameters" method.
+ *

  */
 public class SerializationFilter
 {
     // replaces/returns previous with that name or null
     static mx_internal var filterForResultFormatTable:Object = new Object();
+
+    /**
+     * This static function is used to register a new SerializationFilter for a
+     * particular resultFormat value.  If you call this method once at startup,
+     * you can then just specify the resultFormat property of an HTTPService or HTTPMultiService
+     * to use that serialization filter to make it easier for developers to specify a
+     * format.
+     *
+     * @param resultFormat A custom resultFormat name to be associated with the supplied
+     * SerializationFilter.
+     * @param filter The SerializationFilter to register.
+     */
     public static function registerFilterForResultFormat(resultFormat:String, filter:SerializationFilter):SerializationFilter
     {
         var old:SerializationFilter = filterForResultFormatTable[resultFormat];
@@ -26,9 +69,21 @@

     /**
      * This method takes the result from the HTTP request in a raw format.  It
-     * can convert it to an ActionScript object.  It can use the resultType or
-     * resultElementType properties of the Operation.  It also can store additional
-     * properties on the operation's properties object.
+     * can convert it to a more fully typed ActionScript object if desired.
+     * To make the SerializationFilter more general, you can use the resultType or
+     * resultElementType properties of the AbstractOperation provided so your code can
+     * dynamically map the incoming request to the type configured in ActionScript as
+     * the return type.
+     *

+     * Note also that AbstractOperation has a "properties" map which you
+     * can use to store additional properties as part of the service invocation
+     * in ActionScript to handle the deserialization of a particular type.
+     *

+     *
+     * @param operation The AbstractOperation which is being invoked.
+     * @param result the raw result as returned from the server.
+     * @return the converted result which will then be supplied in the result event
+     * for the service.
      */
     public function deserializeResult(operation:AbstractOperation, result:Object):Object
     {
@@ -36,9 +91,18 @@
     }

     /**
-     * This is a hook to override the request's content type for a specific serializer.
-     * It is given the parameter object and the content type configured on the operation.
-     * The default behavior is to return the supplied content type.
+     * This method is called by the HTTP service just before a call is made.  Its role
+     * is to choose the contentType used for this request.  For many serialization
+     * formats, there is a single fixed content type so you might just return that content
+     * type here.  Since the HTTPService is itself configured with a content type, that
+     * value is passed in here and returned by the default implementation.  The request
+     * body being serialized is also provided with the obj parameter just in case the
+     * content type depends on the type of object being sent to the server.
+     *
+     * @param operation The AbstractionOperation being invoked.
+     * @param obj the body of the HTTP request being serialized
+     * @param contentType the contentType configured for the operation
+     * @return the content type to use for this HTTP request.
      */
     public function getRequestContentType(operation:AbstractOperation, obj:Object, contentType:String):String
     {
@@ -46,17 +110,21 @@
     }

     /**
-     * This method is used when you use the "send" method to the mx.rpc.http.Operation.
-     * That method takes an array of parameters without names.  The role of this method
-     * is to convert this to a single object which is used as the data for the HTTP request
-     * body.  The default implementation produces an object where the keys are the values
-     * in the Operation's argumentNames array and the values are the values of the parameters.
+     * This method is called from the "send" method of the HTTP service invocation to convert the
+     * parameters into a request body.  The parameters of the original send call are put into the
+     * params array.  This method converts this set of parameters into to a single object which is used as the
+     * data for the HTTP request body.  The default implementation produces an object where the
+     * keys are the values in the Operation's argumentNames array and the values are the values of the parameters.
      * When using the default implementation, you must set argumentNames to have the same number
      * of elements as the parameters array.
      *
      *
Note that this method is not used if you invoke the HTTP operation using the sendBody
      * method which just takes a single object.  In that case, this step is skipped and only
      * the serializeBody method is called.

+     *
+     * @param operation The AbstractOperation being invoked.
+     * @param params the list of parameters passed to the send method
+     * @return the body to be used in the HTTP request
      */
     public function serializeParameters(operation:AbstractOperation, params:Array):Object
     {
@@ -79,7 +147,13 @@
     /**
      * This method is called for all invocations of the HTTP service.  It is able to convert
      * the supplied object into a form suitable for placing directly in the HTTP's request
-     * body.
+     * body.  The default implementation just returns the object passed in as the body without
+     * any conversion.
+     *
+     * @param operation The AbstractOperation being invoked
+     * @param obj the initial body of the HTTP request, either the return value of serializeParameters or the parameter to the sendBody method
+     * or the send method of HTTPService.
+     * @return the potentially converted body to use in the request.
      */
     public function serializeBody(operation:AbstractOperation, obj:Object):Object
     {
@@ -88,8 +162,12 @@

     /**
      * This method is used if you need to take data from the request body object and encode
-     * it into the URL string.   It is given the incoming URL.  By default, the incoming
-     * URL is returned directly.
+     * it into the URL string.  It is given the incoming URL as configured on the operation
+     * or service.  This implementation just returns the incoming URL without any conversion.
+     *
+     * @param operation The AbstractOperation being invoked
+     * @param url the URL set on the service or operation
+     * @return the potentially modified URL to use for this request.
      */
     public function serializeURL(operation:AbstractOperation, obj:Object, url:String):String
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12038
Author:   smgilson@adobe.com
Date:     2009-11-20T13:42:29.011224Z

Log Message:
-----------
Various ASDoc fixes:

- Update DropDownListSkin.mxml for SDK-22632
- Update Group.as for FLEXDOCS-862
- Fix invalid HTML in DropDownList.as

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -216,10 +216,10 @@
      *  of the layout.

      *
      *
Restriction: if the typicalItem is an IVisualItem, it must not
-     *  also be a member of the data Provider.

+     *  also be a member of the data provider.

      *
-     *
Note: Setting typicalItem in DropDownList will override any explicit width or height
-     *  set on the labelDisplay.
+     *
Note: Setting typicalItem overrides any explicit width or height
+     *  set on the labelDisplay skin part.

      *
      *  @default null
      *


fixed bug where loading file w/ cached column data would not cause the cache to be saved the next time you save the file.

--- WeaveData/src/weave/data/AttributeColumnCache.as
+++ WeaveData/src/weave/data/AttributeColumnCache.as
@@ -175,6 +175,7 @@
 		 */
 		public function restoreCache(cacheData:Object):void
 		{
+			saveCache = cacheData;
 			for each (var args:Array in cacheData)
 				addToColumnCache.apply(this, args);
 		}


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

--- frameworks/projects/mx/src/mx/accessibility/SliderAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/SliderAccImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 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.
+//  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
+//
+//      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: 3589
Author:   matamel@adobe.com
Date:     2008-10-13T13:59:09.285306Z

Log Message:
-----------
Bug: N/A
QA: Yes
Doc: No

Details: Added a default priority constant. Also, when the message priority header is set, now making sure it's within range before sending the message.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Producer.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as
+++ frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as
@@ -207,10 +207,7 @@
     {
         if (_priority != value)
         {
-            if (value < 0)
-                value = 0;
-            else if (value > 9)
-                value = 9;
+            value = value < 0? 0 : value > 9? 9 : value;

             var event:PropertyChangeEvent = PropertyChangeEvent.createUpdateEvent(this, "priority", _priority, value);
             _priority = value;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3665
Author:   hmuller@adobe.com
Date:     2008-10-15T20:42:18.087020Z

Log Message:
-----------
Fixed 17335, completed Scrollbar viewport property, fixed an FxRange::setValue() problem.

Added a special case for zero-height rows/columns to
Vertical,HorizontalLayout::updateDisplayList(),::inView()
to fix 17335.

Fixed FxRange: now FlexEvent.VALUE_COMMIT event handlers
will see the final constrained value, per
FxRange::nearestValidValue(), as they should.

Completed the ScrollBar viewport property implementation.   Now
all of the synchronization between scrollbars and a their viewport
is handled by the scrollbar.   Previously it was handled by both
FxScroller, ScrollerSkin, and the layout classes.

ScrollBar now tracks its viewport's actual size, content size, and
scroll positions.  The corresonding code and protected API has been
removed from FxScroller, notably:

  protected function vsb_valueCommitHandler(event:Event):void
  protected function hsb_valueCommitHandler(event:Event):void
  protected function viewportContentWidthChanged(event:PropertyChangeEvent):void
  protected function viewportContentHeightChanged(event:PropertyChangeEvent):void
  protected function viewportHorizontalScrollPositionChanged(event:PropertyChangeEvent):void
  protected function viewportVerticalScrollPositionChanged(event:PropertyChangeEvent):void

The protected methods for tracking the viewport have moved,
with slightly different names, to FxScrollBar:

  protected function viewportResizeHandler(event:ResizeEvent):void
  protected function viewportContentWidthChangeHandler(event:PropertyChangeEvent):void
  protected function viewportContentHeightChangeHandler(event:PropertyChangeEvent):void
  protected function viewportHorizontalScrollPositionChangeHandler(event:PropertyChangeEvent):void
  protected function viewportVerticalScrollPositionChangeHandler(event:PropertyChangeEvent):void

QE: I've made API changes
Doc: No
Checkintests: Pass
Reviewer: Ryan
Bugs:
    SDK-17335 - inView reports incorrectly when setting rowHeight to zero on a VerticalLayout

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxRange.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/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.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/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -15,6 +15,9 @@
 import mx.layout.ILayoutItem;
 import mx.layout.LayoutItemFactory;
 import mx.components.baseClasses.FxScrollBar;
+import mx.events.PropertyChangeEvent;
+import mx.events.ResizeEvent;
+import flash.events.Event;

 /**
  *  The FxVScrollBar (vertical ScrollBar) control lets you control
@@ -65,10 +68,24 @@
     // Methods
     //
     //--------------------------------------------------------------------------
-
-    /**
-     *  Position the thumb button based on the specified thumb position,
-     *  relative to the current Y location of the track in the control.
+
+    /**
+     *  Update the value property and, if viewport is non null, then set
+     *  its verticalScrollPosition to value.
+     *
+     *  @param value The new value of the value property.
+     *  @see viewport
+     */
+    override protected function setValue(value:Number):void
+    {
+        super.setValue(value);
+        if (viewport)
+            viewport.verticalScrollPosition = value;
+    }
+
+    /**
+     *  Position the thumb button according to the given thumbPos parameter,
+     *  relative to the current y location of the track in the scrollbar control.
      *
      *  @param thumbPos A number representing the new position of the thumb
      *  button in the control.
@@ -210,6 +227,43 @@
         super.partAdded(partName, instance);
     }

+    /**
+     *  Set this scrollbar's value to the viewport's current
+     *  verticalScrollPosition.
+     *
+     *  @see IViewport#verticalScrollPosition
+     */
+    override protected function viewportVerticalScrollPositionChangeHandler(event:PropertyChangeEvent):void
+    {
+        if (viewport)
+            value = viewport.verticalScrollPosition;
+    }
+
+    /**
+     *  Set this scrollbar's maximum to the viewport's contentHeight
+     *  less the viewport height and its pageSize to the viewport's height.
+     */
+    override protected function viewportResizeHandler(event:ResizeEvent):void
+    {
+        if (viewport)
+        {
+            maximum = viewport.contentHeight - viewport.height;
+            pageSize = viewport.height;
+        }
+    }
+
+    /**
+     *  Set this scrollbar's maximum to the viewport's contentHeight
+     *  less the viewport height.
+     *
+     *  @see IViewport#contentWidth
+     *  @see IViewport#width
+     */
+    override protected function viewportContentHeightChangeHandler(event:PropertyChangeEvent):void
+    {
+        if (viewport)
+            maximum = viewport.contentHeight - viewport.height;
+    }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4894
Author:   hmuller@adobe.com
Date:     2009-02-07T17:17:54.948626Z

Log Message:
-----------
I10 Bug fixes: FxScroller mouse wheel scrolling, FxScrollerSkin.

QE Notes: Mustella tests pass
Doc Notes: None
Bugs:
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.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>

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

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -133,6 +133,7 @@
     override protected function sizeThumb(thumbSize:Number):void
     {
         thumb.height = thumbSize;
+        thumb.visible = thumbSize < trackSize;
     }

     /**


- checks on stop() method.

- checks on stop() method.

--- src/flash/htmlelements/AudioElement.as
+++ src/flash/htmlelements/AudioElement.as
@@ -190,6 +190,19 @@
 			sendEvent(HtmlMediaEvent.PAUSE);
 		}

+
+		public function stop():void {
+			if (_timer != null) {
+				_timer.stop();
+			}
+			if (_soundChannel != null) {
+				_soundChannel.stop();
+				_sound.close();
+			}
+			unload();
+			sendEvent(HtmlMediaEvent.STOP);
+		}
+
 		public function setCurrentTime(pos:Number):void {
 			_timer.stop();
 			_currentTime = pos;
@@ -209,13 +222,6 @@
 			sendEvent(HtmlMediaEvent.PLAYING);
 		}

-		public function stop():void {
-			_timer.stop();
-			_soundChannel.stop();
-			_sound.close();
-			unload();
-			sendEvent(HtmlMediaEvent.STOP);
-		}

 		public function setVolume(volume:Number):void {


Add max_clients parameter.

Add max_clients parameter.

This allows controlling what was the MAX_NUM_PROXY_PAIRS constant.

--- swfcat.as
+++ swfcat.as
@@ -17,6 +17,10 @@
  * The address of the facilitator to use. By default it is
  * DEFAULT_FACILITATOR_ADDR. Both <HOST> and <PORT> must be present.
  *
+ * max_clients=<NUM>
+ * How many clients to serve concurrently. The default is
+ * DEFAULT_MAX_NUM_PROXY_PAIRS.
+ *
  * client=1
  * If set (to any value), run in client RTMFP mode. In this mode, rather than
  * connecting to a facilitator and attempting to serve clients, swfcat starts an
@@ -63,7 +67,7 @@
             port: 9002
         };

-        private const MAX_NUM_PROXY_PAIRS:uint = 100;
+        private const DEFAULT_MAX_NUM_PROXY_PAIRS:uint = 100;

         // Milliseconds.
         private const FACILITATOR_POLL_INTERVAL:int = 10000;
@@ -79,11 +83,12 @@
         /* UI shown when debug is off. */
         private var badge:Badge;

-        /* Proxy pairs currently connected (up to MAX_NUM_PROXY_PAIRS). */
+        /* Proxy pairs currently connected (up to max_num_proxy_pairs). */
         private var proxy_pairs:Array;

         public var debug:Boolean;
         private var fac_addr:Object;
+        private var max_num_proxy_pairs:uint;
         private var local_addr:Object;

         public var rate_limit:RateLimit;
@@ -117,6 +122,8 @@

         private function loaderinfo_complete(e:Event):void
         {
+            var tmp:Object;
+
             debug = this.loaderInfo.parameters["debug"];

             if (debug || this.loaderInfo.parameters["client"]) {
@@ -139,6 +146,13 @@
                 return;
             }

+            tmp = get_param_number("max_clients", DEFAULT_MAX_NUM_PROXY_PAIRS);
+            if (tmp == null || tmp < 0) {
+                puts("Error: max_clients must be a nonnegative integer.");
+                return;
+            }
+            max_num_proxy_pairs = uint(tmp);
+
             local_addr = get_param_addr("local", DEFAULT_LOCAL_TOR_CLIENT_ADDR);
             if (!local_addr) {
                 puts("Error: Local spec must be in the form \"host:port\".");
@@ -164,13 +178,33 @@
                 return default_addr;
         }

+        /* Get a number from the given movie parameter, or the given default.
+           Returns null on error. First check for a null return, and then call
+           uint or whatever on the return value if no error. */
+        private function get_param_number(param:String, default_val:Number):Object
+        {
+            var spec:String;
+            var val:Number;
+
+            spec = this.loaderInfo.parameters[param];
+            if (spec) {
+                val = Number(spec);
+                if (isNaN(val))
+                    return null;
+                else
+                    return val;
+            } else {
+                return default_val;
+            }
+        }
+
         /* The main logic begins here, after start-up issues are taken care of. */
         private function proxy_main():void
         {
             var fac_url:String;
             var loader:URLLoader;

-            if (proxy_pairs.length >= MAX_NUM_PROXY_PAIRS) {
+            if (proxy_pairs.length >= max_num_proxy_pairs) {
                 setTimeout(proxy_main, FACILITATOR_POLL_INTERVAL);
                 return;
             }


remove implicit rules that force playlist to be audio only

--- src/org/mangui/HLS/parsing/Manifest.as
+++ src/org/mangui/HLS/parsing/Manifest.as
@@ -124,9 +124,6 @@
                     for(var j:Number = 0; j<params.length; j++) {
                         if(params[j].indexOf('BANDWIDTH') > -1) {
                             level.bitrate = params[j].split('=')[1];
-                            if(level.bitrate < 150000) {
-                                level.audio = true;
-                            }
                         } else if (params[j].indexOf('RESOLUTION') > -1) {
                             level.height  = params[j].split('=')[1].split('x')[1];
                             level.width = params[j].split('=')[1].split('x')[0];


Removed restoreOldConnections()

Removed restoreOldConnections()

--- src/Components/Wire.as
+++ src/Components/Wire.as
@@ -14,7 +14,6 @@
 		public var connections:Vector.<Carrier>;

 		private var lastPathEnd:Point; //microoptimization in attemptPathTo
-		private var oldConnections:Vector.<Carrier>;
 		protected var constrained:Boolean = true;

 		public function Wire(Start:Point) {
@@ -235,10 +234,7 @@
 			}

 			exists = true;
-			if (!oldConnections)
-				checkForConnections();
-			else
-				restoreOldConnections();
+			checkForConnections();
 			if (source)
 				propagateSource();

@@ -268,13 +264,6 @@
 				}
 		}

-		protected function restoreOldConnections():void {
-			connections = oldConnections;
-			for each (var connection:Carrier in connections)
-				joinConnection(connection);
-			oldConnections = null; //un-needed, but aesthetically pleasing
-		}
-
 		public function addConnections(carriers:Vector.<Carrier>):void {
 			if (!carriers)
 				return;
@@ -338,7 +327,6 @@
 				source.propagateSource(); //re-propagate
 			}

-			oldConnections = connections;
 			connections = new Vector.<Carrier>; //un-needed, but aesthetically pleasing
 			source = null;


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

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

 package mx.olap
 {


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

--- frameworks/projects/charts/src/mx/styles/metadata/TextStyles.as
+++ frameworks/projects/charts/src/mx/styles/metadata/TextStyles.as
@@ -1,4 +1,24 @@
-
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  Color of text in the component, including the component label.
+ *
+ *  @default 0x0B333C
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
 [Style(name="color", type="uint", format="Color", inherit="yes")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 20742
Author:   smgilson@adobe.com
Date:     2011-03-09T21:46:11.224420Z

Log Message:
-----------
Merge 20732 - asdoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/SwitchSymbolFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/State.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/effects/effectClasses/UnconstrainItemActionInstance.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as</path>

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

--- frameworks/projects/framework/src/mx/effects/CompositeEffect.as
+++ frameworks/projects/framework/src/mx/effects/CompositeEffect.as
@@ -144,6 +144,8 @@

     [Inspectable(category="General", arrayType="mx.effects.Effect")]

+    private var _children:Array = [];
+
     /**
      *  An Array containing the child effects of this CompositeEffect.
      *
@@ -152,8 +154,6 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    private var _children:Array = [];
-
     public function get children():Array
     {
         return _children;
@@ -313,13 +313,13 @@
                     childEffect.filterObject = filterObject;
                 }

-				// TODO (chaase): This doesn't seem good enough...
-				// possibly redundant, but otherwise we'll be using the
-				// old semantics. Might be a better way (e.g., reuse
-				// the same semantics provider). Note that it's been
+                // TODO (chaase): This doesn't seem good enough...
+                // possibly redundant, but otherwise we'll be using the
+                // old semantics. Might be a better way (e.g., reuse
+                // the same semantics provider). Note that it's been
                 // working since Flex 3.
                 if (effectTargetHost) // && !childEffect.targetSemantics)
-                	childEffect.effectTargetHost = effectTargetHost;
+                    childEffect.effectTargetHost = effectTargetHost;

                 if (childEffect.targets.length == 0)
                 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 10002
Author:   jszeto@adobe.com
Date:     2009-09-03T20:17:09.808992Z

Log Message:
-----------
Gradient matrix transform fix

http://bugs.adobe.com/jira/browse/SDK-22928 - Gradient matrix transform applying incorrect transforms

Previously, the logic transformed the gradient to fill the shape bounds and then combined the matrix transform. Now using the same values for the discreet transform properties versus the matrix properties should result in the same appearance.

These changes are applied to LinearGradient, RadialGradient, LinearGradientStroke and RadialGradientStroke.

QE notes: Matrix transform behavior has changed
Doc notes: Need info on matrix behavior
Bugs: SDK-22928
Reviewer: Glenn
Tests run: spark/primitives
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradient.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/LinearGradient.as
+++ frameworks/projects/framework/src/mx/graphics/LinearGradient.as
@@ -283,20 +283,21 @@

 	    	// Scale the gradient in the x direction. The natural size is 1638.4px. No need
 	    	// to scale the y direction because it is infinite
-	    	commonMatrix.scale (length / GRADIENT_DIMENSION, 1);
+	    	commonMatrix.scale (length / GRADIENT_DIMENSION, 1 / GRADIENT_DIMENSION);

 		    commonMatrix.rotate (!isNaN(_angle) ? _angle : rotationInRadians);
 		    if (isNaN(tx))
 	    		tx = bounds.width / 2;
 		    if (isNaN(ty))
 	    		ty = bounds.height / 2;
-	    	commonMatrix.translate(tx + bounds.left, ty + bounds.top);
+	    	commonMatrix.translate(tx + bounds.left, ty + bounds.top);
 		}
 		else
 		{
-			commonMatrix.scale(bounds.width / GRADIENT_DIMENSION, 1);
-			commonMatrix.translate(bounds.left + bounds.width / 2, 0);
-			commonMatrix.concat(compoundTransform.matrix);
+            commonMatrix.translate(GRADIENT_DIMENSION / 2, GRADIENT_DIMENSION / 2);
+            commonMatrix.scale(1 / GRADIENT_DIMENSION, 1 / GRADIENT_DIMENSION);
+            commonMatrix.concat(compoundTransform.matrix);
+            commonMatrix.translate(bounds.left, bounds.top);
 		}

 		target.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios,


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 8615
Author:   dsubrama@adobe.com
Date:     2009-07-16T00:06:27.325362Z

Log Message:
-----------
Added in enumerations to Inspectable metadata for a bunch of properties.

Reviewer: Ryan
QA: Yes, regress
Doc: No
Checkintests: Pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.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/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/IDeferredContentOwner.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/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.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/primitives/VideoElement.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransform.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransform.as
@@ -245,8 +245,10 @@
     //----------------------------------
     //  applyChangesPostLayout
     //----------------------------------
-    [Inspectable(category="General")]
+
     private var _applyChangesPostLayout:Boolean = false;
+
+    [Inspectable(category="General", enumeration="true,false")]
     /**
      *  This flag is used by the subclasses of AnimateTransform to specify
      *  whether the effect changes transform values used by the layout


Transferred from the Adobe Open Source Subversion Repository

Revision: 6441
Author:   chaase@adobe.com
Date:     2009-04-30T22:28:01.444147Z

Log Message:
-----------
Fixed various bugs in the transform effects, plus an unrelated namespace bug where TransformOffsets was still living only in the halo namespace.

QE Notes: Fixes projection bugs that were holdups to 3D effects testing
Doc Notes: None
Bugs: sdk-20169, sdk-20807, sdk-20846
Reviewer: Jason
Tests: checkintests, Musteall spark/effects/Move spark/effects/AnimateTransform spark/effects/Rotate spark/effects/AnimateTransform mx/states/Transition

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransform.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransform.as
@@ -14,6 +14,7 @@
 import flash.geom.Vector3D;
 import flash.utils.Dictionary;

+import mx.core.IUIComponent;
 import mx.core.mx_internal;
 import mx.effects.Effect;
 import mx.effects.IEffectInstance;
@@ -21,6 +22,7 @@
 import mx.geom.TransformOffsets;
 import mx.styles.IStyleClient;

+import spark.core.IGraphicElement;
 import spark.effects.supportClasses.AnimateTransformInstance;

 use namespace mx_internal;
@@ -1039,6 +1041,16 @@
         for (i = 0; i < n; i++)
         {
             target = propChanges[i].target;
+            // TODO (chaase): should only capture values for targets of this effect.
+            // currently no easy way to determine this, since if we are
+            // running in a composite effect, that effect will create
+            // propertyChange targets for all effect children.
+            // Might want to change API of captureValues to specify the
+            // targets to iterate through
+            // For now, just make sure that we can transform the current target
+            // then go ahead and capture values for it
+            if (!(target is IUIComponent) && !(target is IGraphicElement))
+                continue;
             valueMap = setStartValues ? propChanges[i].start : propChanges[i].end;
             if (valueMap.translationX === undefined ||
                 valueMap.translationY === undefined ||
@@ -1414,8 +1426,7 @@
     	if(isNaN(valueFrom) && isNaN(valueTo) && isNaN(valueBy))
     	   return;

-        if(target.offsets == null)
-            target.offsets = new TransformOffsets();
+        postLayoutTransformPropertiesSet = true;
     	addMotionPath(property,valueFrom,valueTo,valueBy);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22190
Author:   egeorgie@adobe.com
Date:     2011-08-24T21:16:42.308482Z

Log Message:
-----------
SDK-31167 ensureIndexIsVisible doesn't work properly with fullscreen images when useVirtualLayout is true and columnWidth is set

- Make sure columnWidth/rowHeight settings are used as defaultMajorSize for the LLV in virtualized HorizontalLayout/VerticalLayout

QE notes:
Doc notes:
Bugs: SDK-31167
Reviewer:  Hans
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -1518,8 +1518,13 @@
             llv.defaultMinorSize = typicalHeight;
             llv.defaultMajorSize = typicalWidth;
         }
+
+        if (!isNaN(columnWidth))
+            llv.defaultMajorSize = columnWidth;
+
         if (layoutTarget)
             llv.length = layoutTarget.numElements;
+
         llv.gap = gap;
         llv.majorAxisOffset = paddingLeft;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6296
Author:   mhorn@adobe.com
Date:     2009-04-27T19:28:25.993605Z

Log Message:
-----------
fix asdoc errors. 2 <ul> tags were missing closing slashes.

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

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -51,7 +51,7 @@
  *    property is ignored when the layout is virtualized.

  *
  *
Set the element's width to its preferred width.

- *

+ *

  *
  *  The height of each element is calculated according to the following rules,
  *  listed in their respective order of precedence (element's minium height and


Transferred from the Adobe Open Source Subversion Repository

Revision: 20069
Author:   egeorgie@adobe.com
Date:     2011-02-02T21:29:58.483657Z

Log Message:
-----------
PARB: remove alignmentBaseline and actualAlignmentBaseline from HorizontalLayout and HGroup.

The recommendation is to use paddingTop instead. alignmentBaseline is actually mx_itnernal now.

QE notes:
Doc notes: Make sure doc is up-to-date
Bugs:
Reviewer: Glenn
Tests run: mustella
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -196,75 +196,24 @@
     //--------------------------------------------------------------------------

     //----------------------------------
-    //  actualAlignmentBaseline
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the actualAlignmentBaseline property.
-     */
-    private var _actualAlignmentBaseline:Number = 0;
-    [Bindable("propertyChange")]
-    [Inspectable(category="General")]
-
-    /**
-     *  The computed base line, in pixels, relative to the paddingTop
-     *  of the container.
+    //  alignmentBaseline
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the alignmentBaseline property.
+     */
+    private var _alignmentBaseline:Object = "maxAscent:0";
+
+    /**
+     *  @private
      *
-     *  The base line is the virtual horizontal line to which layout elements' text is aligned.
-     *
-     *  The actualAlignmentBaseline is computed in the layout's updateDisplayList()
-     *  and is based on the alignmentBaseline property as well as the baselinePosition
-     *  and baseline properties of the layout elements.
-     *
-     *  Note that actualAlignmentBaseline is computed only when verticalAlign
-     *  is set to "baseline".
-     *
-     *  @see #alignmentBaseline
-     *  @see #verticalAlign
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public function get actualAlignmentBaseline():Number
-    {
-        return _actualAlignmentBaseline;
-    }
-
-    /**
-     *  @private
-     */
-    private function setActualAlignmentBaseline(value:Number):void
-    {
-        if (_actualAlignmentBaseline == value)
-            return;
-
-        var oldValue:Number = _actualAlignmentBaseline;
-        _actualAlignmentBaseline = value;
-
-        dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "actualAlignmentBaseline", oldValue, value));
-    }
-
-    //----------------------------------
-    //  alignmentBaseline
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the alignmentBaseline property.
-     */
-    private var _alignmentBaseline:Object = "maxAscent:0";
-    [Inspectable(category="General")]
-
-    /**
      *  The base line of the layout, in pixels.
      *
      *  The base line is the virtual horizontal line to which layout elements' text is aligned,
      *  it is relative to the top edge of the container plus any paddingTop.
      *
-     *  The base line can be specified as either an explicit number, or as a numberical offset to
+     *  The base line can be specified as either an explicit number, or as a numberical offset from
      *  the computed maximum of the elements' text ascent by using the "maxAscent:offset" syntax.
      *
      *  Note that alignmentBaseline has an effect only when verticalAlign
@@ -278,7 +227,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function get alignmentBaseline():Object
+    mx_internal function get alignmentBaseline():Object
     {
         return _alignmentBaseline;
     }
@@ -286,7 +235,7 @@
     /**
      *  @private
      */
-    public function set alignmentBaseline(value:Object):void
+    mx_internal function set alignmentBaseline(value:Object):void
     {
         if (_alignmentBaseline == value)
             return;
@@ -882,12 +831,9 @@
      *  of the layout elements is set to the container's height.

      *
      *
If the value is "baseline" then the elements are positioned
-     *  such that thier text is aligned to the alignmentBaseline of the layout.

-     *
-     *
This property does not affect the layout's measured size.

-     *
+     *  such that thier text is aligned to the maximum of the elements' text ascent.

+     *
      *  @default "top"
-     *  @see #alignmentBaseline
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -2195,9 +2141,6 @@
             x += dx + gap;
         }

-        if (alignToBaseline)
-            setActualAlignmentBaseline(actualBaseline);
-
         setColumnCount(visibleColumns);
         setIndexInView(firstColInView, lastColInView);


Some changes in hard ai. But it still weaker then medium ai. :(

--- bin/Data/AngelScript/Components/HardAi.as
+++ bin/Data/AngelScript/Components/HardAi.as
@@ -4,6 +4,7 @@
     protected bool tryToFireInNextFrame_;
     protected float timeFromLastScan_;
     protected float timeFromLastShotRaycasting_;
+    protected bool isLastDecisionRunAway_;

     protected Array <Node @> @GetEnemiesNear ()
     {
@@ -18,7 +19,7 @@
                 processingNode.vars ["ObjectType"].GetInt () ==
                 SerializationConstants__OBJECT_TYPE_PLAYER and
                 not processingNode.HasTag ("Died") and
-                (processingNode.position - node.position).length < 30.0f)
+                (processingNode.position - node.position).length < 25.0f)

                 enemiesNear.Push (processingNode);
         }
@@ -42,6 +43,7 @@
             normalizedMoveRequest_.y = 0.0f;
         else
             normalizedMoveRequest_.y = 1.0f;
+        isLastDecisionRunAway_ = true;
     }

     protected void GoRightToPosition (Vector3 position)
@@ -53,19 +55,13 @@
         else
             normalizedMoveRequest_.x = 0.0f;

-        if (position.x > 35.0f)
-            normalizedMoveRequest_.y = 0.25f;
-        else if (position.x > 15.0f)
-            normalizedMoveRequest_.y = 0.5f;
-        else if (position.x > 0.0f)
+        if (position.x > 5.0f)
             normalizedMoveRequest_.y = 1.0f;
-
-        if (position.x < -35.0f)
-            normalizedMoveRequest_.y = -0.25f;
-        else if (position.x < -15.0f)
-            normalizedMoveRequest_.y = -0.5f;
-        else if (position.x < -0.0f)
+        else if (position.x < -5.0f)
             normalizedMoveRequest_.y = -1.0f;
+        else
+            normalizedMoveRequest_.y = 0.0f;
+        isLastDecisionRunAway_ = false;
     }

     protected float CalculateRunAwayDecisionPoints (Array <Node @> @enemiesNear)
@@ -82,14 +78,14 @@
             ray.direction = processingEnemy.worldRotation * Vector3 (0, 0, 1);

             PhysicsRaycastResult result =
-                physicsWorld.RaycastSingle (ray, 40.0f);
+                physicsWorld.RaycastSingle (ray, 30.0f);

             if (result.body !is null and
                 result.body.node.id == node.id)
             {
                 int myExp = node.vars ["Exp"].GetInt ();
                 int enemyExp = processingEnemy.vars ["Exp"].GetInt ();
-                runAwayDecisionPoints += 30.0f * (10.0f + enemyExp - myExp);
+                runAwayDecisionPoints += 20.0f * (10.0f + enemyExp - myExp);
             }
         }
         return runAwayDecisionPoints;
@@ -109,7 +105,7 @@
             float decisionPoints;

             decisionPoints += 150.0f / (processingEnemy.position - node.position).length;
-            decisionPoints += 400.0f * (GameplayConstants__BASIC_SHELL_DAMAGE *
+            decisionPoints += 500.0f * (GameplayConstants__BASIC_SHELL_DAMAGE *
                                         (1 + GameplayConstants__SHELL_DAMAGE_INCREASE_PER_EXP) /
                                         processingEnemy.vars ["Health"].GetFloat ()) ;

@@ -141,7 +137,7 @@
         ray.direction = node.worldRotation * Vector3 (0, 0, 1);

         PhysicsRaycastResult result =
-            physicsWorld.RaycastSingle (ray, 40.0f);
+            physicsWorld.RaycastSingle (ray, 25.0f);

         if (result.body !is null and
             result.body.node.vars ["ObjectType"].GetInt () ==
@@ -178,7 +174,8 @@
         timeFromLastScan_ += timeStep;
         timeFromLastShotRaycasting_ += timeStep;

-        if (timeFromLastScan_ > 0.4f)
+        if ((timeFromLastScan_ > 0.2f and not isLastDecisionRunAway_) or
+            timeFromLastScan_ > 0.75f)
         {
             Array <Node @> @enemies = GetEnemiesNear ();
             float runAwayPoints = CalculateRunAwayDecisionPoints (enemies);


Transferred from the Adobe Open Source Subversion Repository

Revision: 4611
Author:   chaase@adobe.com
Date:     2009-01-22T00:30:21.783682Z

Log Message:
-----------
Various bug fixes in effects, mostly in the area of seeking, auto-reversing, and shader transitions.

QE Notes: None
Doc Notes: None
Bugs: sdk-17783, sdk-18767, sdk-18759, sdk-18461, sdk-18309, sdk-18013, sdk-18688
Reviewer: Jason
Tests: checkintests, Mustella: Effects, gumbo/effects, ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/UnconstrainItemAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/AddChildAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Parallel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/SetPropertyAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/RemoveChildAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/AddItemAction.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/effects/SetStyleAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/RemoveItemAction.as</path>

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

--- frameworks/projects/mx/src/mx/effects/SetPropertyAction.as
+++ frameworks/projects/mx/src/mx/effects/SetPropertyAction.as
@@ -65,7 +65,7 @@
 	public function SetPropertyAction(target:Object = null)
 	{
 		super(target);
-
+        duration = 0;
 		instanceClass = SetPropertyActionInstance;
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 2876
Author:   jimurphy@adobe.com
Date:     2008-08-19T00:53:52.343767Z

Log Message:
-----------
-integrate:
 -vellum build 152
 -player build 576

-applied Gordons patch for the vellum API change
-removed the player/[os] directories.  player/10/[os] will now be the directory in which players will be integrated
-added new variable to build.xml, player.target so that checkintests run properly and the staging for the packaging will continue to work with the structure changes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Parser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 Plugin.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_importExport.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextFlowComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 ActiveX.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/player/10/playerglobal.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_edit.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/flashplayer.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextView.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/utils/TextUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/install_flash_player_10_linux.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/libflashplayer.so.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_model.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/FlashPlayer.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Flash Player.app.zip</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -20,14 +20,14 @@
 import flex.graphics.graphicsClasses.TextGraphicElement;
 import flex.utils.TextUtil;

+import text.elements.FlowElement;
+import text.elements.ParagraphElement;
+import text.elements.SpanElement;
+import text.elements.TextFlow;
+import text.formats.ICharacterFormat;
+import text.formats.IContainerFormat;
+import text.formats.IParagraphFormat;
 import text.importExport.TextFilter;
-import text.model.FlowElement;
-import text.model.ICharacterFormat;
-import text.model.IContainerFormat;
-import text.model.IParagraphFormat;
-import text.model.Paragraph;
-import text.model.Span;
-import text.model.TextFlow;

 [DefaultProperty("content")]

@@ -615,8 +615,8 @@
 	private function createEmptyTextFlow():TextFlow
 	{
 		var textFlow:TextFlow = new TextFlow();
-		var p:Paragraph = new Paragraph();
-		var span:Span = new Span();
+		var p:ParagraphElement = new ParagraphElement();
+		var span:SpanElement = new SpanElement();
 		textFlow.replaceElements(0, 0, p);
 		p.replaceElements(0, 0, span);
 		return textFlow;


Transferred from the Adobe Open Source Subversion Repository

Revision: 6641
Author:   cframpto@adobe.com
Date:     2009-05-05T15:53:49.762827Z

Log Message:
-----------
Back out 6637 and 6639 until I do some more testing.  Even though all the mustella tests are passing I'm seeing some odd behavior.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextInput.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -96,6 +96,11 @@
 	//
 	//--------------------------------------------------------------------------

+	/**
+	 *  @private
+	 */
+    private var textInvalid:Boolean = false;
+
 	//--------------------------------------------------------------------------
 	//
 	//  Overridden properties
@@ -115,12 +120,28 @@
 	/**
 	 *  @private
 	 */
+    override public function get text():String
+    {
+        if (textInvalid)
+        {
+            mx_internal::_text = textView.text;
+            textInvalid = false;
+        }
+
+        return mx_internal::_text;
+    }
+
+	/**
+	 *  @private
+	 */
     override public function set text(value:String):void
     {
         // Setting 'text' temporarily causes 'content' to become null.
         // Later, after the 'text' has been committed into the TextFlow,
         // getting 'content' will return the TextFlow.
-        setContent(null);
+        _content = null;
+        contentChanged = false;
+
         super.text = value;
     }

@@ -133,6 +154,16 @@
     //----------------------------------
 	//  content
     //----------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _content:Object;
+
+	/**
+	 *  @private
+	 */
+	private var contentChanged:Boolean = false;

 	[Bindable("change")]
 	[Bindable("contentChanged")]
@@ -148,7 +179,7 @@
 	 */
 	public function get content():Object
 	{
-		return getContent();
+		return _content;
 	}

 	/**
@@ -156,11 +187,19 @@
 	 */
 	public function set content(value:Object):void
 	{
-		if (value == getContent())
+		if (value == _content)
 			return;

-        super.text = null;
-        setContent(value);
+        // Setting 'content' temporarily causes 'text' to become null.
+        // Later, after the 'content' has been committed into the TextFlow,
+        // getting 'text' will extract the text from the TextFlow.
+        mx_internal::_text = null;
+        mx_internal::textChanged = false;
+
+		_content = value;
+		contentChanged = true;
+
+		invalidateProperties();

 		dispatchEvent(new Event("contentChanged"));
 	}
@@ -170,6 +209,16 @@
     //----------------------------------

 	/**
+	 *  @private
+	 */
+	private var _heightInLines:Number = 10;
+
+	/**
+	 *  @private
+	 */
+	private var heightInLinesChanged:Boolean = false;
+
+	/**
 	 *  Documentation is not currently available.
 	 *
 	 *  @langversion 3.0
@@ -179,7 +228,7 @@
 	 */
 	public function get heightInLines():Number
 	{
-		return getHeightInLines();
+		return _heightInLines;
 	}

 	/**
@@ -187,7 +236,13 @@
 	 */
 	public function set heightInLines(value:Number):void
 	{
-        setHeightInLines(value);
+		if (value == _heightInLines)
+			return;
+
+		_heightInLines = value;
+		heightInLinesChanged = true;
+
+		invalidateProperties();
 	}

 	//----------------------------------
@@ -287,7 +342,54 @@

 		invalidateProperties();
 	}
-
+
+	//----------------------------------
+	//  widthInChars
+    //----------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _widthInChars:Number = 15;
+
+	/**
+	 *  @private
+	 */
+	private var widthInCharsChanged:Boolean = false;
+
+	/**
+	 *  The default width for the TextInput, measured in characters.
+	 *  The width of the "0" character is used for the calculation,
+	 *  since in most fonts the digits all have the same width.
+	 *  So if you set this property to 5, it will be wide enough
+	 *  to let the user enter 5 digits.
+	 *
+	 *  @default
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
+	 */
+	public function get widthInChars():Number
+	{
+		return _widthInChars;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set widthInChars(value:Number):void
+	{
+		if (value == _widthInChars)
+			return;
+
+		_widthInChars = value;
+		widthInCharsChanged = true;
+
+		invalidateProperties();
+	}
+
 	//--------------------------------------------------------------------------
     //
     //  Overridden methods
@@ -315,6 +417,24 @@
                 scroller.verticalScrollPolicy = _verticalScrollPolicy;
             verticalScrollPolicyChanged = false;
         }
+
+        if (widthInCharsChanged)
+		{
+			textView.widthInChars = _widthInChars;
+			widthInCharsChanged = false;
+		}
+
+        if (heightInLinesChanged)
+		{
+			textView.heightInLines = _heightInLines;
+			heightInLinesChanged = false;
+		}
+
+        if (contentChanged)
+        {
+            textView.content = _content;
+            contentChanged = false;
+        }
 	}

 	/**
@@ -326,11 +446,14 @@

 		if (instance == textView)
 		{
+			// Set the RichEditableText to allow multiple lines of input.
 			// In default.css, the TextArea selector has a declaration
 			// for lineBreak which sets it to "toFit".  It needs to be on
 			// TextArea rather than RichEditableText so that if changed later it
-			// will be inherited.
-
+			// will be inherited.  It needs to be set with the default
+			// before the possibility that it is changed when TextArea is
+			// created.  In this case, setting it here, would overwrite
+			// that change.
 			textView.heightInLines = 10;
 			textView.multiline = true;
             textView.autoSize = false;
@@ -418,10 +541,9 @@
         // That's too expensive for an TextArea,
         // which might have a lot of leaf nodes.

-        // Use the setter so that the contentChanged event is dispatched.
-        // The text will be set to invalid so it is refreshed the next time
-        // it is requested.
-		content = textView.content;
+        // Update our storage variable for the content.
+		_content = textView.content;
+        textInvalid = true;

 		// Redispatch the event that came from the RichEditableText.
 		dispatchEvent(event);
@@ -438,7 +560,7 @@
      */
     private function textView_textInvalidHandler(event:Event):void
     {
-        mx_internal::textInvalid = true;
+        textInvalid = true;
     }
 }


Spoon-feed the SecurityDomain to the Loader so you can grab remote test SWFs.

--- flash/org/windmill/astest/WMLoader.as
+++ flash/org/windmill/astest/WMLoader.as
@@ -20,8 +20,10 @@
   import flash.display.LoaderInfo;
 	import flash.net.URLRequest;
 	import flash.events.Event;
+	import flash.events.ProgressEvent;
   import flash.events.IOErrorEvent;
 	import flash.system.ApplicationDomain;
+	import flash.system.SecurityDomain;
 	import flash.system.LoaderContext;
   import flash.external.ExternalInterface;
   import flash.utils.getQualifiedClassName;
@@ -40,8 +42,9 @@
         var loader:Loader = new Loader();
         var url:String = WMLoader.urls.shift();
         var req:URLRequest = new URLRequest(url);
-        var con:LoaderContext = new LoaderContext(false,
-            ApplicationDomain.currentDomain);
+        var con:LoaderContext = new LoaderContext(true,
+            ApplicationDomain.currentDomain,
+            SecurityDomain.currentDomain);
         // Catch any error that occurs during async load
         loader.contentLoaderInfo.addEventListener(
             IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {


Last commit I accidentally pushed out with a duplicate log message- so this is for last commit: Added folder for player created content. Properties of this folder- Created and maintained entirely client-side. Currently, its folder Id is 99 (will change in future). Any player created content is initially put into this folder, but can be moved out if desired. Folder cannot be deleted. Folder will always stay on top of side palette. I think thats it...

--- flexEditor/src/org/arisgames/editor/components/PaletteTree.as
+++ flexEditor/src/org/arisgames/editor/components/PaletteTree.as
@@ -65,6 +65,7 @@
 			trace("ClosePlayerGenContent Folder");
 			this.playerContentFolderOpen = false;
 		}
+		//
 		AppServices.getInstance().saveFolder(GameModel.getInstance().game.gameId, thisFolder, new Responder(handleSavePaletteObject, handleFault));
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4692
Author:   gosmith@adobe.com
Date:     2009-01-27T22:13:03.562851Z

Log Message:
-----------
Fixed missing or misplaced 'break' statements in the eventHandler() methods of the mx.accessibility classes. These have probably been causing some unintented MSAA events to be dispatched.

Also, each accessible component now dispatches OBJ_NAMECHANGE when its toolTip or errorString property changes, because the MSAA name includes the tooltip or error tip.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TitleWindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/framework/src/mx/accessibility/AccImpl.as
+++ frameworks/projects/framework/src/mx/accessibility/AccImpl.as
@@ -373,6 +373,14 @@
 	 */
 	protected function eventHandler(event:Event):void
 	{
+		$eventHandler(event);
+	}
+
+	/**
+	 *  Handles events common to all accessible UIComponents.
+	 */
+	protected final function $eventHandler(event:Event):void
+	{
 		switch (event.type)
 		{
 			case "errorStringChanged":


Transferred from the Adobe Open Source Subversion Repository

Revision: 9890
Author:   aharui@adobe.com
Date:     2009-09-01T22:57:01.557537Z

Log Message:
-----------
Fix bug involving changes to tabbing related properties

QE Notes: None
Doc Notes: None
Bugs: SDK-19577
Reviewer: Corey
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/managers/FocusManager

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as

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

--- frameworks/projects/framework/src/mx/managers/FocusManager.as
+++ frameworks/projects/framework/src/mx/managers/FocusManager.as
@@ -1166,9 +1166,9 @@
 	                calculateCandidates = true;
     	            // trace("FM added " + o);
     	        }
-                o.addEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
-                o.addEventListener("tabIndexChange", tabIndexChangeHandler);
    			}
+            o.addEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
+            o.addEventListener("tabIndexChange", tabIndexChangeHandler);

         }

@@ -1261,6 +1261,10 @@

     private function isValidFocusCandidate(o:DisplayObject, g:String):Boolean
     {
+        if (o is IFocusManagerComponent)
+            if (!IFocusManagerComponent(o).focusEnabled)
+                return false;
+
         if (!isEnabledAndVisible(o))
             return false;

@@ -1635,14 +1639,14 @@
                         _lastFocus = null;
                     }
                     // trace("FM removed " + o);
-                    o.removeEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
-                    o.removeEventListener("tabIndexChange", tabIndexChangeHandler);
                     focusableObjects.splice(i, 1);
                     focusableCandidates = [];
                     calculateCandidates = true;
                     break;
                 }
             }
+            o.removeEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
+            o.removeEventListener("tabIndexChange", tabIndexChangeHandler);
         }
         removeFocusables(o, false);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4816
Author:   cframpto@adobe.com
Date:     2009-02-03T19:48:43.226039Z

Log Message:
-----------
FxRadioButton should not show focus ring when clicked on.  Remove focusInHandler.

QE Notes:
Doc Notes:
Bugs: SDK-19602
Reviewers: Darrell

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as

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

--- frameworks/projects/spark/src/spark/components/RadioButton.as
+++ frameworks/projects/spark/src/spark/components/RadioButton.as
@@ -12,7 +12,6 @@
 package mx.components
 {
 import flash.events.Event;
-import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
 import flash.ui.Keyboard;
@@ -540,17 +539,6 @@
     //  Overridden event handlers: UIComponent
     //
     //--------------------------------------------------------------------------
-    /**
-     *  @private
-     */
-    override protected function focusInHandler(event:FocusEvent):void
-    {
-        var fm:IFocusManager = focusManager;
-        if (fm)
-            fm.showFocusIndicator = enabled;
-
-        super.focusInHandler(event);
-    }

     /**
      *  @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 12852
Author:   smgilson@adobe.com
Date:     2009-12-11T16:03:54.532817Z

Log Message:
-----------
update ASDoc on matchesCSSState() and matchesCSSType()

hid some OSMF classes

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/VideoPlayer.as
+++ frameworks/projects/spark/src/spark/components/VideoPlayer.as
@@ -1276,6 +1276,8 @@
      *  @copy spark.components.VideoDisplay#scaleMode
      *
      *  @default "letterbox"
+     *
+     *  @see org.osmf.display.ScaleMode
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 10220
Author:   egeorgie@adobe.com
Date:     2009-09-14T00:39:59.323581Z

Log Message:
-----------
Fix http://bugs.adobe.com/jira/browse/SDK-21976 horizontal/vertical/tile layouts should prevent half-pixel locations

Fix: Vertical, Horizontal layouts round up element layout bounds to a whole pixel during measure/updateDisplayList. Does not affect virtualization.

QE notes: None
Doc notes: None
Bugs: SDK-21976
Reviewer: Chet
Tests run: checkintests, mustella (layout, gumbo core)
Is noteworthy for integration: No

Modified Paths:
--------------
<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/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -1043,17 +1043,18 @@
             if ((reqEltCount == -1) || ((reqEltCount != -1) && eltInLayoutCount < requestedRowCount))
             {
                 var height:Number = isNaN(fixedRowHeight) ? elt.getPreferredBoundsHeight() : fixedRowHeight;
+                height = Math.ceil(height); // Round up to give it a whole pixel.
                 preferredHeight += height;
-                minHeight += (isNaN(elt.percentHeight)) ? height : elt.getMinBoundsHeight();
+                minHeight += (isNaN(elt.percentHeight)) ? height : Math.ceil(elt.getMinBoundsHeight());
                 eltInLayoutCount += 1;
             }

             // Consider the width of each element, inclusive of those outside
             // the requestedRowCount range.
-            var width:Number = elt.getPreferredBoundsWidth();
+            var width:Number = Math.ceil(elt.getPreferredBoundsWidth());
             preferredWidth = Math.max(preferredWidth, width);
             var flexibleWidth:Boolean = !isNaN(elt.percentWidth) || horizontalAlign == HorizontalAlign.JUSTIFY;
-            minWidth = Math.max(minWidth, flexibleWidth ? elt.getMinBoundsWidth() : width);
+            minWidth = Math.max(minWidth, flexibleWidth ? Math.ceil(elt.getMinBoundsWidth()) : width);
         }

         if (eltInLayoutCount > 1)
@@ -1574,7 +1575,7 @@
                 else
                     layoutElementWidth = layoutElement.getPreferredBoundsWidth();

-                containerWidth = Math.max(containerWidth, layoutElementWidth);
+                containerWidth = Math.max(containerWidth, Math.ceil(layoutElementWidth));
             }
         }

@@ -1610,16 +1611,16 @@
                 continue;

             // Set the layout element's position
-            var x:Number = x0 + (containerWidth - layoutElement.getLayoutBoundsWidth()) * hAlign;
+            var dx:Number = Math.ceil(layoutElement.getLayoutBoundsWidth());
+            var dy:Number = Math.ceil(layoutElement.getLayoutBoundsHeight());
+
+            var x:Number = x0 + (containerWidth - dx) * hAlign;
             // In case we have HorizontalAlign.CENTER we have to round
             if (hAlign == 0.5)
                 x = Math.round(x);
             layoutElement.setLayoutBoundsPosition(x, y);

             // Update maxX,Y, first,lastVisibleIndex, and y
-            var dx:Number = layoutElement.getLayoutBoundsWidth();
-            var dy:Number = layoutElement.getLayoutBoundsHeight();
-
             maxX = Math.max(maxX, x + dx);
             maxY = Math.max(maxY, y + dy);
             if (!clipAndEnableScrolling ||
@@ -1659,8 +1660,8 @@
      *  after growing all children to their maxHeight.
      */
     private function distributeHeight(width:Number,
-                                     height:Number,
-                                     restrictedWidth:Number):Number
+                                      height:Number,
+                                      restrictedWidth:Number):Number
     {
         var spaceToDistribute:Number = height;
         var totalPercentHeight:Number = 0;
@@ -1669,7 +1670,7 @@
         var layoutElement:ILayoutElement;

         // rowHeight can be expensive to compute
-        var rh:Number = (variableRowHeight) ? 0 : rowHeight;
+        var rh:Number = (variableRowHeight) ? 0 : Math.ceil(rowHeight);
         var count:uint = target.numElements;
         var totalCount:uint = count; // number of elements to use in gap calculation

@@ -1702,7 +1703,7 @@
                 sizeLayoutElement(layoutElement, width, horizontalAlign,
                                restrictedWidth, NaN, variableRowHeight, rh);

-                spaceToDistribute -= layoutElement.getLayoutBoundsHeight();
+                spaceToDistribute -= Math.ceil(layoutElement.getLayoutBoundsHeight());
             }
         }


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

--- frameworks/projects/framework/src/mx/events/IndexChangedEvent.as
+++ frameworks/projects/framework/src/mx/events/IndexChangedEvent.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-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: 4842
Author:   jvroom@adobe.com
Date:     2009-02-04T22:48:13.215643Z

Log Message:
-----------
Backport of DCRAD changes from gumbo to Flex3.x branch.
This includes the CallResponder, HTTPMultiService, and
changes to RPC components to support FB tooling.

It also includes two new properties on AbstractProducer + Consumer:
priority and maxFrequency.  Adds MXML components for:
AsyncToken, CallResponder, MultiTopicConsumer and Producer
and HTTPMultiservice.

For the most part, these files are now identical to those the
rpc.swc files on main.

QE: Yes, eventually needs a run of the rpc.swc tests
checkintests: pass.  Also ran blazeDS and LCDS checkintests against this rpc.swc
Doc: Same components we are doc'ing for gumbo
Reviewers: reviewed by various folks when they were put in on main

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/HTTPMultiService.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/CallResponder.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/Operation.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/mxml/Concurrency.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPMultiService.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/events/AbstractEvent.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/soap/mxml/WebService.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/Operation.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/events/ResultEvent.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1274238 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
@@ -0,0 +1,118 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.rpc.http.mxml
+{
+
+import flash.events.ErrorEvent;
+import flash.events.ErrorEvent;
+
+import mx.core.mx_internal;
+import mx.core.IMXMLObject;
+import mx.managers.CursorManager;
+import mx.messaging.events.MessageEvent;
+import mx.messaging.messages.IMessage;
+import mx.messaging.messages.AsyncMessage;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+import mx.rpc.AsyncToken;
+import mx.rpc.AsyncDispatcher;
+import mx.rpc.Fault;
+import mx.rpc.http.HTTPService;
+import mx.rpc.events.AbstractEvent;
+import mx.rpc.events.FaultEvent;
+import mx.rpc.mxml.Concurrency;
+import mx.rpc.mxml.IMXMLSupport;
+import mx.validators.Validator;
+
+use namespace mx_internal;
+
+[ResourceBundle("rpc")]
+
+/**
+ * You use the <mx:HTTPMultiService> tag to represent an
+ * HTTPMultiService object in an MXML file.  The HTTPMultiService is like the
+ * HTTPService but supports more than one operation for each individual tag.
+ *
+ *
Note: Due to a software limitation, HTTPService does not generate
+ * user-friendly error messages when using GET.
+ *

+ *
+ * @see mx.rpc.http.HTTPMultiService
+ */
+public class HTTPMultiService extends mx.rpc.http.HTTPMultiService implements IMXMLSupport, IMXMLObject
+{
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * Creates a new HTTPMultiService. This constructor is usually called by the generated code of an MXML document.
+     * You usually use the mx.rpc.http.HTTPService class to create an HTTPService in ActionScript.
+     *
+     * @param rootURL The URL the HTTPService should use when computing relative URLS.
+     *
+     * @param destination An HTTPService destination name in the service-config.xml file.
+     */
+    public function HTTPMultiService(rootURL:String = null, destination:String = null)
+    {
+        super(rootURL, destination);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //--------------------------------------------------------------------------
+    //
+    // Public Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * Called after the implementing object has been created and all
+     * component properties specified on the MXML tag have been
+     * initialized.
+     *
+     * If you create this class in ActionScript and want it to function with validation, you must
+     * call this method and pass in the MXML document and the
+     * HTTPService's id.
+     *
+     * @param document The MXML document that created this object.
+     *
+     * @param id The identifier used by document to refer
+     * to this object. If the object is a deep property on document,
+     * id is null.
+     */
+    public function initialized(document:Object, id:String):void
+    {
+        this.id = id;
+        this.document = document;
+
+        initialize();
+    }
+
+	private var document:Object; //keep the document for validation
+
+	private var id:String; //need to know our own id for validation
+}
+
+}