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

--- frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as
+++ frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as
@@ -0,0 +1,325 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.remoting.mxml
+{
+
+import flash.events.Event;
+import flash.events.ErrorEvent;
+
+import mx.core.mx_internal;
+import mx.core.IMXMLObject;
+import mx.messaging.Channel;
+import mx.messaging.ChannelSet;
+import mx.messaging.channels.AMFChannel;
+import mx.messaging.channels.SecureAMFChannel;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+import mx.rpc.AbstractOperation;
+import mx.rpc.events.FaultEvent;
+import mx.rpc.mxml.Concurrency;
+import mx.rpc.mxml.IMXMLSupport;
+import mx.rpc.remoting.mxml.Operation;
+import mx.rpc.remoting.RemoteObject;
+
+use namespace mx_internal;
+
+[ResourceBundle("rpc")]
+
+/**
+ * The <mx:RemoteObject> tag gives you access to the methods of
+ * Java objects using Action Message Format (AMF) encoding.
+
+ * @mxml
+ *

+ * The <mx:RemoteObject> tag accepts the following tag attributes:
+ *

+ *

+ * <mx:RemoteObject
+ *  Properties
+ *  concurrency="multiple|single|last"
+ *  destination="No default."
+ *  id="No default."
+ *  endpoint="No default."
+ *  showBusyCursor="false|true"
+ *  source="No default." (currently, Macromedia ColdFusion only)
+ *  makeObjectsBindable="false|true"
+ *
+ *  Events
+ *  fault="No default."
+ *  result="No default."
+ * />
+ *

+ *

+ *
+ *

+ * <mx:RemoteObject> can have multiple <mx:method> tags, which have the following tag attributes:
+ *

+ *

+ * <mx:method
+ *  Properties
+ *  concurrency="multiple|single|last"
+ *  name="No default, required."
+ *  makeObjectsBindable="false|true"
+ *
+ * Events
+ *  fault="No default."
+ *  result="No default."
+ * />
+ *

+ *

+ * It then can have a single <mx:arguments> child tag which is an array of objects that is passed
+ * in order.
+ *
+ * @includeExample examples/RemoteObjectExample.mxml -noswf
+ *
+ */
+public dynamic class RemoteObject extends mx.rpc.remoting.RemoteObject implements IMXMLSupport, IMXMLObject
+{
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * Create a new RemoteObject.
+     * @param destination the destination of the RemoteObject, should match a destination name
+     * in the services-config.xml file.
+     */
+    public function RemoteObject(destination:String = null)
+    {
+        super(destination);
+        concurrency = Concurrency.MULTIPLE;
+        showBusyCursor = false;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var resourceManager:IResourceManager =
+									ResourceManager.getInstance();
+
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+    [Inspectable(enumeration="multiple,single,last", defaultValue="multiple", category="General")]
+   /**
+    * Value that indicates how to handle multiple calls to the same service. The default
+    * value is multiple. The following values are permitted:
+    *

+    *
multiple Existing requests are not cancelled, and the developer is
+    * responsible for ensuring the consistency of returned data by carefully
+    * managing the event stream. This is the default.

+    *
single Only a single request at a time is allowed on the operation;
+    * multiple requests generate a fault.

+    *
last Making a request cancels any existing request.

+    *

+    */
+    public function get concurrency():String
+    {
+        return _concurrency;
+    }
+
+    /**
+     *  @private
+     */
+    public function set concurrency(c:String):void
+    {
+        _concurrency = c;
+    }
+
+    [Inspectable(category="General")]
+    /**
+     * This property allows the developer to quickly specify an endpoint for a RemoteObject
+     * destination without referring to a services configuration file at compile time or programmatically creating
+     * a ChannelSet. It also overrides an existing ChannelSet if one has been set for the RemoteObject service.
+     *

+     * If the endpoint url starts with "https" a SecureAMFChannel will be used, otherwise an AMFChannel will
+     * be used. Two special tokens, {server.name} and {server.port}, can be used in the endpoint url to specify
+     * that the channel should use the server name and port that was used to load the SWF.
+     */
+    public function get endpoint():String
+    {
+        return _endpoint;
+    }
+
+    public function set endpoint(url:String):void
+    {
+        // If endpoint has changed, null out channelSet to force it
+        // to be re-initialized on the next Operation send
+        if (_endpoint != url || url == null)
+        {
+            _endpoint = url;
+            channelSet = null;
+        }
+    }
+
+    [Inspectable(defaultValue="false", category="General")]
+    /**
+    * If true, a busy cursor is displayed while a service is executing. The default
+    * value is false.
+    */
+    public function get showBusyCursor():Boolean
+    {
+        return _showBusyCursor;
+    }
+
+    public function set showBusyCursor(sbc:Boolean):void
+    {
+        _showBusyCursor = sbc;
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * If this event is an error or fault, and the event type does not
+     * have a listener, we notify the parent document.  If the
+     * parent document does not have a listener, then we throw
+     * a runtime exception.  However, this is an asynchronous runtime
+     * exception which is only exposed through the debug player.
+     * A listener should be defined.
+     *
+     * @private
+     */
+    override public function dispatchEvent(event:Event):Boolean
+    {
+        if (hasEventListener(event.type))
+        {
+            return super.dispatchEvent(event);
+        }
+        else if ((event is FaultEvent && !hasTokenResponders(event)) || event is ErrorEvent)
+        {
+            var reason:String = (event is FaultEvent) ?
+                FaultEvent(event).fault.faultString :
+                ErrorEvent(event).text;
+
+            if (document && document.willTrigger(ErrorEvent.ERROR))
+            {
+                var evt:ErrorEvent = new ErrorEvent(ErrorEvent.ERROR, true, true);
+                evt.text = reason;
+                return document.dispatchEvent(evt);
+            }
+            else if (event is FaultEvent)
+            {
+                throw FaultEvent(event).fault;
+            }
+            else
+            {
+				var message:String = resourceManager.getString(
+					"rpc", "noListenerForEvent", [ reason ]);
+                throw new Error(message);
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Returns an Operation of the given name. If the Operation wasn't
+     * created beforehand, a new mx.rpc.remoting.mxml.Operation is
+     * created during this call. Operations are usually accessible by simply
+     * naming them after the service variable
+     * (myService.someOperation), but if your Operation name
+     * happens to match a defined method on the service
+     * (like setCredentials), you can use this method to get the
+     * Operation instead.
+     * @param name Name of the Operation.
+     * @return Operation that executes for this name.
+     */
+    override public function getOperation(name:String):AbstractOperation
+    {
+        var o:Object = _operations[name];
+        var op:AbstractOperation = (o is AbstractOperation) ? AbstractOperation(o) : null;
+        if (op == null)
+        {
+            op = new Operation(this, name);
+            _operations[name] = op;
+            op.asyncRequest = asyncRequest;
+        }
+        return op;
+    }
+
+    /**
+     * Called automatically by the MXML compiler if the RemoteObject is set up using a tag.  If you create
+     * the RemoteObject through ActionScript you may want to call this method yourself as it is useful for
+     * validating any arguments.
+     *
+     * @param document the MXML document on which this RemoteObject lives
+     * @param id the id of this RemoteObject within the document
+     */
+    public function initialized(document:Object, id:String):void
+    {
+        this.document = document;
+        this.id = id;
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    // Internal Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *@private
+     */
+    mx_internal function initEndpoint():void
+    {
+        if (endpoint != null)
+        {
+            var chan:Channel;
+            if (endpoint.indexOf("https") == 0)
+            {
+                chan = new SecureAMFChannel(null, endpoint);
+            }
+            else
+            {
+                chan = new AMFChannel(null, endpoint);
+            }
+            channelSet = new ChannelSet();
+            channelSet.addChannel(chan);
+        }
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+    mx_internal var document:Object;
+
+	mx_internal var id:String;
+
+	private var _concurrency:String;
+
+	private var _showBusyCursor:Boolean;
+
+	private var _endpoint:String;
+}
+
+}


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

--- frameworks/projects/framework/src/mx/collections/ArrayCollection.as
+++ frameworks/projects/framework/src/mx/collections/ArrayCollection.as
@@ -0,0 +1,151 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.collections
+{
+
+import flash.utils.IDataInput;
+import flash.utils.IDataOutput;
+import flash.utils.IExternalizable;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+[DefaultProperty("source")]
+
+[RemoteClass(alias="flex.messaging.io.ArrayCollection")]
+
+/**
+ *  The ArrayCollection class is a wrapper class that exposes an Array as
+ *  a collection that can be accessed and manipulated using the methods
+ *  and properties of the ICollectionView or IList
+ *  interfaces. Operations on a ArrayCollection instance modify the data source;
+ *  for example, if you use the removeItemAt() method on an
+ *  ArrayCollection, you remove the item from the underlying Array.
+ *
+ *  @mxml
+ *
+ *
The <mx:ArrayCollection> tag inherits all the attributes of its
+ *  superclass, and adds the following attributes:

+ *
+ *

+ *  <mx:ArrayCollection
+ *  Properties
+ *  source="null"
+ *  />
+ *

+ *
+ *  @example The following code creates a simple ArrayCollection object that
+ *  accesses and manipulates an array with a single Object element.
+ *  It retrieves the element using the IList interface getItemAt
+ *  method and an IViewCursor object that it obtains using the ICollectionView
+ *  createCursor method.
+ *

+ *  var myCollection:ArrayCollection = new ArrayCollection([ { first: 'Matt', last: 'Matthews' } ]);
+ *  var myCursor:IViewCursor = myCollection.createCursor();
+ *  var firstItem:Object = myCollection.getItemAt(0);
+ *  var firstItemFromCursor:Object = myCursor.current;
+ *  if (firstItem == firstItemFromCursor)
+ *        doCelebration();
+ *

+ */
+public class ArrayCollection extends ListCollectionView implements IExternalizable
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *
Creates a new ArrayCollection using the specified source array.
+     *  If no array is specified an empty array will be used.

+     */
+    public function ArrayCollection(source:Array = null)
+    {
+        super();
+
+        this.source = source;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  source
+    //----------------------------------
+
+    [Inspectable(category="General", arrayType="Object")]
+    [Bindable("listChanged")] //superclass will fire this
+
+    /**
+     *  The source of data in the ArrayCollection.
+     *  The ArrayCollection object does not represent any changes that you make
+     *  directly to the source array. Always use
+     *  the ICollectionView or IList methods to modify the collection.
+     */
+    public function get source():Array
+    {
+        if (list && (list is ArrayList))
+        {
+            return ArrayList(list).source;
+        }
+        return null;
+    }
+
+    /**
+     *  @private
+     */
+    public function set source(s:Array):void
+    {
+        list = new ArrayList(s);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Ensures that only the source property is serialized.
+     */
+    public function readExternal(input:IDataInput):void
+    {
+        if (list is IExternalizable)
+            IExternalizable(list).readExternal(input);
+        else
+            source = input.readObject() as Array;
+    }
+
+    /**
+     *  @private
+     *  Ensures that only the source property is serialized.
+     */
+    public function writeExternal(output:IDataOutput):void
+    {
+        if (list is IExternalizable)
+            IExternalizable(list).writeExternal(output);
+        else
+            output.writeObject(source);
+    }
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20687
Author:   smgilson@adobe.com
Date:     2011-03-08T20:09:56.755277Z

Log Message:
-----------
ASDoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ArrayCollection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Label.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/PopUpMenuButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBase.as</path>

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

--- frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as
+++ frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as
@@ -28,6 +28,10 @@
  *  Note that for all other SWF content types, this class will return null
  *  for the movieClip getter and will result in a no-op for function calls.
  *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
  */
 public class MovieClipSWFLoader extends SWFLoader
 {


Revert "SessionManager's getSessionStateTree() now returns an implementation of IWeaveTreeNode to work with WeaveTree.tsx."

This reverts commit c3e264f22246e36fda8d49d93df42d89881adcc9.

--- WeaveASJS/src/weavejs/core/SessionManager.as
+++ WeaveASJS/src/weavejs/core/SessionManager.as
@@ -28,8 +28,7 @@
 	import weavejs.api.core.ILinkableObjectWithNewProperties;
 	import weavejs.api.core.ILinkableVariable;
 	import weavejs.api.core.ISessionManager;
-import weavejs.api.data.IWeaveTreeNode;
-import weavejs.util.Dictionary2D;
+	import weavejs.util.Dictionary2D;
 	import weavejs.util.JS;
 	import weavejs.util.StandardLib;
 	import weavejs.util.WeavePromise;
@@ -212,14 +211,14 @@
 		/**
 		 * Cached WeaveTreeItems that are auto-generated when they are accessed
 		 */
-		private var d2d_object_name_tree:Dictionary2D = new Dictionary2D(true, false, WeaveTreeItemExt);
+		private var d2d_object_name_tree:Dictionary2D = new Dictionary2D(true, false, WeaveTreeItem);

 		/**
 		 * @param root The linkable object to be placed at the root node of the tree.
 		 * @param objectName The label for the root node.
 		 * @return A tree of nodes with the properties "data", "label", "children"
 		 */
-		public function getSessionStateTree(root:ILinkableObject, objectName:String):/*/WeaveTreeItem & IWeaveTreeNode/*/WeaveTreeItem
+		public function getSessionStateTree(root:ILinkableObject, objectName:String):WeaveTreeItem
 		{
 			if (!root)
 				return null;
@@ -1566,38 +1565,3 @@
 		}
 	}
 }
-
-import weavejs.api.data.IWeaveTreeNode;
-import weavejs.util.WeaveTreeItem;
-
-internal class WeaveTreeItemExt extends WeaveTreeItem implements IWeaveTreeNode
-{
-	public function equals(other:IWeaveTreeNode):Boolean
-	{
-		var otherExt:WeaveTreeItemExt = other as WeaveTreeItemExt;
-		return this.data == otherExt.data;
-	}
-
-	public function getLabel():String
-	{
-		return this.label;
-	}
-
-	public function isBranch():Boolean
-	{
-		return this.children != null;
-	}
-
-	public function hasChildBranches():Boolean
-	{
-		for each (var child:WeaveTreeItemExt in this.children)
-			if (child.isBranch())
-				return true;
-		return false;
-	}
-
-	public function getChildren():Array/*/<IWeaveTreeNode>/*/
-	{
-		return this.children;
-	}
-}


improved performance of BinnedColumn by avoiding call to
linkableObjectIsBusy() unless necessary

Change-Id: Id743f43ff109388e1f41a8df84607e081b1e64d2

--- WeaveData/src/weave/data/AttributeColumns/BinnedColumn.as
+++ WeaveData/src/weave/data/AttributeColumns/BinnedColumn.as
@@ -30,7 +30,6 @@
 	import weave.api.registerLinkableChild;
 	import weave.compiler.StandardLib;
 	import weave.data.BinClassifiers.NumberClassifier;
-	import weave.data.BinningDefinitions.CategoryBinningDefinition;
 	import weave.data.BinningDefinitions.DynamicBinningDefinition;
 	import weave.data.BinningDefinitions.SimpleBinningDefinition;
 	import weave.utils.ColumnUtils;
@@ -91,11 +90,11 @@
 		 */
 		private function validateBins():void
 		{
-			if (WeaveAPI.SessionManager.linkableObjectIsBusy(this))
-				return;
-
 			if (_resultTriggerCount != binningDefinition.asyncResultCallbacks.triggerCounter)
 			{
+				if (WeaveAPI.SessionManager.linkableObjectIsBusy(this))
+					return;
+
 				_resultTriggerCount = binningDefinition.asyncResultCallbacks.triggerCounter;
 				// reset cached values
 				_column = internalDynamicColumn.getInternalColumn();
@@ -120,7 +119,7 @@
 				if (_column && _binClassifiers)
 				{
 					// high priority because not much can be done without data
-					WeaveAPI.StageUtils.startTask(this, _asyncIterate, WeaveAPI.TASK_PRIORITY_HIGH, triggerCallbacks);
+					WeaveAPI.StageUtils.startTask(this, _asyncIterate, WeaveAPI.TASK_PRIORITY_HIGH, triggerCallbacks, lang("Binning {0} records in {1}", _keys.length, debugId(this)));
 				}
 			}
 		}


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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderInfo.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderInfo.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.controls.advancedDataGridClasses
 {


Update preferred bitrate selection logic to not assume ordered bitrates.

--- HLSPlugin/src/com/kaltura/hls/HLSLoader.as
+++ HLSPlugin/src/com/kaltura/hls/HLSLoader.as
@@ -164,15 +164,20 @@
 			else if (HLSManifestParser.PREF_BITRATE != -1)
 			{
 				//If there is a preferred bitrate set by kaltura, tests all streams to find highest bitrate below the preferred
-				var bitrateDifference:int = HLSManifestParser.PREF_BITRATE - items[0].bitrate;
 				preferredIndex = 0;
-
-				for(var k:int=1; k<items.length; k++)
+				var preferredDistance:Number = Number.MAX_VALUE;
+
+				for(var k:int=0; k<items.length; k++)
 				{
-					if (HLSManifestParser.PREF_BITRATE - items[k].bitrate > 0 && HLSManifestParser.PREF_BITRATE - items[k].bitrate < bitrateDifference)
-					{
-						preferredIndex = k;
-					}
+					var curItem:DynamicStreamingItem = items[k];
+					var curDist:Number = items[k].bitrate - HLSManifestParser.PREF_BITRATE;
+
+					/// Reject too low or not improved items.
+					if(curDist < 0 || curDist >= preferredDistance)
+						continue;
+
+					preferredIndex = k;
+					preferredDistance = curDist;
 				}
 			}
 			else


Transferred from the Adobe Open Source Subversion Repository

Revision: 17970
Author:   egeorgie@adobe.com
Date:     2010-09-30T21:32:24.300370Z

Log Message:
-----------
Fix SDK-27642 Unnecessary Measure for Mobile Programmatic Skins

In this change:
- introduce new protected APIs in MobileSkin, MobileItemRenderer for resizing and positioning elements.
- update Mobile skin code to use new APIs instead of setting explicitly x, y, width, height
- update FXG assetes to make elements pixel aligned
- update Mobile skin code to assume FXG assest are always pixel aligned

QE notes: Verify skins look as expected; mobile item renderers layout as expected
Doc notes: None.
Bugs: SDK-27642
Reviewer: Glenn, Jason S, Jason SJ, Ryan
Tests run: full mobile mustella
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_downSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -1267,52 +1267,60 @@
         var iconHeight:Number = 0;
         var decoratorWidth:Number = 0;
         var decoratorHeight:Number = 0;
-
-        var paddingLeft:Number = getStyle("paddingLeft");
-        var paddingRight:Number = getStyle("paddingRight");
-        var paddingTop:Number = getStyle("paddingTop");
+
+        var paddingLeft:Number   = getStyle("paddingLeft");
+        var paddingRight:Number  = getStyle("paddingRight");
+        var paddingTop:Number    = getStyle("paddingTop");
         var paddingBottom:Number = getStyle("paddingBottom");
-
-        var viewWidth:Number = unscaledWidth - paddingLeft - paddingRight;
-        var viewHeight:Number = unscaledHeight - paddingTop - paddingBottom;
+        var horizontalGap:Number = getStyle("horizontalGap");
+        var verticalAlign:String = getStyle("verticalAlign");
+        var verticalGap:Number   = (labelDisplay && messageDisplay) ? getStyle("verticalGap") : 0;
+
+        var vAlign:Number;
+        if (verticalAlign == "top")
+            vAlign = 0;
+        else if (verticalAlign == "bottom")
+            vAlign = 1;
+        else // if (verticalAlign == "middle")
+            vAlign = 0.5;
+        // made "middle" last even though it's most likely so it is the default and if someone
+        // types "center", then it will still vertically center itself.
+
+        var viewWidth:Number  = unscaledWidth  - paddingLeft - paddingRight;
+        var viewHeight:Number = unscaledHeight - paddingTop  - paddingBottom;

         // icon is on the left
         if (iconDisplay)
         {
             // set the icon's position and size
             iconDisplayHolder.setLayoutBoundsSize(this.iconWidth, this.iconHeight);
+            iconDisplayHolder.setLayoutBoundsPosition(paddingLeft, paddingTop);

             iconWidth = iconDisplayHolder.getLayoutBoundsWidth();
             iconHeight = iconDisplayHolder.getLayoutBoundsHeight();
-
-            // paddingLeft for x, paddingTop for y
-            iconDisplayHolder.setLayoutBoundsPosition(paddingLeft, paddingTop);
         }

         // decorator is aligned next to icon
         if (decoratorDisplay)
         {
+            // FIXME (egeorgie): another helper method for getting the preferred size?
             if (decoratorDisplay is IVisualElement)
             {
                 var decoratorVisualElement:IVisualElement = IVisualElement(decoratorDisplay);
-                decoratorVisualElement.setLayoutBoundsSize(NaN, NaN);
-
-                decoratorWidth = decoratorVisualElement.getLayoutBoundsWidth();
-                decoratorHeight = decoratorVisualElement.getLayoutBoundsHeight();
-
-                // paddingRight from right and center vertically
-                decoratorVisualElement.setLayoutBoundsPosition(unscaledWidth - paddingRight - decoratorWidth, (viewHeight - decoratorHeight)/2 + paddingTop);
+                decoratorWidth = decoratorVisualElement.getPreferredBoundsWidth();
+                decoratorHeight = decoratorVisualElement.getPreferredBoundsHeight();
             }
             else if (decoratorDisplay is IFlexDisplayObject)
             {
                 decoratorWidth = IFlexDisplayObject(decoratorDisplay).measuredWidth;
                 decoratorHeight = IFlexDisplayObject(decoratorDisplay).measuredHeight;
-
-                IFlexDisplayObject(decoratorDisplay).setActualSize(decoratorWidth, decoratorHeight);
-
-                // paddingRight from right and center vertically
-                IFlexDisplayObject(decoratorDisplay).move(unscaledWidth - paddingRight - decoratorWidth, (viewHeight - decoratorHeight)/2 + paddingTop);
-            }
+            }
+
+            resizeElement(decoratorDisplay, decoratorWidth, decoratorHeight);
+
+            // decorator is always right aligned, vertically centered
+            var decoratorY:Number = Math.round(0.5 * (viewHeight - decoratorHeight)) + paddingTop;
+            positionElement(decoratorDisplay, unscaledWidth - paddingRight - decoratorWidth, decoratorY);
         }

         // Figure out how much space we have for label and message as well as the
@@ -1321,13 +1329,13 @@

         // don't forget the extra gap padding if these elements exist
         if (iconDisplay)
-            labelComponentsViewWidth -= getStyle("horizontalGap");
+            labelComponentsViewWidth -= horizontalGap;
         if (decoratorDisplay)
-            labelComponentsViewWidth -= getStyle("horizontalGap");
-
-        var labelComponentsX:Number = getStyle("paddingLeft");
+            labelComponentsViewWidth -= horizontalGap;
+
+        var labelComponentsX:Number = paddingLeft;
         if (iconDisplay)
-            labelComponentsX += iconWidth + getStyle("horizontalGap");
+            labelComponentsX += iconWidth + horizontalGap;

         // calculte the natural height for the label
         var labelTextHeight:Number = 0;
@@ -1348,25 +1356,22 @@
             // commit styles to get an accurate measurement
             messageDisplay.commitStyles();
         }
-
+
         // now size and position the elements, 3 different configurations we care about:
         // 1) label and message
         // 2) label only
         // 3) message only
-
+
         // label display goes on top
         // message display goes below
-
+
         var labelWidth:Number = 0;
         var labelHeight:Number = 0;
         var messageWidth:Number = 0;
         var messageHeight:Number = 0;
-        var verticalGap:Number = 0;
-
+
         if (labelDisplay)
         {
-            verticalGap = 0;
-
             // handle labelDisplay.  it can only be 1 line

             // width of label takes up rest of space
@@ -1374,28 +1379,21 @@
             // and make sure verticalAlign is operating on a correct value.
             labelWidth = Math.max(labelComponentsViewWidth, 0);
             labelHeight = Math.max(Math.min(viewHeight, labelTextHeight), 0);
-
-            labelDisplay.width = labelWidth;
-            labelDisplay.height = labelHeight;
-
-            labelDisplay.x = Math.round(labelComponentsX);
-            labelDisplay.y = Math.round(paddingTop);
+            resizeElement(labelDisplay, labelWidth, labelHeight);

             // attempt to truncate text
             labelDisplay.truncateToFit();
         }
-
+
         if (messageDisplay)
         {
             // handle message
             // don't use the measured text width or height because that only takes the first line in to account
             messageWidth = Math.max(labelComponentsViewWidth, 0);
             messageHeight = Math.max(viewHeight - labelHeight - verticalGap, 0);
-
-            messageDisplay.width = messageWidth;
             // FIXME (rfrishbe): we should check to see if this causes textHeight to change because then we
             // might need to remeasure
-            messageDisplay.height = messageHeight;
+            resizeElement(messageDisplay, messageWidth, messageHeight);

             // FIXME (rfrishbe): figure out if this is right with regards to multi-line text.
             // For instance, if the text component spans to 2 lines but only shows one line, then textHeight here
@@ -1405,41 +1403,24 @@
             // displayed lines.
             messageHeight = Math.min(messageHeight, messageDisplay.textHeight + UITextField.TEXT_HEIGHT_PADDING);

-            messageDisplay.x = Math.round(labelComponentsX);
-            messageDisplay.y = Math.round(paddingTop + labelHeight + verticalGap);
-
             // since it's multi-line, no need to truncate
             //if (messageDisplay.isTruncated)
             //    messageDisplay.text = messageText;
             //messageDisplay.truncateToFit();
         }
-
-        // revisit y positions now that we know all heights so we can respect verticalAlign style
-        if (getStyle("verticalAlign") == "top")
-        {
-            // don't do anything...already aligned to top in code above
-        }
-        else if (getStyle("verticalAlign") == "bottom")
-        {
-            if (iconDisplay)
-                iconDisplayHolder.setLayoutBoundsPosition(paddingLeft, unscaledHeight - iconHeight - paddingBottom);
+
+        // Position the text components now that we know all heights so we can respect verticalAlign style
+        if (labelDisplay || messageDisplay)
+        {
+            var totalHeight:Number = labelHeight + messageHeight + verticalGap;
+            var labelComponentsY:Number = Math.round(vAlign * (viewHeight - totalHeight)) + paddingTop;
+
+            if (labelDisplay)
+                positionElement(labelDisplay, labelComponentsX, labelComponentsY);
+
             if (messageDisplay)
-                messageDisplay.y = unscaledHeight - paddingBottom - messageHeight;
-            if (labelDisplay)
-                labelDisplay.y = unscaledHeight - paddingBottom - messageHeight - verticalGap - labelHeight;
-        }
-        else //if (getStyle("verticalAlign") == "middle")
-        {
-            if (iconDisplay)
-                iconDisplayHolder.setLayoutBoundsPosition(paddingLeft, Math.round((unscaledHeight - iconHeight)/2));
-            var textTotalHeight:Number = labelHeight + messageHeight + verticalGap;
-            if (labelDisplay)
-                labelDisplay.y = Math.round((unscaledHeight - textTotalHeight)/2);
-            if (messageDisplay)
-                messageDisplay.y = Math.round((unscaledHeight - textTotalHeight)/2 + verticalGap + labelHeight);
-        }
-        // made "middle" last even though it's most likely so it is the default and if someone
-        // types "center", then it will still vertically center itself.
+                positionElement(messageDisplay, labelComponentsX, labelComponentsY + labelHeight + verticalGap);
+        }
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 17330
Author:   chiedozi@adobe.com
Date:     2010-08-16T17:36:59.538425Z

Log Message:
-----------
Removed the sections functionality from ViewNavigator and refactored that logic into TabbedViewNavigator.  Updated dependent performance tests and components.
Introduced MobileApplicationBase and TabbedMobileApplication do support the tabbed use case for mobile.
Deleted SliderSkin from the framework.  All mobile skins now extend MobileSkin.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/ViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/PersistenceManager.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as" copyfrom-rev="17260" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ScriptRunner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ComponentCatalog.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedMobileApplicationSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewHistoryData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/IPersistenceManager.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/IViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SliderSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as
@@ -4,8 +4,9 @@
 import flash.display.Graphics;

 import spark.components.Button;
+import spark.skins.MobileSkin;

-public class HScrollBarThumbSkin extends SliderSkin {
+public class HScrollBarThumbSkin extends MobileSkin {

     public function HScrollBarThumbSkin()
     {


修复字符串中存在 \0 时转换到 ByteArray 会被截断的 bug

修复字符串中存在 \0 时转换到 ByteArray 会被截断的 bug

--- as3/com/netease/protobuf/stringToByteArray.as
+++ as3/com/netease/protobuf/stringToByteArray.as
@@ -11,7 +11,9 @@
 	import flash.utils.ByteArray
 	public function stringToByteArray(s:String):ByteArray {
 		const ba:ByteArray = new ByteArray
-		ba.writeMultiByte(s, "iso-8859-1")
+		for (var i:uint = 0; i < s.length; ++i) {
+			ba.writeByte(s.charCodeAt(i))
+		}
 		return ba
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18685
Author:   chiedozi@adobe.com
Date:     2010-11-17T23:41:28.244847Z

Log Message:
-----------
MobileApplication classes have been renamed to ViewNavigatorApplication.  Specific file changes are:
MobileApplicationBase  -->  ViewNavigatorApplicationBase
MobileApplication --> ViewNavigatorApplication
MobileApplicationSkin -->  ViewNavigatorApplicationSkin
TabbedMobileApplication -->  TabbedViewNavigatorApplication
TabbedMobileApplicationSkin --> TabbedViewNavigatorApplicationSkin

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedASTextField.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedMXMLLabel.mxml</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as" copyfrom-rev="18641" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenuItem.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/RadioStations/src/RadioStations.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedMXMLTextField.mxml</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as" copyfrom-rev="18641" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/PersistenceManager.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as" copyfrom-rev="18641" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ComponentCatalog.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedMobileApplicationSkin.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as" copyfrom-rev="18641" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchASLabel.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TextTest/src/TextTest.mxml</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedMobileApplicationSkin.as" copyfrom-rev="18641" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchASTextField.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchMXMLLabel.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="dir" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/IPersistenceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchMXMLTextField.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedASLabel.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TransitionTests/src/TransitionTests.mxml</path>
<path kind="dir" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers" copyfrom-rev="18641" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
@@ -33,8 +33,8 @@
 import spark.components.View;
 import spark.components.ViewMenu;
 import spark.components.ViewMenuItem;
-import spark.core.managers.IPersistenceManager;
-import spark.core.managers.PersistenceManager;
+import spark.managers.IPersistenceManager;
+import spark.managers.PersistenceManager;
 import spark.events.PopUpEvent;

 [Exclude(name="controlBarContent", kind="property")]
@@ -83,20 +83,20 @@

 /**
  *  The base application class used for all view based application types.
- *  This includes MobileApplication and TabbedMobileApplication.  This class
+ *  This includes ViewNavigatorApplication and TabbedViewNavigatorApplication.  This class
  *  provides the basic infrastructure for providing these types of applications
  *  access to the device application menu, hardware keys, orientation status
  *  and application session persistence.
  *
- *  @see spark.components.MobileApplication
- *  @see spark.components.TabbedMobileApplication
+ *  @see spark.components.ViewNavigatorApplication
+ *  @see spark.components.TabbedViewNavigatorApplication
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
-public class MobileApplicationBase extends Application
+public class ViewNavigatorApplicationBase extends Application
 {
     //--------------------------------------------------------------------------
     //
@@ -112,7 +112,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function MobileApplicationBase()
+    public function ViewNavigatorApplicationBase()
     {
         super();
     }
@@ -496,7 +496,7 @@

     /**
      *  @private
-     *  The key model employeed by MobileApplication is to listen for the down
+     *  The key model employeed by ViewNavigatorApplication is to listen for the down
      *  event but run the back key handling logic on up.  The reasoning for this
      *  is that the down event is dispatched multiple times while the user
      *  presses it down.  But the desired back logic should only happen once.


add logs about video decoding status related to https://github.com/mangui/flashls/issues/66

--- src/org/mangui/chromeless/ChromelessPlayer.as
+++ src/org/mangui/chromeless/ChromelessPlayer.as
@@ -1,4 +1,5 @@
 package org.mangui.chromeless {
+    import org.mangui.hls.utils.Log;
     import org.mangui.hls.utils.ScaleVideo;
     import org.mangui.hls.model.AudioTrack;
     import org.mangui.hls.HLSSettings;
@@ -425,6 +426,7 @@

             if (available && stage.stageVideos.length > 0) {
                 _stageVideo = stage.stageVideos[0];
+                _stageVideo.addEventListener(StageVideoEvent.RENDER_STATE, _onStageVideoStateChange)
                 _stageVideo.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
                 _stageVideo.attachNetStream(_hls.stream);
             } else {
@@ -441,6 +443,11 @@
                 _load(autoLoadUrl);
             }
         };
+
+
+        private function _onStageVideoStateChange(event : StageVideoEvent) : void {
+            Log.info("Video decoding:" + event.status);
+        }

         protected function _onStageResize(event : Event) : void {
             stage.fullScreenSourceRect = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);


Transferred from the Adobe Open Source Subversion Repository

Revision: 8643
Author:   rfrishbe@adobe.com
Date:     2009-07-16T21:22:55.207587Z

Log Message:
-----------
Adding two methods to IAutomationObject, createAutomationIDPartWithRequiredProperties() and getAutomationChildren().  Had to add these to every class that implements IAutomationObject: FlexNativeMenu, UIMovieClip, UIComponent, UITextField, and UITLFTextField.  The implementations are really simple and just call to the automationDelegate or return null.

QE notes: -
Doc notes: -
Bugs: SDK-22086
Reviewer: Rani, Deepa
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/automation/IAutomationObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/framework/src/mx/automation/IAutomationObject.as
+++ frameworks/projects/framework/src/mx/automation/IAutomationObject.as
@@ -225,6 +225,25 @@
      *  @productversion Flex 3
      */
     function createAutomationIDPart(child:IAutomationObject):Object;
+
+    /**
+     *  Returns a set of properties as automation ID that identify the child within
+     *  this container.  These values should not change during the
+     *  lifespan of the application
+     *
+     *  @param child Child for which to provide the id.
+     *
+     *  @param properties which needs to be considered for forming the Id.
+     *
+     *  @return Sets of properties describing the child which can
+     *          later be used to resolve the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function createAutomationIDPartWithRequiredProperties(child:IAutomationObject, properties:Array):Object;

     /**
      *  Resolves a child by using the id provided. The id is a set
@@ -257,6 +276,19 @@
      *  @productversion Flex 3
      */
     function getAutomationChildAt(index:int):IAutomationObject;
+
+    /**
+     *  Provides the automation object list .  This list
+     *  does not include any children that are composites.
+     *
+     *  @return the automation children.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function getAutomationChildren():Array;

     /**
      *  Replays the specified event.  A component author should probably call


Fix for https://issues.apache.org/jira/browse/FLEX-34117 Changed the layoutCornerEllipseSize in ButtonSkin.as for various DPIs

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
@@ -111,7 +111,7 @@
 				downBorderSkin = spark.skins.mobile640.assets.Button_down;

 				layoutGap = 20;
-				layoutCornerEllipseSize = 40;
+				layoutCornerEllipseSize = 28;
 				layoutPaddingLeft = 40;
 				layoutPaddingRight = 40;
 				layoutPaddingTop = 40;
@@ -129,7 +129,7 @@
 				downBorderSkin = spark.skins.mobile480.assets.Button_down;

 				layoutGap = 14;
-				layoutCornerEllipseSize = 30;
+				layoutCornerEllipseSize = 20;
 				layoutPaddingLeft = 30;
 				layoutPaddingRight = 30;
 				layoutPaddingTop = 30;
@@ -146,7 +146,7 @@
                 downBorderSkin = spark.skins.mobile320.assets.Button_down;

                 layoutGap = 10;
-                layoutCornerEllipseSize = 20;
+                layoutCornerEllipseSize = 10;
                 layoutPaddingLeft = 20;
                 layoutPaddingRight = 20;
                 layoutPaddingTop = 20;
@@ -163,7 +163,7 @@
 				downBorderSkin = spark.skins.mobile240.assets.Button_down;

 				layoutGap = 7;
-				layoutCornerEllipseSize = 15;
+				layoutCornerEllipseSize = 8;
 				layoutPaddingLeft = 15;
 				layoutPaddingRight = 15;
 				layoutPaddingTop = 15;


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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as
+++ frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as
@@ -1,4 +1,4 @@
-package flex.filters
+package mx.filters
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12726
Author:   mhorn@adobe.com
Date:     2009-12-09T17:51:12.103185Z

Log Message:
-----------
asdoc updates for l10n

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollBarDownButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SkinnableContainerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HighlightBitmapCaptureSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerIncrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HSliderTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollBarUpButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollerSkin.mxml</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/skins/spark/TitleWindowCloseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HScrollBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VSliderTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListDropIndicator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerDecrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VScrollBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TitleWindowSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollBarRightButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VideoPlayerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollBarLeftButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultComplexItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SkinnableDataContainerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/ListDropIndicator.as
+++ frameworks/projects/spark/src/spark/skins/spark/ListDropIndicator.as
@@ -19,6 +19,8 @@
  *  The default skin for the drop indicator of a List component in case
  *  List doesn't have a dropIndicator part defined in its skin.
  *
+ *  @see spark.components.List
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5


Moved flare.util.matrix to flare.util.math
Renamed IMatrix _(), $() to get(), set()
Added scale, multiply, sum, and sumsq to IMatrix
Added additional Matrix tests
Fixed SparseMatrix.clone() bug
Added force render of label to labeler classes

git-svn-id: 6aa7ccb0a2048310a30f08a72aaff4ca39d980ed@210 91848ab2-c4ae-4e4f-8e6a-6a52ea0dccc3

--- flare.tests/src/flare/tests/MatrixTests.as
+++ flare.tests/src/flare/tests/MatrixTests.as
@@ -1,8 +1,8 @@
 package flare.tests
 {
-	import flare.util.matrix.DenseMatrix;
-	import flare.util.matrix.IMatrix;
-	import flare.util.matrix.SparseMatrix;
+	import flare.util.math.DenseMatrix;
+	import flare.util.math.IMatrix;
+	import flare.util.math.SparseMatrix;

 	import unitest.TestCase;

@@ -16,16 +16,36 @@

 		private static function testMatrix(mat:IMatrix):void
 		{
-			var i:int, j:int, c:int = 7;
+			var i:int, j:int, c:int = 7, v:Number;

 			// populate matrix
-			for (i=0; i<mat.cols; ++i) mat.$(1,i,c);
-			for (i=0; i<mat.rows; ++i) mat.$(i,1,c);
-			for (i=0; i<mat.rows; ++i) mat.$(i,i,i+1);
+			for (i=0; i<mat.cols; ++i) mat.set(1,i,c);
+			for (i=0; i<mat.rows; ++i) mat.set(i,1,c);
+			for (i=0; i<mat.rows; ++i) mat.set(i,i,i+1);

+			// test properties
 			assertEquals(5, mat.rows);
 			assertEquals(5, mat.cols);
 			assertEquals(13, mat.nnz);
+
+			var s:Number=0, ss:Number=0;
+			for (i=0; i<mat.rows; ++i) {
+				for (j=0; j<mat.cols; ++j) {
+					v = mat.get(i,j);
+					s += v;
+					ss += v*v;
+				}
+			}
+			assertEquals(s, mat.sum);
+			assertEquals(ss, mat.sumsq);
+
+			// test copy and scale
+			var like:IMatrix = mat.clone(); like.scale(1 / s);
+			for (i=0; i<mat.rows; ++i) {
+				for (j=0; j<mat.cols; ++j) {
+					assertEquals(mat.get(i,j)*(1/s), like.get(i,j));
+				}
+			}

 			// test matrix access
 			var test:Function = function(i:int, j:int, v:Number):Number {
@@ -40,14 +60,14 @@
 			};

 			for (i=0; i<mat.rows; ++i) {
-				for (j=0; j<mat.cols; ++j) test(i, j, mat._(i,j));
+				for (j=0; j<mat.cols; ++j) test(i, j, mat.get(i,j));
 			}
 			mat.visit(test);
 			mat.visitNonZero(test);
 			mat.visitNonZero(nonZero);

 			for (i=0; i<mat.rows; ++i) {
-				mat.$(i,i,0);
+				mat.set(i,i,0);
 			}
 			assertEquals(8, mat.nnz);
 			mat.visitNonZero(nonZero);


SICP exercises

SICP exercises

--- test/stutter/SICPTest.as
+++ test/stutter/SICPTest.as
@@ -1,8 +1,10 @@
 package stutter
 {
 	import org.flexunit.assertThat;
+	import org.hamcrest.Matcher;
 	import org.hamcrest.collection.array;
 	import org.hamcrest.collection.emptyArray;
+	import org.hamcrest.number.closeTo;
 	import org.hamcrest.object.equalTo;
 	import org.hamcrest.object.isFalse;
 	import org.hamcrest.object.isTrue;
@@ -21,12 +23,22 @@

 		private function eval(expression:String):*
 		{
-			return runtime.eval(reader.read(expression));
+			reader.load(expression);
+
+			var sexp:*;
+			var result:*;
+
+			while (reader.hasTokens() && (sexp = reader.parse()))
+			{
+				result = runtime.eval(sexp);
+			}
+
+			return result;
 		}

 		private function assert(expression:String, result:*):void
 		{
-			assertThat(expression, eval(expression), equalTo(result));
+			assertThat(expression, eval(expression), result is Matcher ? result : equalTo(result));
 		}

 		private function ignore(expression:String):void
@@ -158,8 +170,8 @@
 			assert(<![CDATA[

 				(if (and (> b a) (< b (* a b)))
-    				b
-    				a)
+					b
+					a)

 				]]>.toString(), eval('b'));

@@ -203,7 +215,7 @@
 			eval(<![CDATA[

 				(label a-plus-abs-b (quote (lambda (a b)
-  					((if (> b 0) (quote +) (quote -)) a b))))
+					((if (> b 0) (quote +) (quote -)) a b))))

 				]]>.toString());

@@ -211,10 +223,91 @@
 			assert('(a-plus-abs-b 1 -2)', 3);
 		}

+		// TODO think about this exercise some more.
+		[Ignore]
 		[Test(order=13)]
 		public function ch1_ex1_5():void
 		{
+			eval('(label p (quote p)');

+			eval(<![CDATA[
+
+				(label test (quote (lambda (x y)
+					(if (= x 0)
+						0
+						y))))
+
+				]]>.toString());
+
+			assert('(test 0 (quote p))', eval('p'));
+		}
+
+		[Test(order=14)]
+		public function ch1_1_7_ex1():void
+		{
+			eval(<![CDATA[
+
+				(label sqrt-iter (quote (lambda (guess x)
+					(if (good-enough guess x)
+						guess
+						(sqrt-iter (improve guess x) x)))))
+
+				(label improve (quote (lambda (guess x)
+					(average guess (/ x guess)))))
+
+				(label average (quote (lambda (x y)
+					(/ (+ x y) 2))))
+
+				(label good-enough (quote (lambda (guess x)
+					(< (abs (- (square guess) x)) 0.001))))
+
+				(label abs (quote (lambda (x)
+					(if (< x 0)
+						(- x)
+						x))))
+
+				(label square (quote (lambda (x) (* x x))))
+
+				(label sqrt (quote (lambda (x)
+					(sqrt-iter 1.0 x))))
+
+				]]>.toString());
+
+			assert('(sqrt 9)', closeTo(3, 0.001));
+			assert('(sqrt (+ 100 37))', closeTo(11.704, 0.001));
+			assert('(sqrt (+ (sqrt 2) (sqrt 3)))', closeTo(1.774, 0.001));
+			assert('(square (sqrt 1000))', closeTo(1000, 0.001));
+		}
+
+		// nested label-quote-lambdas does not work as expected.
+		[Ignore]
+		[Test(order=15)]
+		public function ch1_1_8_ex1():void
+		{
+			eval(<![CDATA[
+
+				(label square (quote (lambda (x) (* x x))))
+
+				(label average (quote (lambda (x y)
+					(/ (+ x y) 2))))
+
+				(label sqrt (quote (lambda (x)
+					(label good-enough (quote (lambda (guess)
+						(< (abs (- (square guess) x)) 0.001))))
+					(label improve (quote (lambda (guess)
+						(average guess (/ x guess)))))
+					(label sqrt-iter (quote (lambda (guess)
+						(if (good-enough guess)
+							guess
+							(sqrt-iter (improve guess))))))
+					(sqrt-iter 1.0))))
+
+				]]>.toString());
+
+			assert('(sqrt 9)', closeTo(3, 0.001));
+			assert('(sqrt (+ 100 37))', closeTo(11.704, 0.001));
+			assert('(sqrt (+ (sqrt 2) (sqrt 3)))', closeTo(1.774, 0.001));
+			assert('(square (sqrt 1000))', closeTo(1000, 0.001));
 		}
 	}
 }


fixed bug in Language.is(*, Object)

fixed bug in Language.is(*, Object)

--- WeaveJS/src/weavejs/util/JS.as
+++ WeaveJS/src/weavejs/util/JS.as
@@ -290,6 +290,8 @@
 				return true;

 			// (adufilie) simplified String check and added check for boolean
+			if (rightOperand === Object)
+				return true; // every value except null and undefined is an Object in ActionScript
 			if (typeof leftOperand === 'string')
 				return rightOperand === String;
 			if (typeof leftOperand === 'number')


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

--- frameworks/projects/framework/src/mx/core/IStateClient.as
+++ frameworks/projects/framework/src/mx/core/IStateClient.as
@@ -0,0 +1,42 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 IStateClient interface defines the interface that
+ *  components must implement to support view states.
+ */
+public interface IStateClient
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  currentState
+    //----------------------------------
+
+    /**
+     *  The current view state.
+     */
+    function get currentState():String;
+
+    /**
+     *  @private
+     */
+    function set currentState(value:String):void;
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3222
Author:   jimurphy@adobe.com
Date:     2008-09-16T14:09:08.134976Z

Log Message:
-----------
Merged 3.0.x revisions 3157,3162,3165-3166,3168,3177,3180-3183,3185,3187,3189,3199 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TileList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterManagerRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/framework/src/mx/core/UITextFormat.as
+++ frameworks/projects/framework/src/mx/core/UITextFormat.as
@@ -471,6 +471,10 @@
         var lineMetrics:TextLineMetrics =
             measurementTextField.getLineMetrics(0);

+        // Account for any indenting of the text.
+        if (indent != null)
+            lineMetrics.width += indent;
+
         if (roundUp)
         {
             // Round up because embedded fonts can produce fractional values;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4111
Author:   chaase@adobe.com
Date:     2008-11-14T16:39:46.711628Z

Log Message:
-----------
Makes auto-reversal of transitions work more completely and correctly, fixing some API issues and other related animation/effect issues along the way. Seeking behavior in effects is improved (although still far from perfect, especially for non-playing effects), and dynamic behavior of effects (picking up values dynamically from the environment) is improved.

QE Notes: better seek() behavior, can just call it on non-playing effects and it will automatically play/pause the effect if necessary
Doc Notes: None
Bugs: sdk-17294, sdk-16595, sdk-18104, sdk-18105, sdk-18106, sdk-18107
Reviewer: Jason
tests: checkintests, Mustella: tests/Effects, tests/gumbo/effects tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/Transition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/RemoveAction.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/events/EffectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.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/flex4/src/mx/effects/CallAction.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/FxAnimate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.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/Sequence.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AddAction.as</path>

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

--- frameworks/projects/framework/src/mx/states/Transition.as
+++ frameworks/projects/framework/src/mx/states/Transition.as
@@ -61,6 +61,7 @@
  *    effect=""
  *    fromState="*"
  *    toState="*"
+ *    autoReverse="false"
  *  />
  *

  *
@@ -143,6 +144,36 @@
      *  @default "*"
 	 */
 	public var toState:String = "*";
+
+    /**
+     *  Whether the transition should automatically reverse itself
+     *  when the opposite state transition begins playing.
+     *
+     *
Flex does not currently play multiple transitions simultaneously.
+     *  This means that when a new state transition occurs, if there
+     *  is already one playing it is stopped by calling end()
+     *  on it, which snaps it to its end values. The new transition
+     *  then starts playing from that state.

+     *
+     *
The autoReverse flag allows the developer to
+     *  control whether the default snap-to-end behavior occurs, or whether,
+     *  instead, the previous effect is stopped in place and the new
+     *  effect is played from that intermediate state instead. Internally,
+     *  the transition code calculates how much of the previous effect
+     *  has been played and then plays the next effect for the inverse of that
+     *  time.

+     *
+     *
This flag is only checked when the new transition is going in the
+     *  exact opposite direction of the currently playing one. That is, if
+     *  a transition is playing between states A and B and then a transition
+     *  to return to A is started, this flag will be checked. But if the
+     *  application is going from state A to B and a transition to state C is
+     *  started, then the default behavior of snapping to the end of the A->B
+     *  transition, then playing the B->C transition will occur.

+     *
+     *  @default false
+     */
+	public var autoReverse:Boolean = false;
 }

 }


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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 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
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/spark/src/spark/layouts/TileLayout.as
+++ frameworks/projects/spark/src/spark/layouts/TileLayout.as
@@ -9,19 +9,19 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.layout
+package spark.layout
 {
 import flash.geom.Rectangle;

-import mx.components.baseClasses.GroupBase;
+import spark.components.supportClasses.GroupBase;
 import mx.core.ILayoutElement;
 import mx.events.PropertyChangeEvent;
-import mx.layout.HorizontalAlign;
-import mx.layout.LayoutBase;
-import mx.layout.TileJustifyColumns;
-import mx.layout.TileJustifyRows;
-import mx.layout.TileOrientation;
-import mx.layout.VerticalAlign;
+import spark.layout.HorizontalAlign;
+import spark.layout.supportClasses.LayoutBase;
+import spark.layout.TileJustifyColumns;
+import spark.layout.TileJustifyRows;
+import spark.layout.TileOrientation;
+import spark.layout.VerticalAlign;

 /**
  *  TileLayout arranges the layout elements in columns and rows


Make the material revert action undoable.

--- Bin/Data/Scripts/Editor/EditorMaterial.as
+++ Bin/Data/Scripts/Editor/EditorMaterial.as
@@ -217,7 +217,10 @@
     if (editMaterial is null)
         return;

+    BeginMaterialEdit();
     cache.ReloadResource(editMaterial);
+    EndMaterialEdit();
+
     RefreshMaterialEditor();
 }


Add ".la" extension to urbi-launch while testing.

	* src/tests/bin/uobject-check.as: Give the full name of the dynamic
	library.

--- sdk-remote/src/tests/bin/uobject-check.as
+++ sdk-remote/src/tests/bin/uobject-check.as
@@ -34,4 +34,4 @@
 xrun "umake-shared" $umake_shared --output=$me $uob
 test -f "$me.la" ||
   fatal "$me.la does not exist"
-xrun "urbi-launch $me --version" "$urbi_launch" --start $me -- --version
+xrun "urbi-launch $me --version" "$urbi_launch" --start $me.la -- --version


Fixed modules not connecting to the middle of wires on load

--- src/LevelState.as
+++ src/LevelState.as
@@ -313,7 +313,7 @@
 				moduleType = moduleTypes[i];
 				archetype = Module.getArchetype(moduleType);
 				if (archetype.configuration)
-					moduleSliders.push(upperLayer.add(new ModuleSlider(moduleList.x + moduleList.width, moduleButtons[i], archetype)));
+					moduleSliders.push(upperLayer.add(new ModuleSlider(moduleList.x + moduleList.width, moduleButtons[i+1], archetype)));
 			}
 		}

@@ -636,31 +636,30 @@

 			time = new Time;

+
+
+			var saveString:String = U.save.data[level.name];
+			if (saveString) {
+				var saveArray:Array = saveString.split(U.SAVE_DELIM + U.SAVE_DELIM);
+
+				//load wires
+				var wireStrings:String = saveArray[1];
+				if (wireStrings.length)
+					for each (var wireString:String in wireStrings.split(U.SAVE_DELIM))
+						addWire(Wire.fromString(wireString), false);
+
+				//load modules
+				var moduleStrings:String = saveArray[0];
+				if (moduleStrings.length)
+					for each (var moduleString:String in moduleStrings.split(U.SAVE_DELIM))
+						addModule(Module.fromString(moduleString), false);
+
+
+				savedString = saveString;
+			}
+
 			for each (var module:Module in level.modules)
 				addModule(module);
-
-
-
-			var saveString:String = U.save.data[level.name];
-			if (!saveString)
-				return;
-
-
-			var saveArray:Array = saveString.split(U.SAVE_DELIM + U.SAVE_DELIM);
-
-			//load modules
-			var moduleStrings:String = saveArray[0];
-			if (moduleStrings.length)
-				for each (var moduleString:String in moduleStrings.split(U.SAVE_DELIM))
-					addModule(Module.fromString(moduleString), false);
-
-			//load wires
-			var wireStrings:String = saveArray[1];
-			if (wireStrings.length)
-				for each (var wireString:String in wireStrings.split(U.SAVE_DELIM))
-					addWire(Wire.fromString(wireString), false);
-
-			savedString = saveString;
 		}


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

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

 package spark.automation.delegates.components
 {


Set world position values

Set world position values

--- DroneAnarchy/Resources/Scripts/DroneAnarchy.as
+++ DroneAnarchy/Resources/Scripts/DroneAnarchy.as
@@ -665,8 +665,8 @@
 {
 	Vector3 camPosition = eventData["CamPosition"].GetVector3();
 	Quaternion camRotation = eventData["CamRotation"].GetQuaternion();
-	cameraNode_.rotation = camRotation;
-	cameraNode_.position = camPosition;
+	cameraNode_.worldRotation = camRotation;
+	cameraNode_.worldPosition = camPosition;

 	SetViewportCamera(cameraNode_);
 	cameraNode_.GetChild("DirectionalLight").enabled = true;