add loop method

add loop method

git-svn-id: 864080e30cc358c5edb906449bbf014f90258007@42 96db6a20-122f-0410-8d9f-89437bbe4005

--- src/com/rails2u/debug/Benchmark.as
+++ src/com/rails2u/debug/Benchmark.as
@@ -28,7 +28,14 @@

         public static function benchmark(name:String, callback:Function, bindObject:Object = null):Number {
             start(name);
-            callback.apply(bindObject);
+            callback.call(bindObject);
+            return end(name);
+        }
+
+        public static function loop(name:String, callback:Function, bindObject:Object = null, times:uint = 100):Number {
+            start(name);
+            for (var i:uint = 0; i < times; i++)
+                callback.call(bindObject);
             return end(name);
         }


Tweaking standing, removing debug pointer

--- src/heartattacks/doodads/Player.as
+++ src/heartattacks/doodads/Player.as
@@ -53,14 +53,6 @@
 			this.layer = 2;
 		}

-		override public function render():void
-		{
-			super.render();
-			var dx:Number = centerX + Math.cos(this.heading) * 100;
-			var dy:Number = centerY + Math.sin(this.heading) * 100;
-			Draw.line(this.centerX, this.centerY + FP.camera.y, dx, dy + FP.camera.y);
-		}
-
 		override public function update():void
 		{
 			if (this.timeTillBonusExpires > 0)
@@ -135,7 +127,7 @@
 		{
 			if (Input.mouseDown)
 			{
-				if (this.collidePoint(this.x, this.y, Input.mouseX, Input.mouseY))
+				if (this.isWaiting || this.collidePoint(this.x, this.y, Input.mouseX, Input.mouseY))
 				{
 					this.spritemap.play("stand-forward");
 					this.isWaiting = true;


Updated link to custom map instructions.

--- flexEditor/src/org/arisgames/editor/view/CustomMapsEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/CustomMapsEditorView.as
@@ -447,7 +447,7 @@

 		protected function handleInstructionsButton(event:MouseEvent):void
 		{
-			var loc:String = "https://docs.google.com/document/d/1A4QvrjyTlzstbWmUDrvI-CpYGYo9zMinIyX1z7EJfhE/"; //GWS: PUT INSTRUCTIONS ON GOOGLE DOC AND LINK TO IT HERE
+			var loc:String = "https://docs.google.com/document/d/1A4QvrjyTlzstbWmUDrvI-CpYGYo9zMinIyX1z7EJfhE/edit";
 			navigateToURL(new URLRequest(loc),"_blank");
 		}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

Modified Paths:
--------------
147 paths were modified

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

--- frameworks/projects/rpc/src/mx/messaging/AbstractMessageStore.as
+++ frameworks/projects/rpc/src/mx/messaging/AbstractMessageStore.as
@@ -34,6 +34,12 @@
  *  @see mx.messaging.events.MessageQueueStatusCode
  *
  *  @eventType flash.events.StatusEvent.STATUS
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 [Event(name="status", type="flash.events.StatusEvent")]

@@ -42,6 +48,12 @@
  * the message queue completes successfully.
  *
  * @eventType mx.rpc.events.ResultEvent.RESULT
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 [Event(name="result", type="mx.rpc.events.ResultEvent")]

@@ -50,6 +62,12 @@
  * the message queue fails.
  *
  * @eventType mx.rpc.events.FaultEvent.FAULT
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 [Event(name="fault", type="mx.rpc.events.FaultEvent")]

@@ -75,6 +93,12 @@
     [Deprecated(since="3.0.0")]
     /**
      *  Constructs an AbstractMessageStore.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function AbstractMessageStore()
     {
@@ -98,6 +122,12 @@
     /**
      *  Indicates whether queued messages are automatically sent upon
      *  connect or reconnect of the associated Producer.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function get autoSend():Boolean
     {
@@ -137,6 +167,12 @@
      *  A developer must set this property to a unique value for the
      *  application.
      *  A value of null or empty string is considered unset.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function get cacheID():String
     {
@@ -168,6 +204,12 @@
      *  Indicates if the store has been initialized.
      *  If not initialized call the initialize() method before
      *  using this store.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
      public function get isInitialized():Boolean
      {
@@ -184,6 +226,12 @@

     /**
      *  True if the persistent state for the store has been loaded.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function get loaded():Boolean
     {
@@ -200,6 +248,12 @@

     /**
      *  The Producer the queue is assigned to.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function get producer():AbstractProducer
     {
@@ -218,6 +272,12 @@
      *  the message is sent directly rather than being queued.
      *
      *  @param item The message to add to the queue.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     override public function addItem(item:Object):void
     {
@@ -238,6 +298,12 @@
      *  ResultEvents and FaultEvents dispatched by the MessageStore.
      *
      *  @throws IllegalOperationError if no cacheID has been set
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function clearCache():AsyncToken
     {
@@ -270,6 +336,12 @@
      *  filled with all cache identifiers previously used in the application.
 	 *  @return AsyncToken reference to the token that will identify this
 	 *  operation in a result or fault event dispatched from this service.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function getCacheIDs(view:ListCollectionView):AsyncToken
     {
@@ -284,6 +356,12 @@
      *
      *  @return AsyncToken which can be used to respond to the success or
      *  failure of the operation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function initialize():AsyncToken
     {
@@ -318,6 +396,12 @@
      *  @throws IllegalOperationError if the cacheID property is
      *  invalid.
      *  @see mx.messaging.MessageStore#cacheID
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function loadCache():AsyncToken
     {
@@ -348,6 +432,12 @@
      *  If this method is invoked before the MessageStore has initialized or
      *  after it has been released it is a no-op; however it will still return
      *  a token and dispatch a ResultEvent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function release():AsyncToken
     {
@@ -374,6 +464,12 @@
      *  ResultEvents and FaultEvents dispatched by the MessageStore.
      *
      *  @throws IllegalOperationError If the cacheID has not been set.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function saveCache():AsyncToken
     {
@@ -411,6 +507,12 @@
      *  DSMessageStore header by the store implementation.
      *
      *  @param msg The message to queue.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     mx_internal function addMessage(msg:IMessage):void {}

@@ -422,6 +524,12 @@
      *  removed from the store before being sent over the network.
      *
      *  @param msg The message to remove.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     mx_internal function removeMessage(msg:IMessage):void {}

@@ -429,6 +537,12 @@
      *  Sets the producer for this message store.
      *  This method is called by the AbstractProducer when it's messageStore
      *  property is set.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     mx_internal function setProducer(value:AbstractProducer):void
     {
@@ -479,6 +593,12 @@
      *
      *  @param token The token associated with the fault.
      *  @param fault The fault.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function dispatchFaultEvent(fault:Fault, token:AsyncToken):void
     {
@@ -495,6 +615,12 @@
      *
      *  @param token The token associated with the result.
      *  @param generalDispatch Allows code to trigger responders without dispatching a general result event.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function dispatchResultEvent(event:ResultEvent, token:AsyncToken):void
     {
@@ -505,18 +631,36 @@

     /**
      * The decendant class must clear the local disk of any cached data.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function internalClearCache(token:AsyncToken):void {}

     /**
      *  The descendant class must retrieve the cache ids from the local store and
      *  add them to the specified view.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function internalGetCacheIDs(view:ListCollectionView,
                                            token:AsyncToken):void {}

     /**
      *  The descendant class must initialize the local store.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function internalInitialize(success:Function, failed:Function):void
     {
@@ -526,21 +670,45 @@
     /**
      *  The descendant class must load the store with any data found for the
      *  specified cacheID.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function internalLoadCache(token:AsyncToken):void {}

     /**
      *  The descendant class must release any disk/local store resources
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function internalRelease(token:AsyncToken):void {}

     /**
      *  The descendant class must perform any local storage configuration here.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function internalSetCacheId(value:String):void {}

     /**
      *  The descendant class must save the current state of the store to disk.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     protected function internalSaveCache(token:AsyncToken):void {}

@@ -569,6 +737,12 @@
     /**
      *  This method is called by implementations once all data is loaded from
      *  disk.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
 	protected function setLoaded(value:Boolean):void
 	{
@@ -632,6 +806,12 @@
      *  originate from the proper queue and have been removed from the queue before
      *  being sent. This header is automatically removed from the message before it
      *  is sent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const MESSAGE_STORE_HEADER:String = "DSMessageStore";
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11385
Author:   dloverin@adobe.com
Date:     2009-11-02T23:46:05.006747Z

Log Message:
-----------
Load a style module into the correct style manager.

IStyleManager:
•	Update loadStyleDeclarations() to have the same parameters as StyleManager.loadStyleDeclarations().

StyleManagerImpl:
•	Update loadStyleDeclarations signature.
•	Pass the correct style manager instance to styleModule.setStyleDeclarations().

QE notes: None.
Doc notes: None.
Bugs: SDK-23975
Reviewer: Alex
Tests run: checkintests
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>

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

--- frameworks/projects/framework/src/mx/styles/IStyleManager.as
+++ frameworks/projects/framework/src/mx/styles/IStyleManager.as
@@ -13,6 +13,8 @@
 {

 import flash.events.IEventDispatcher;
+import flash.system.ApplicationDomain;
+import flash.system.SecurityDomain;

 /**
  *  The IStyleManager class manages the following:
@@ -512,12 +514,14 @@
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-	function loadStyleDeclarations(
-					url:String, update:Boolean = true,
-					trustContent:Boolean = false):IEventDispatcher;
-
+     *  @productversion Flex 4
+     */
+    function loadStyleDeclarations(
+                    url:String, update:Boolean = true,
+                    trustContent:Boolean = false,
+                    applicationDomain:ApplicationDomain = null,
+                    securityDomain:SecurityDomain = null):IEventDispatcher;
+
     /**
      *  Unloads a style SWF.
      *


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/charts/src/mx/charts/styles/metadata/GapStyles.as
+++ frameworks/projects/charts/src/mx/charts/styles/metadata/GapStyles.as
@@ -1,4 +1,23 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////

+/**
+ *  Number of pixels between children in the horizontal direction.
+ *  The default value is 8.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
 [Style(name="horizontalGap", type="Number", format="Length", inherit="no")]

 /**


FLEX-17210 Added check to see if locale exists when changing localeChain

--- frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
@@ -225,6 +225,15 @@
     public function set localeChain(value:Array /* of String */):void
     {
         _localeChain = value;
+
+		for each (var locale:String in value)
+		{
+			if (!localeMap.hasOwnProperty(locale))
+			{
+				throw new Error(
+					"Could not find compiled locale '" + locale + "'.");
+			}
+		}

         update();
     }


simplified code

simplified code

Change-Id: Iece53d812f06cac7c7c8abce5acd32ac0c187a78

--- WeaveUISpark/src/weave/visualization/plotters/ColorBinLegendPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/ColorBinLegendPlotter.as
@@ -117,13 +117,11 @@
 		 */
 		public const legendTitleFunction:LinkableFunction = registerLinkableChild(this, new LinkableFunction('string', true, false, ['string']));

-		private const _binsOrdering:Array = [];
 		private var _binToBounds:Array = [];
 		private var _binToString:Array = [];
 		public var numBins:int = 0;
 		private function createHashMaps():void
 		{
-			_binsOrdering.length = 0;
 			_binToString = [];
 			_binToBounds = [];

@@ -139,8 +137,7 @@
 				return;
 			}

-			var bins:Array = binnedColumn.getDerivedBins().getObjects();
-			numBins = bins.length;
+			numBins = binnedColumn.numberOfBins;
 			var maxCols:int = maxColumns.value;
 			if (maxCols <= 0)
 				maxCols = 1;
@@ -156,7 +153,6 @@
 				var row:int = adjustedIBin / maxCols;
 				var col:int = adjustedIBin % maxCols;
 				var b:IBounds2D = new Bounds2D();
-				_binsOrdering.push(bins[iBin]);

 				LegendUtils.getBoundsFromItemID(getBackgroundDataBounds(), adjustedIBin, b, maxNumBins, maxCols, true);

@@ -239,7 +235,7 @@
 			var internalMin:Number = stats.getMin();
 			var internalMax:Number = stats.getMax();
 			var internalColorRamp:ColorRamp = getInternalColorColumn().ramp;
-			var binCount:int = binnedColumn.getDerivedBins().getObjects().length;
+			var binCount:int = binnedColumn.numberOfBins;
 			for (var iBin:int = 0; iBin < binCount; ++iBin)
 			{
 				// if _drawBackground is set, we should draw the bins that have no records in them.


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

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

 package mx.formatters
 {


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

--- frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as
+++ frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as
@@ -0,0 +1,24 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  Number of pixels between children in the horizontal direction.
+ *  The default value depends on the component class;
+ *  if not overriden for the class, the default value is 8.
+ */
+[Style(name="horizontalGap", type="Number", format="Length", inherit="no")]
+
+/**
+ *  Number of pixels between children in the vertical direction.
+ *  The default value depends on the component class;
+ *  if not overriden for the class, the default value is 6.
+ */
+[Style(name="verticalGap", type="Number", format="Length", inherit="no")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 11170
Author:   rfrishbe@adobe.com
Date:     2009-10-26T23:15:30.879444Z

Log Message:
-----------
ItemRenderer changes.  Fixing some bugs with the autoDrawBackground flag.  Also making some PARB changes:

1.  IItemRenderer.index -> itemIndex (affects DefaultItemRenderer, ItemRenderer, and ButtonBarButton).
2.  GroupBase.renderBackgroundFill() (protected method) -> drawBackground() (mx_internal method)
3.  ItemRenderer.handleBackgroundFill -> autoDrawBackground
4.  Removed contentBackgroundColor from ItemRenderer

Also, DefaultItemRenderer is now no longer an MXML file, but it is an AS-only class that extends UIComponent.

QE notes: -
Doc notes: Yes - Can you please look at the ASDocs for DefaultItemRenderer.as and the autoDrawBackground flag on ItemRenderer
Bugs: -
Reviewer: Deepa
Tests run: checkintests, Mustella List, DataGroup, DropDownList
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.mxml" copyfrom-rev="11100" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/IItemRenderer.as</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/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/ButtonBarButton.as
+++ frameworks/projects/spark/src/spark/components/ButtonBarButton.as
@@ -165,30 +165,31 @@
     }

     //----------------------------------
-    //  index
-    //----------------------------------
-    /**
-     *  @private
-     *  storage for the index property
-     */
-    private var _index:int;
+    //  itemIndex
+    //----------------------------------
+
+    /**
+     *  @private
+     *  storage for the itemIndex property
+     */
+    private var _itemIndex:int;

     /**
      *  @inheritDoc
      *
      *  @default false
      */
-    public function get index():int
-    {
-        return _index;
-    }
-
-    /**
-     *  @private
-     */
-    public function set index(value:int):void
-    {
-        _index = value;
+    public function get itemIndex():int
+    {
+        return _itemIndex;
+    }
+
+    /**
+     *  @private
+     */
+    public function set itemIndex(value:int):void
+    {
+        _itemIndex = value;
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/advancedgrids/src/mx/styles/metadata/TextStyles.as
+++ frameworks/projects/advancedgrids/src/mx/styles/metadata/TextStyles.as
@@ -0,0 +1,274 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  Color of text in the component, including the component label.
+ *
+ *  @default 0x0B333C
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="color", type="uint", format="Color", inherit="yes")]
+
+/**
+ *  Color of text in the component if it is disabled.
+ *
+ *  @default 0xAAB3B3
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="disabledColor", type="uint", format="Color", inherit="yes")]
+
+/**
+ *  Sets the antiAliasType property of internal TextFields. The possible values are
+ *  "normal" (flash.text.AntiAliasType.NORMAL)
+ *  and "advanced" (flash.text.AntiAliasType.ADVANCED).
+ *
+ *
The default value is "advanced", which enables
+ *  advanced anti-aliasing if you are using an
+ *  embedded advanced anti-aliasing font.
+ *  Set to "normal" to disable advanced anti-aliasing.

+ *
+ *
This style has no effect for system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you can't apply it to some characters and not others.

+
+ *  @default "advanced"
+ *
+ *  @see flash.text.TextField
+ *  @see flash.text.AntiAliasType
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontAntiAliasType", type="String", enumeration="normal,advanced", inherit="yes")]
+
+/**
+ *  Name of the font to use.
+ *  Unlike in a full CSS implementation,
+ *  comma-separated lists are not supported.
+ *  You can use any font family name.
+ *  If you specify a generic font name,
+ *  it is converted to an appropriate device font.
+ *
+ *  @default "Verdana"
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontFamily", type="String", inherit="yes")]
+
+/**
+ *  Sets the gridFitType property of internal TextFields that represent text in Flex controls.
+ *  The possible values are "none" (flash.text.GridFitType.NONE),
+ *  "pixel" (flash.text.GridFitType.PIXEL),
+ *  and "subpixel" (flash.text.GridFitType.SUBPIXEL).
+ *
+ *
This property only applies when you are using an embedded advanced anti-aliasing font
+ *  and the fontAntiAliasType property
+ *  is set to "advanced".

+ *
+ *
This style has no effect for system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you can't apply it to some characters and not others.

+ *
+ *  @default "pixel"
+ *
+ *  @see flash.text.TextField
+ *  @see flash.text.GridFitType
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontGridFitType", type="String", enumeration="none,pixel,subpixel", inherit="yes")]
+
+/**
+ *  Sets the sharpness property of internal TextFields that represent text in Flex controls.
+ *  This property specifies the sharpness of the glyph edges. The possible values are Numbers
+ *  from -400 through 400.
+ *
+ *
This property only applies when you are using an embedded advanced anti-aliasing font
+ *  and the fontAntiAliasType property
+ *  is set to "advanced".

+ *
+ *
This style has no effect for system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you can't apply it to some characters and not others.

+ *
+ *  @default 0
+ *
+ *  @see flash.text.TextField
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontSharpness", type="Number", inherit="yes")]
+
+/**
+ *  Height of the text, in pixels.
+ *
+ *  The default value is 10 for all controls except the ColorPicker control.
+ *  For the ColorPicker control, the default value is 11.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontSize", type="Number", format="Length", inherit="yes")]
+
+/**
+ *  Determines whether the text is italic font.
+ *  Recognized values are "normal" and "italic".
+ *
+ *  @default "normal"
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontStyle", type="String", enumeration="normal,italic", inherit="yes")]
+
+/**
+ *  Sets the thickness property of internal TextFields that represent text in Flex controls.
+ *  This property specifies the thickness of the glyph edges.
+ *  The possible values are Numbers from -200 to 200.
+ *
+ *
This property only applies when you are using an embedded advanced anti-aliasing font
+ *  and the fontAntiAliasType property
+ *  is set to "advanced".

+ *
+ *
This style has no effect on system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you can't apply it to some characters and not others.

+ *
+ *  @default 0
+ *
+ *  @see flash.text.TextField
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontThickness", type="Number", inherit="yes")]
+
+/**
+ *  Determines whether the text is boldface.
+ *  Recognized values are "normal" and "bold".
+ *  For Button controls, the default is "bold".
+ *
+ *  @default "normal"
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fontWeight", type="String", enumeration="normal,bold", inherit="yes")]
+
+/**
+ *  A Boolean value that indicates whether kerning
+ *  is enabled (true) or disabled (false).
+ *  Kerning adjusts the gap between certain character pairs
+ *  to improve readability, and should be used only when necessary,
+ *  such as with headings in large fonts.
+ *  Kerning is supported for embedded advanced anti-aliasing fonts only.
+ *  Certain fonts, such as Verdana, and monospaced fonts,
+ *  such as Courier New, do not support kerning.
+ *
+ *  @default false
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="kerning", type="Boolean", inherit="yes")]
+
+/**
+ *  The number of additional pixels to appear between each character.
+ *  A positive value increases the character spacing beyond the normal spacing,
+ *  while a negative value decreases it.
+ *
+ *  @default 0
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="letterSpacing", type="Number", inherit="yes")]
+
+/**
+ *  Alignment of text within a container.
+ *  Possible values are "left", "right",
+ *  or "center".
+ *
+ *
The default value for most controls is left.
+ *  For the Button, LinkButton, and AccordionHeader components,
+ *  the default value is "center".
+ *  For these components, this property is only recognized when the
+ *  labelPlacement property is set to "left" or
+ *  "right".
+ *  If labelPlacement is set to "top" or
+ *  "bottom", the text and any icon are centered.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="textAlign", type="String", enumeration="left,center,right", inherit="yes")]
+
+/**
+ *  Determines whether the text is underlined.
+ *  Possible values are "none" and "underline".
+ *
+ *  @default "none"
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="textDecoration", type="String", enumeration="none,underline", inherit="yes")]
+
+/**
+ *  Offset of first line of text from the left side of the container, in pixels.
+ *
+ *  @default 0
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="textIndent", type="Number", format="Length", inherit="yes")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 21974
Author:   jszeto@adobe.com
Date:     2011-08-13T04:39:10.916633Z

Log Message:
-----------
SpinnerList Bug Fixes

SDK-31149 - SpinnerListSkin should split updateDisplayList into layoutContents and drawBackground

SDK-31148 - SpinnerListContainer layout should have verticalAlign="center" by default

SDK-31075 - Date spinner in DATE_TIME mode is sluggish

Optimize VerticalSpinnerLayout to move the scrollRect and only update when a new item is needed

SDK-31053 - SpinnerList does not dispatch change event when user taps on item to have it snap into selection

Added dispatchChangeEvent parameter to animateToSelectedIndex and set it to true on item click

SDK-31001 - NumericDataProvider only supports sequences of increasing values

StepSize now supports negative values. If stepSize is negative, then the maximum is the first value

SDK-30892 - SpinnerListContainer doesn't respect the backgroundColor/backgroundAlpha styles

Exclude these two styles

QE notes: none
Doc notes: none
Bugs:
Reviewer: Tom Kraikit, Evtim, Kyu
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/bundles/en_US/collections.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/layouts/VerticalSpinnerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>

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

--- frameworks/projects/spark/src/spark/collections/NumericDataProvider.as
+++ frameworks/projects/spark/src/spark/collections/NumericDataProvider.as
@@ -89,7 +89,7 @@
     public function get length():int
     {
         normalizeMinMax();
-        return (_maximum - _minimum) / stepSize + 1;
+        return (_maximum - _minimum) / Math.abs(stepSize) + 1;
     }

     //----------------------------------
@@ -190,7 +190,7 @@
         if (_stepSize == value)
             return;

-        if (value <= 0)
+        if (value == 0)
         {
             var message:String = resourceManager.getString(
                 "collections", "stepSizeError");
@@ -253,6 +253,7 @@
         var scale:Number = 1;
         var value:Number;
         var scaledStepSize:Number = stepSize;
+        var baseValue:Number = stepSize > 0 ? minimum : maximum;

         // If stepSize isn't an integer, there's a possibility that the floating point
         // approximation of value will be slightly larger or smaller
@@ -272,9 +273,9 @@
         else
         {
             value = index * stepSize;
-        }
-
-        return Math.min(Math.max(value + minimum, minimum), maximum);
+        }
+
+        return Math.min(Math.max(value + baseValue, minimum), maximum);
     }

     /**
@@ -285,7 +286,9 @@
         // Calculate the index by subtracting the item from the minimum and
         // dividing by the stepSize. Make sure the index is between
         // 0 and length - 1.
-        return Math.max(Math.min((Number(item) - minimum) / stepSize, length - 1), 0);
+        var baseValue:Number = stepSize > 0 ? minimum : maximum;
+
+        return Math.max(Math.min((Number(item) - baseValue) / stepSize, length - 1), 0);
     }

     /**
@@ -357,10 +360,11 @@
     {
         var result:Array = [];
         var numItems:int = length;
+        var baseValue:Number = stepSize > 0 ? minimum : maximum;

         // TODO (jszeto) Add in floating point error logic
         for (var i:int = 0; i < numItems; i++)
-            result.push(Math.min(Math.max(minimum + (i * stepSize), minimum), maximum));
+            result.push(Math.min(Math.max(baseValue + (i * stepSize), minimum), maximum));
         return result;
     }


minor coding style fixes

minor coding style fixes

--- src/aerys/minko/type/data/DataBindings.as
+++ src/aerys/minko/type/data/DataBindings.as
@@ -39,7 +39,7 @@
 			var providerBindingNames	: Vector.<String>	= new Vector.<String>();
 			var dataDescriptor			: Object			= provider.dataDescriptor;

-			provider.changed.add(onProviderChange);
+			provider.changed.add(providerChangedHandler);

 			for (var attrName : String in dataDescriptor)
 			{
@@ -53,7 +53,7 @@

 				if (dpAttribute != null)
 				{
-					dpAttribute.changed.add(onProviderAttributeChange);
+					dpAttribute.changed.add(providerPropertyChangedHandler);

 					_attributeToProviders[dpAttribute]			||= new <IDataProvider>[];
 					_attributeToProvidersAttrNames[dpAttribute]	||= new <String>[];
@@ -90,7 +90,7 @@
 				_bindingNames.splice(indexOf, 1);

 				if (_bindingNameToValue[bindingName] is IDataProvider)
-					IDataProvider(_bindingNameToValue[bindingName]).changed.remove(onProviderAttributeChange);
+					IDataProvider(_bindingNameToValue[bindingName]).changed.remove(providerPropertyChangedHandler);

 				delete _bindingNameToValue[bindingName];
 			}
@@ -119,7 +119,7 @@
 				delete _attributeToProvidersAttrNames[attributeToDelete];
 			}

-			provider.changed.remove(onProviderChange);
+			provider.changed.remove(providerChangedHandler);

 			--_numProviders;
 			_providers.splice(_providers.indexOf(provider), 1);
@@ -171,7 +171,6 @@
 			return _bindingNameToValue.hasOwnProperty(bindingName);
 		}

-
 		public function getProperty(bindingName : String) : *
 		{
 			return _bindingNameToValue[bindingName];
@@ -185,13 +184,7 @@
 			return _bindingNames[bindingIndex];
 		}

-		/**
-		 * A provider attribute has changed, and the provider tells us.
-		 * For example, camera.fov has changed, the camera dispatches a 'changed' signal with 'fov' as attributeName.
-		 *
-		 * It could also be that camera.localToWorld has been replaced by another matrix instance.
-		 */
-		private function onProviderChange(source : IDataProvider, attributeName : String) : void
+		private function providerChangedHandler(source : IDataProvider, attributeName : String) : void
 		{
 			if (attributeName == null)
 			{
@@ -212,7 +205,7 @@
 				// we are replacing a data provider. We must remove listeners and related mapping keys
 				if (oldDpValue != null)
 				{
-					oldDpValue.changed.remove(onProviderAttributeChange);
+					oldDpValue.changed.remove(providerPropertyChangedHandler);

 					var providers	: Vector.<IDataProvider>	= _attributeToProviders[oldDpValue];
 					var attrNames	: Vector.<String>			= _attributeToProvidersAttrNames[oldDpValue];
@@ -233,7 +226,7 @@
 				// the new value for this key is a dataprovider, we must listen changes.
 				if (newDpValue != null)
 				{
-					newDpValue.changed.add(onProviderAttributeChange);
+					newDpValue.changed.add(providerPropertyChangedHandler);

 					_attributeToProviders[newDpValue]			||= new <IDataProvider>[];
 					_attributeToProvidersAttrNames[newDpValue]	||= new <String>[];
@@ -249,11 +242,7 @@
 			}
 		}

-		/**
-		 * A provider attribute has changed, and the attribute tells us.
-		 * For example, camera.localToWorld has been updated.
-		 */
-		private function onProviderAttributeChange(source : IDataProvider, key : String) : void
+		private function providerPropertyChangedHandler(source : IDataProvider, key : String) : void
 		{
 			var providers		: Vector.<IDataProvider>	= _attributeToProviders[source];
 			var attrNames		: Vector.<String>			= _attributeToProvidersAttrNames[source];


Use the symbol name for exported movies.

--- runtime/src/main/as/flump/xfl/XflMovie.as
+++ runtime/src/main/as/flump/xfl/XflMovie.as
@@ -66,7 +66,7 @@
     public function toXML () :XML
     {
         var xml :XML = <movie
-            name={libraryItem}
+            name={symbol}
             md5={md5}
         />;
         for each (var layer :XflLayer in layers) {


[feat] update video entity

[feat] update video entity

- use read dates
- improved image handling, use collection and ImageSize enum

--- src/main/actionscript/com/dotfold/dotvimstat/model/VideoEntity.as
+++ src/main/actionscript/com/dotfold/dotvimstat/model/VideoEntity.as
@@ -1,5 +1,8 @@
 package com.dotfold.dotvimstat.model
 {
+	import com.dotfold.dotvimstat.model.enum.ImageSize;
+	import com.dotfold.dotvimstat.model.image.EntityImage;
+	import com.dotfold.dotvimstat.model.image.EntityImageCollection;

 	/**
 	 * VideoEntity.
@@ -8,7 +11,7 @@
 	 *
 	 * @author jamesmcnamee
 	 *
-	 */
+	 */
 	public class VideoEntity extends BaseEntity
 	{

@@ -29,19 +32,132 @@
 		public var stats_number_of_likes:int;
 		public var stats_number_of_plays:int;
 		public var tags:String;
-		public var thumbnail_large:String;
-		public var thumbnail_medium:String;
-		public var thumbnail_small:String;
 		public var title:String;
-		public var upload_date:String;
+		public var upload_date:Date;
 		public var url:String;
 		public var user_name:String;
-		public var user_portrait_huge:String;
-		public var user_portrait_large:String;
-		public var user_portrait_medium:String;
-		public var user_portrait_small:String;
 		public var user_url:String;
 		public var width:int;

+
+		//
+		// Images
+		//
+
+		private var _thumbnail_small:String;
+		public function get thumbnail_small():String
+		{
+			return _thumbnail_small;
+		}
+
+		public function set thumbnail_small(value:String):void
+		{
+			_thumbnail_small = value;
+
+			var image:EntityImage = new EntityImage();
+			image.url = value;
+			image.size = ImageSize.SMALL;
+			thumbnail_images.addItem(image);
+		}
+
+		private var _thumbnail_medium:String;
+		public function get thumbnail_medium():String
+		{
+			return _thumbnail_medium;
+		}
+
+		public function set thumbnail_medium(value:String):void
+		{
+			_thumbnail_medium = value;
+
+			var image:EntityImage = new EntityImage();
+			image.url = value;
+			image.size = ImageSize.MEDIUM;
+			thumbnail_images.addItem(image);
+		}
+
+		private var _thumbnail_large:String;
+		public function get thumbnail_large():String
+		{
+			return _thumbnail_large;
+		}
+
+		public function set thumbnail_large(value:String):void
+		{
+			_thumbnail_large = value;
+
+			var image:EntityImage = new EntityImage();
+			image.url = value;
+			image.size = ImageSize.LARGE;
+			thumbnail_images.addItem(image);
+		}
+
+		private var _user_portrait_small:String
+		public function get user_portrait_small():String
+		{
+			return _user_portrait_small;
+		}
+
+		public function set user_portrait_small(value:String):void
+		{
+			_user_portrait_small = value;
+
+			var image:EntityImage = new EntityImage();
+			image.url = value;
+			image.size = ImageSize.SMALL;
+			user_portrait_images.addItem(image);
+		}
+
+		private var _user_portrait_medium:String
+		public function get user_portrait_medium():String
+		{
+			return _user_portrait_medium;
+		}
+
+		public function set user_portrait_medium(value:String):void
+		{
+			_user_portrait_medium = value;
+
+			var image:EntityImage = new EntityImage();
+			image.url = value;
+			image.size = ImageSize.MEDIUM;
+			user_portrait_images.addItem(image);
+		}
+
+		private var _user_portrait_large:String
+		public function get user_portrait_large():String
+		{
+			return _user_portrait_large;
+		}
+
+		public function set user_portrait_large(value:String):void
+		{
+			_user_portrait_large = value;
+
+			var image:EntityImage = new EntityImage();
+			image.url = value;
+			image.size = ImageSize.LARGE;
+			user_portrait_images.addItem(image);
+		}
+
+		private var _user_portrait_huge:String
+		public function get user_portrait_huge():String
+		{
+			return _user_portrait_huge;
+		}
+
+		public function set user_portrait_huge(value:String):void
+		{
+			_user_portrait_huge = value;
+
+			var image:EntityImage = new EntityImage();
+			image.url = value;
+			image.size = ImageSize.HUGE;
+			user_portrait_images.addItem(image);
+		}
+
+		public var user_portrait_images:EntityImageCollection = new EntityImageCollection();
+		public var thumbnail_images:EntityImageCollection = new EntityImageCollection();
+
 	}
 }


Ignored a test that fails because it is environment-specific

--- FlexUnit4Test/src/org/flexunit/runner/notification/cases/FailureCase.as
+++ FlexUnit4Test/src/org/flexunit/runner/notification/cases/FailureCase.as
@@ -67,6 +67,7 @@

 		//TODO: There needs to be a second tests created for when Capabilities.isDebugger returns a value of false, how would this
 		//be properly implemented
+		[Ignore]
 		[Test(description="Ensure that the statck trace value is correctly obtained when the system is a debugging version")]
 		public function getStackTraceDebuggerTest():void {
 			Assert.assertEquals(exception.getStackTrace(), failure.stackTrace);


StreamBuffer : fix backBuffer clipping not working and potential memleak

If AVC HEADER remains constant, back buffer was never flushed, leading to memleak
issue introduced by https://github.com/mangui/flashls/commit/0e9f7f4eddb5d2085f72a1ffb0e14ffac3286766, as since this commit, AVC HEADER is only pushed once if it never changes
related to https://github.com/mangui/flashls/issues/465

--- src/org/mangui/hls/stream/StreamBuffer.as
+++ src/org/mangui/hls/stream/StreamBuffer.as
@@ -973,9 +973,9 @@
             var clipping_position : Number;

             if(videoExpected) {
-                // find last video keyframe before clipping_position : loop through header tags and find last AVC_HEADER before clipping position
-                for each (var data : FLVData in _headerTags) {
-                    if ((data.positionAbsolute - _liveSlidingMain ) <= clipping_position0 && data.tag.type == FLVTag.AVC_HEADER) {
+                // find last video keyframe before clipping_position : loop through video tags and find last keyframe before clipping position
+                for each (var data : FLVData in _videoTags) {
+                    if ((data.positionAbsolute - _liveSlidingMain ) <= clipping_position0 && data.tag.keyframe) {
                         clipping_position = data.positionAbsolute - _liveSlidingMain;
                     }
                 }


After renaming IEventBubbler and committing, Git only then showed the original file as deleted.

--- src/com/robertpenner/signals/IEventBubbler.as
+++ src/com/robertpenner/signals/IEventBubbler.as
@@ -1,12 +0,0 @@
-package com.robertpenner.signals
-{
-	public interface IEventBubbler
-	{
-		/**
-		 * Handler for event bubbling.
-		 * It's left to the IEventBubbler to decide what to do with the event.
-		 * @param	event The event that bubbled up.
-		 */
-		function onEventBubbled(event:IEvent):void;
-	}
-}


Add test using explicit width to PackerSpecification.

--- lib/goplayer/PackerSpecification.as
+++ lib/goplayer/PackerSpecification.as
@@ -8,13 +8,17 @@
   {
     override protected function execute() : void
     {
-      it("should pack two static items correctly", function () : void {
-        const a : Sprite = getSquare(1)
-        const b : Sprite = getSquare(1)
+      const a : Sprite = getSquare(1)
+      const b : Sprite = getSquare(1)

+      it("should pack using internal widths", function () : void {
         Packer.packLeft(a, b)
+        specify(b.x).should.equal(1)
+      })

-        specify(b.x).should.equal(1)
+      it("should honor explicit widths", function () : void {
+        Packer.packLeft([a, 2], b)
+        specify(b.x).should.equal(2)
       })
     }


catch the situation where requirements don't have an object to refer to.

--- flexEditor/src/org/arisgames/editor/view/RequirementsEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/RequirementsEditorView.as
@@ -219,6 +219,12 @@
         else if (DataGrid(evt.target).itemEditorInstance is RequirementsEditorObjectComboBoxMX)
         {
             trace("RequirementEditorView: It's an Object ComboBox, so process accordingly.");
+
+			if (!RequirementsEditorObjectComboBoxMX(DataGrid(evt.target).itemEditorInstance).cbo.selectedItem.hasOwnProperty("data")) {
+				trace("RequirementEditorView: It's null. Return");
+				return;
+			}
+
             evt.preventDefault();

             // Get new requirement from editor for renderer to display


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/automation_dmv/src/AutomationDMVClasses.as
+++ frameworks/projects/automation_dmv/src/AutomationDMVClasses.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+
+/**
+ *  @private
+ *  In some projects, this class is used to link additional classes
+ *  into the SWC beyond those that are found by dependency analysis
+ *  starting from the classes specified in manifest.xml.
+ *  This project has no manifest file (because there are no MXML tags
+ *  corresponding to any classes in it) so all the classes linked into
+ *  the SWC are found by a dependency analysis starting from the classes
+ *  listed here.
+ */
+internal class AutomationDMVClasses
+{
+
+	import mx.automation.delegates.advancedDataGrid.AdvancedDataGridAutomationImpl;AdvancedDataGridAutomationImpl;
+	import mx.automation.delegates.advancedDataGrid.AdvancedDataGridBaseExAutomationImpl;AdvancedDataGridBaseExAutomationImpl;
+	import mx.automation.delegates.advancedDataGrid.AdvancedDataGridItemRendererAutomationImpl;AdvancedDataGridItemRendererAutomationImpl;
+	import mx.automation.delegates.advancedDataGrid.AdvancedDataGridGroupItemRendererAutomationImpl;AdvancedDataGridGroupItemRendererAutomationImpl;
+	import mx.automation.delegates.advancedDataGrid.AdvancedListBaseAutomationImpl;AdvancedListBaseAutomationImpl;
+	import mx.automation.delegates.advancedDataGrid.AdvancedListBaseContentHolderAutomationImpl;AdvancedListBaseContentHolderAutomationImpl;
+	import mx.automation.delegates.advancedDataGrid.OLAPDataGridAutomationImpl;OLAPDataGridAutomationImpl;
+	import mx.automation.delegates.advancedDataGrid.OLAPDataGridGroupRendererAutomationImpl;OLAPDataGridGroupRendererAutomationImpl;
+
+
+	import mx.automation.delegates.charts.AreaSeriesAutomationImpl; AreaSeriesAutomationImpl;
+	import mx.automation.delegates.charts.AxisRendererAutomationImpl; AxisRendererAutomationImpl;
+	import mx.automation.delegates.charts.BarSeriesAutomationImpl; BarSeriesAutomationImpl;
+	import mx.automation.delegates.charts.BubbleSeriesAutomationImpl; BubbleSeriesAutomationImpl;
+	import mx.automation.delegates.charts.CartesianChartAutomationImpl; CartesianChartAutomationImpl;
+	import mx.automation.delegates.charts.ChartBaseAutomationImpl; ChartBaseAutomationImpl;
+	import mx.automation.delegates.charts.ColumnSeriesAutomationImpl; ColumnSeriesAutomationImpl;
+	import mx.automation.delegates.charts.HLOCSeriesBaseAutomationImpl; HLOCSeriesBaseAutomationImpl;
+	import mx.automation.delegates.charts.LegendAutomationImpl; LegendAutomationImpl;
+	import mx.automation.delegates.charts.LegendItemAutomationImpl; LegendItemAutomationImpl;
+	import mx.automation.delegates.charts.LineSeriesAutomationImpl; LineSeriesAutomationImpl;
+	import mx.automation.delegates.charts.PieSeriesAutomationImpl; PieSeriesAutomationImpl;
+	import mx.automation.delegates.charts.PlotSeriesAutomationImpl; PlotSeriesAutomationImpl;
+	import mx.automation.delegates.charts.SeriesAutomationImpl; SeriesAutomationImpl;
+	// Maintain alphabetical order
+}
+
+}


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

--- frameworks/projects/framework/src/mx/effects/EffectInstance.as
+++ frameworks/projects/framework/src/mx/effects/EffectInstance.as
@@ -0,0 +1,740 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.effects
+{
+
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import flash.events.TimerEvent;
+import flash.utils.Timer;
+import flash.utils.getQualifiedClassName;
+import flash.utils.getTimer;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+import mx.effects.effectClasses.PropertyChanges;
+import mx.events.EffectEvent;
+import mx.events.FlexEvent;
+
+use namespace mx_internal;
+
+/**
+ *  The EffectInstance class represents an instance of an effect
+ *  playing on a target.
+ *  Each target has a separate effect instance associated with it.
+ *  An effect instance's lifetime is transitory.
+ *  An instance is created when the effect is played on a target
+ *  and is destroyed when the effect has finished playing.
+ *  If there are multiple effects playing on a target at the same time
+ *  (for example, a Parallel effect), there is a separate effect instance
+ *  for each effect.
+ *
+ *
Effect developers must create an instance class
+ *  for their custom effects.

+ *
+ *  @see mx.effects.Effect
+ */
+public class EffectInstance extends EventDispatcher implements IEffectInstance
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param target UIComponent object to animate with this effect.
+     */
+    public function EffectInstance(target:Object)
+    {
+        super();
+
+        this.target = target;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Timer used to track startDelay and repeatDelay.
+     */
+    mx_internal var delayTimer:Timer;
+
+    /**
+     *  @private
+     *  Starting time of delayTimer.
+     */
+    private var delayStartTime:Number = 0;
+
+    /**
+     *  @private
+     *  Elapsed time of delayTimer when paused.
+     *  Used by resume() to figure out amount of time remaining.
+     */
+    private var delayElapsedTime:Number = 0;
+
+    /**
+     *  @private
+     *  Internal flag remembering whether the user
+     *  explicitly specified a duration or not.
+     */
+    mx_internal var durationExplicitlySet:Boolean = false;
+
+    /**
+     *  @private
+     *  If this is a "hide" effect, the EffectManager sets this flag
+     *  as a reminder to hide the object when the effect finishes.
+     */
+    mx_internal var hideOnEffectEnd:Boolean = false;
+
+    /**
+     *  @private
+     *  Pointer back to the CompositeEffect that created this instance.
+     *  Value is null if we are not the child of a CompositeEffect
+     */
+    mx_internal var parentCompositeEffectInstance:EffectInstance;
+
+    /**
+     *  @private
+     *  Number of times that the instance has been played.
+     */
+    private var playCount:int = 0;
+
+    /**
+     *  @private
+     *  Used internally to prevent the effect from repeating
+     *  once the effect has been ended by calling end().
+     */
+    mx_internal var stopRepeat:Boolean = false;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  actualDuration
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Used internally to determine the duration
+     *  including the startDelay, repeatDelay, and repeatCount values.
+     */
+    mx_internal function get actualDuration():Number
+    {
+        var value:Number = NaN;
+
+        if (repeatCount > 0)
+        {
+            value = duration * repeatCount +
+                    (repeatDelay * repeatCount - 1) + startDelay;
+        }
+
+        return value;
+    }
+
+    //----------------------------------
+    //  className
+    //----------------------------------
+
+    /**
+     *  @copy mx.effects.IEffectInstance#className
+     */
+    public function get className():String
+    {
+        var name:String = getQualifiedClassName(this);
+
+        // If there is a package name, strip it off.
+        var index:int = name.indexOf("::");
+        if (index != -1)
+            name = name.substr(index + 2);
+
+        return name;
+    }
+
+    //----------------------------------
+    //  duration
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the duration property.
+     */
+    private var _duration:Number = 500;
+
+    [Inspectable(category="General", defaultValue="500")]
+
+    /**
+     *  @copy mx.effects.IEffectInstance#duration
+     */
+    public function get duration():Number
+    {
+        if (!mx_internal::durationExplicitlySet &&
+            mx_internal::parentCompositeEffectInstance)
+        {
+            return mx_internal::parentCompositeEffectInstance.duration;
+        }
+        else
+        {
+            return _duration;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    public function set duration(value:Number):void
+    {
+        mx_internal::durationExplicitlySet = true;
+        _duration = value;
+    }
+
+    //----------------------------------
+    //  effect
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the effect property.
+     */
+    private var _effect:IEffect;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#effect
+     */
+    public function get effect():IEffect
+    {
+        return _effect;
+    }
+
+    /**
+     *  @private
+     */
+    public function set effect(value:IEffect):void
+    {
+        _effect = value;
+    }
+
+
+    //----------------------------------
+    //  effectTargetHost
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the effectTargetHost property.
+     */
+    private var _effectTargetHost:IEffectTargetHost;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#effectTargetHost
+     */
+    public function get effectTargetHost():IEffectTargetHost
+    {
+        return _effectTargetHost;
+    }
+
+    /**
+     *  @private
+     */
+    public function set effectTargetHost(value:IEffectTargetHost):void
+    {
+        _effectTargetHost = value;
+    }
+
+    //----------------------------------
+    //  hideFocusRing
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the hideFocusRing property.
+     */
+    private var _hideFocusRing:Boolean;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#hideFocusRing
+     */
+    public function get hideFocusRing():Boolean
+    {
+        return _hideFocusRing;
+    }
+
+    /**
+     *  @private
+     */
+    public function set hideFocusRing(value:Boolean):void
+    {
+        _hideFocusRing = value;
+    }
+
+    //----------------------------------
+    //  playheadTime
+    //----------------------------------
+
+    /**
+     *  @copy mx.effects.IEffectInstance#playheadTime
+     */
+    public function get playheadTime():Number
+    {
+        return Math.max(playCount - 1, 0) * duration +
+               Math.max(playCount - 2, 0) * repeatDelay +
+               (playReversed ? 0 : startDelay);
+    }
+
+    //----------------------------------
+    //  playReversed
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the playReversed property.
+     */
+    private var _playReversed:Boolean;
+
+    /**
+     *  @private
+     *  Used internally to specify whether or not this effect
+     *  should be played in reverse.
+     *  Set this value before you play the effect.
+     */
+    mx_internal function get playReversed():Boolean
+    {
+        return _playReversed;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function set playReversed(value:Boolean):void
+    {
+        _playReversed = value;
+    }
+
+    //----------------------------------
+    //  propertyChanges
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the propertyChanges property.
+     */
+    private var _propertyChanges:PropertyChanges;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#propertyChanges
+     */
+    public function get propertyChanges():PropertyChanges
+    {
+        return _propertyChanges;
+    }
+
+    /**
+     *  @private
+     */
+    public function set propertyChanges(value:PropertyChanges):void
+    {
+        _propertyChanges = value;
+    }
+
+    //----------------------------------
+    //  repeatCount
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the repeatCount property.
+     */
+    private var _repeatCount:int = 0;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#repeatCount
+     */
+    public function get repeatCount():int
+    {
+        return _repeatCount;
+    }
+
+    /**
+     *  @private
+     */
+    public function set repeatCount(value:int):void
+    {
+        _repeatCount = value;
+    }
+
+    //----------------------------------
+    //  repeatDelay
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the repeatDelay property.
+     */
+    private var _repeatDelay:int = 0;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#repeatDelay
+     */
+    public function get repeatDelay():int
+    {
+        return _repeatDelay;
+    }
+
+    /**
+     *  @private
+     */
+    public function set repeatDelay(value:int):void
+    {
+        _repeatDelay = value;
+    }
+
+    //----------------------------------
+    //  startDelay
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the startDelay property.
+     */
+    private var _startDelay:int = 0;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#startDelay
+     */
+    public function get startDelay():int
+    {
+        return _startDelay;
+    }
+
+    /**
+     *  @private
+     */
+    public function set startDelay(value:int):void
+    {
+        _startDelay = value;
+    }
+
+    //----------------------------------
+    //  suspendBackgroundProcessing
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the suspendBackgroundProcessing property.
+     */
+    private var _suspendBackgroundProcessing:Boolean = false;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#suspendBackgroundProcessing
+     */
+    public function get suspendBackgroundProcessing():Boolean
+    {
+        return _suspendBackgroundProcessing;
+    }
+
+    /**
+     *  @private
+     */
+    public function set suspendBackgroundProcessing(value:Boolean):void
+    {
+        _suspendBackgroundProcessing = value;
+    }
+
+    //----------------------------------
+    //  target
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the target property.
+     */
+    private var _target:Object;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#target
+     */
+    public function get target():Object
+    {
+        return _target;
+    }
+
+    /**
+     *  @private
+     */
+    public function set target(value:Object):void
+    {
+        _target = value;
+    }
+
+    //----------------------------------
+    //  triggerEvent
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the triggerEvent property.
+     */
+    private var _triggerEvent:Event;
+
+    /**
+     *  @copy mx.effects.IEffectInstance#triggerEvent
+     */
+    public function get triggerEvent():Event
+    {
+        return _triggerEvent;
+    }
+
+    /**
+     *  @private
+     */
+    public function set triggerEvent(value:Event):void
+    {
+        _triggerEvent = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @copy mx.effects.IEffectInstance#initEffect()
+     */
+    public function initEffect(event:Event):void
+    {
+        triggerEvent = event;
+
+        switch (event.type)
+        {
+            case "resizeStart":
+            case "resizeEnd":
+            {
+                if (!mx_internal::durationExplicitlySet)
+                    duration = 250;
+                break;
+            }
+
+            case FlexEvent.HIDE:
+            {
+                target.setVisible(true, true);
+                hideOnEffectEnd = true;
+                // If somebody else shows us, then cancel the hide when the effect ends
+                target.addEventListener(FlexEvent.SHOW, eventHandler);
+                break;
+            }
+        }
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#startEffect()
+     */
+    public function startEffect():void
+    {
+        EffectManager.effectStarted(this);
+
+        if (target is UIComponent)
+        {
+            UIComponent(target).effectStarted(this);
+        }
+
+        if (startDelay > 0 && !playReversed)
+        {
+            delayTimer = new Timer(startDelay, 1);
+            delayStartTime = getTimer();
+            delayTimer.addEventListener(TimerEvent.TIMER, delayTimerHandler);
+            delayTimer.start();
+        }
+        else
+        {
+            play();
+        }
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#play()
+     */
+    public function play():void
+    {
+        playCount++;
+
+        dispatchEvent(new EffectEvent(EffectEvent.EFFECT_START, false, false, this));
+
+        if (target)
+		{
+            target.dispatchEvent(new EffectEvent(EffectEvent.EFFECT_START, false, false, this));
+		}
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#pause()
+     */
+    public function pause():void
+    {
+        if (delayTimer && delayTimer.running && !isNaN(delayStartTime))
+        {
+            delayTimer.stop(); // Pause the timer
+            delayElapsedTime = getTimer() - delayStartTime;
+        }
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#stop()
+     */
+    public function stop():void
+    {
+        if (delayTimer)
+            delayTimer.reset();
+        stopRepeat = true;
+        finishEffect();
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#resume()
+     */
+    public function resume():void
+    {
+        if (delayTimer && !delayTimer.running && !isNaN(delayElapsedTime))
+        {
+            delayTimer.delay = !playReversed ? delayTimer.delay - delayElapsedTime : delayElapsedTime;
+            delayTimer.start();
+        }
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#reverse()
+     */
+    public function reverse():void
+    {
+        if (repeatCount > 0)
+            playCount = repeatCount - playCount + 1;
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#end()
+     */
+    public function end():void
+    {
+        if (delayTimer)
+            delayTimer.reset();
+        stopRepeat = true;
+        finishEffect();
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#finishEffect()
+     */
+    public function finishEffect():void
+    {
+        playCount = 0;
+
+        dispatchEvent(new EffectEvent(EffectEvent.EFFECT_END,
+                                     false, false, this));
+
+        if (target)
+        {
+            target.dispatchEvent(new EffectEvent(EffectEvent.EFFECT_END,
+                                                 false, false, this));
+        }
+
+        if (target is UIComponent)
+        {
+            UIComponent(target).effectFinished(this);
+        }
+
+        EffectManager.effectFinished(this);
+    }
+
+    /**
+     *  @copy mx.effects.IEffectInstance#finishRepeat()
+     */
+    public function finishRepeat():void
+    {
+        if (!stopRepeat && playCount != 0 &&
+            (playCount < repeatCount || repeatCount == 0))
+        {
+            if (repeatDelay > 0)
+            {
+                delayTimer = new Timer(repeatDelay, 1);
+                delayStartTime = getTimer();
+                delayTimer.addEventListener(TimerEvent.TIMER,
+                                            delayTimerHandler);
+                delayTimer.start();
+            }
+            else
+            {
+                play();
+            }
+        }
+        else
+        {
+            finishEffect();
+        }
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function playWithNoDuration():void
+    {
+        duration = 0;
+        repeatCount = 1;
+        repeatDelay = 0;
+        startDelay = 0;
+
+        startEffect();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  If someone explicitly sets the visibility of the target object
+     *  to true, clear the flag that is remembering to hide the
+     *  target when this effect ends.
+     */
+    mx_internal function eventHandler(event:Event):void
+    {
+        if (event.type == FlexEvent.SHOW && hideOnEffectEnd == true)
+        {
+            hideOnEffectEnd = false;
+            event.target.removeEventListener(FlexEvent.SHOW, eventHandler);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function delayTimerHandler(event:TimerEvent):void
+    {
+        delayTimer.reset();
+        delayStartTime = NaN;
+        delayElapsedTime = NaN;
+        play();
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/effects/EffectInstance.as
+++ frameworks/projects/framework/src/mx/effects/EffectInstance.as
@@ -113,10 +113,9 @@
     mx_internal var parentCompositeEffectInstance:EffectInstance;

     /**
-     *  @private
      *  Number of times that the instance has been played.
      */
-    private var playCount:int = 0;
+    protected var playCount:int = 0;

     /**
      *  @private
@@ -298,8 +297,7 @@
      */
     public function get playheadTime():Number
     {
-        return Math.max(playCount - 1, 0) * duration +
-               Math.max(playCount - 2, 0) * repeatDelay +
+        return Math.max(playCount - 1, 0) * (duration + repeatDelay) +
                (playReversed ? 0 : startDelay);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 16590
Author:   egeorgie@adobe.com
Date:     2010-06-17T18:17:44.460154Z

Log Message:
-----------
Additional perf instrumentation added to the framework

- Instrumented bootstrapping, createChildren, validateSize, validateDisplayList
- updated build.xml for the flex & flash-integration projects with reference to framework-config.xml as these reference instrumented code from the framework.

QE notes: None
Doc notes: None
Bugs: N/A
Reviewer: Glenn
Tests run: ant main, doc, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/PerfLib/src/perflib/impl/PerfReporter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flex/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/build.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flex/build.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -61,11 +61,6 @@
 import mx.events.SandboxMouseEvent;
 import mx.preloaders.Preloader;
 import mx.utils.LoaderUtil;
-
-CONFIG::performanceInstrumentation
-{
-import mx.utils.PerfUtil;
-}

 // NOTE: Minimize the non-Flash classes you import here.
 // Any dependencies of SystemManager have to load in frame 1,
@@ -226,7 +221,9 @@
     {
         CONFIG::performanceInstrumentation
         {
-            PerfUtil.getInstance().startSampling("Application Startup", true /*absoluteTime*/);
+            var perfUtil:mx.utils.PerfUtil = mx.utils.PerfUtil.getInstance();
+            perfUtil.startSampling("Application Startup", true /*absoluteTime*/);
+            perfUtil.markTime("SystemManager c-tor");
         }

         super();
@@ -274,7 +271,18 @@

         if (currentFrame + 1 <= framesLoaded)
         {
+            CONFIG::performanceInstrumentation
+            {
+                var perfUtil:mx.utils.PerfUtil = mx.utils.PerfUtil.getInstance();
+                perfUtil.markTime("SystemManager.nextFrame().start");
+            }
+
             nextFrame();
+
+            CONFIG::performanceInstrumentation
+            {
+                perfUtil.markTime("SystemManager.nextFrame().end");
+            }
         }
         else
         {
@@ -2388,6 +2396,12 @@
      */
     private function initHandler(event:Event):void
     {
+        CONFIG::performanceInstrumentation
+        {
+            var perfUtil:mx.utils.PerfUtil = mx.utils.PerfUtil.getInstance();
+            perfUtil.markTime("SystemManager.initHandler().start");
+        }
+
         // we can still be the top level root if we can access our
         // parent and get a positive response to the query or
         // or there is not a listener for the new application event
@@ -2442,7 +2456,11 @@
         */

         initialize();
-
+
+        CONFIG::performanceInstrumentation
+        {
+            perfUtil.markTime("SystemManager.initHandler().end");
+        }
     }

     private function docFrameListener(event:Event):void
@@ -2523,7 +2541,9 @@

         CONFIG::performanceInstrumentation
         {
-            PerfUtil.getInstance().finishSampling("Application Startup");
+            var perfUtil:mx.utils.PerfUtil = mx.utils.PerfUtil.getInstance();
+            perfUtil.markTime("APPLICATION_COMPLETE");
+            perfUtil.finishSampling("Application Startup");
         }

         // Dispatch the applicationComplete event from the Application
@@ -2579,6 +2599,12 @@
         if (document)
             return;

+        CONFIG::performanceInstrumentation
+        {
+            var perfUtil:mx.utils.PerfUtil = mx.utils.PerfUtil.getInstance();
+            perfUtil.markTime("SystemManager.kickOff().start");
+        }
+
         if (!isTopLevel())
             SystemManagerGlobals.topLevelSystemManagers[0].
                 // dispatch a FocusEvent so we can pass ourselves along
@@ -2645,9 +2671,19 @@
             var n:int = mixinList.length;
             for (var i:int = 0; i < n; ++i)
             {
+                CONFIG::performanceInstrumentation
+                {
+                    var token:int = perfUtil.markStart();
+                }
+
                 // trace("initializing mixin " + mixinList[i]);
                 var c:Class = Class(getDefinitionByName(mixinList[i]));
                 c["init"](this);
+
+                CONFIG::performanceInstrumentation
+                {
+                    perfUtil.markEnd(mixinList[i], token);
+                }
             }
         }

@@ -2662,6 +2698,12 @@
         if (c)
         {
             registerImplementation("mx.managers::IMarshalSystemManager", new c(this));
+        }
+
+        CONFIG::performanceInstrumentation
+        {
+            // Finish here, since initializeTopLevelWidnow is instrumented separately???
+            perfUtil.markTime("SystemManager.kickOff().end");
         }

         initializeTopLevelWindow(null);


Transferred from the Adobe Open Source Subversion Repository

Revision: 3594
Author:   pfarland@adobe.com
Date:     2008-10-13T18:00:52.025975Z

Log Message:
-----------
Initial check-in for Advanced CSS selector support. Note that since direct AST generation for advanced styles (i.e. equivalent code of StyleModule.vm, StyleDef.vm, ClassDefLib.vm) is not yet implemented and as such advanced selector support is only enabled when the compiler -keep=true is enabled at this time. Direct AST generation to follow.

This change adds support for descendant type selectors (e.g. Panel VBox Button), non-global class selectors (e.g. Button.special), id selectors (e.g. Button#button14), and combinations of these types of selectors (e.e. Panel.special VBox.box12 Button.cancel). Pseudo selector awareness is included but it is not yet wired up to the runtime states mechanism as an efficient method of reacting to state changes is still being developed. Combinator conditional global selectors will be supported soon (i.e. the scenario of combining both an id and class selector at the top level, e.g. .foo#foo12, this requires a more expensive search of global class selectors).

This change juggles both the introduction of advanced selector support while retaining legacy styles APIs. The major difference with advanced styles is that multiple styles need to be considered for a type. This requires new data structures to keep track of selectors by subject. Performance analysis will be conducted to ensure these new data structures do not add unacceptable overhead to the style subsystem.

For the compiler this change consolidates styles processing in the base StyleModule class and then MXML-specific overrides (i.e. inline <Styles> nodes and SWC defaults.css) are in the StylesContainer.java class, which now extends StyleModule. The existing structure for legacy simple style codegen was retained and advanced style codegen wedged in.

QA: Yes
Doc: Not yet
Checkintests: Pass 100%
mxunit styles tests: Pass 100% (note that styles modules include tests you need to manually compile the .css files to swf and they're currently cleaned out each time a build runs... QE please correct this).
mustella styles tests: QE's select list of components testsuites pass 100%. Any failures in the full suite will be addressed in the next-checkin.
Reviewers: Glenn (framework), Paul (compiler)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/CssCompiler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/MxmlDocument.java</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager3.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleSelector.java</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleProperty.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleDeclaration.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelectorKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSConditionKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/FontFaceRule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleSheet.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleDocumentHandler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleProperty.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/Rule.java</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleCondition.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleParser.java</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -1857,6 +1857,9 @@
 		Singleton.registerClass("mx.styles::IStyleManager2",
 			Class(getDefinitionByName("mx.styles::StyleManagerImpl")));

+        Singleton.registerClass("mx.styles::IStyleManager3",
+            Class(getDefinitionByName("mx.styles::StyleManagerImpl")));
+

 		// The FlashVars of the SWF's HTML wrapper,
 		// or the query parameters of the SWF URL,
@@ -5466,3 +5469,4 @@

 }

+