Transferred from the Adobe Open Source Subversion Repository

Revision: 6295
Author:   egreenfi@adobe.com
Date:     2009-04-27T19:25:10.102526Z

Log Message:
-----------
- Added a workaround for 3D bugs in 10.0 release of flash player when multiplying vectors against 3D matrices.
- integrated offset animation from Animate3D class into AnimateTransform class. AnimateTRansform can now correctly capture and animate values for target.offsets as well as target.
- integrated projection matrix management from Animate3D into AnimateTransform and subclasses.
- added affectsLayout flag to subclasses of AnimateTRansform.  THeir parameters can now optionally be used to animate the offsets of the target.
- setup correct defaults on all 3D subclasses of AnimateTransform, so they don't affect layout and do modify the local projection matrix by default.

Reviewer: Chet
QA: Yes!
Doc: Yes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Move3D.as
+++ frameworks/projects/spark/src/spark/effects/Move3D.as
@@ -40,6 +40,8 @@
     public function AnimateTransformMove3D(target:Object=null)
     {
         super(target);
+        affectLayout = false;
+        applyLocalProjection = true;
         instanceClass = AnimateTransformInstance;
     }

@@ -94,7 +96,14 @@
      */
    override protected function initInstance(instance:IEffectInstance):void
     {
-        addMotionPath("translationZ", zFrom, zTo, zBy);
+        if(affectLayout)
+        {
+           addMotionPath("translationZ", zFrom, zTo, zBy);
+        }
+        else
+        {
+            addPostLayoutMotionPath("postLayoutTranslationX", xFrom, xTo, xBy);
+        }
         super.initInstance(instance);
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12469
Author:   jimurphy@adobe.com
Date:     2009-12-03T22:04:16.560316Z

Log Message:
-----------
fix offsets for FB.  Convert line ending from lf to crlf in svn for the proects directory only.  When checking project files in, be sure to save you files this way.  Another update to make sure happens is set the svn properties svn:eol-style = native and svn:mime-type = text/plain (these have been updated on theses files as well)

QE notes: make sure the proper class is selected
Doc notes: no
Bugs: http://bugs.adobe.com/jira/browse/SDK-24498
Reviewer:
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
133 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/Rotate.as
+++ frameworks/projects/spark/src/spark/effects/Rotate.as
@@ -222,4 +222,4 @@
         super.initInstance(instance);
     }
 }
-}+}


Do not define WINEPREFIX when using winepath.

This is why the machine seemed to go wrong: we changed WINEPREFIX even
before making it usable.

	* build-aux/wine-ld-library-path.as (create_wine_directory): Take
	the directory as argument.
	(WINEPREFIX): Rename as...
	(wineprefix): this.
	Do not export it, it does not make sense.

--- build-aux/wine-ld-library-path.as
+++ build-aux/wine-ld-library-path.as
@@ -72,18 +72,21 @@
   done
 }

+# create_wine_directory DIR
+# -------------------------
 create_wine_directory ()
 {
-  verbose "creating $WINEPREFIX"
-  rm -rf "$WINEPREFIX"
-  mkdir -p "$WINEPREFIX"
+  local dir=$1
+  verbose "creating $dir"
+  rm -rf "$dir"
+  mkdir -p "$dir"
   local winehome=$HOME/.wine
-  cp -a $winehome/dosdevices $winehome/*.reg $winehome/config "$WINEPREFIX"
+  cp -a $winehome/dosdevices $winehome/*.reg $winehome/config "$dir"
   # Symlink everything from the .wine directory just in case.
   for f in $winehome/*
   do
-    if ! test -a "$WINEPREFIX/$bf"; then
-      ln -s $f "$WINEPREFIX"
+    if ! test -a "$dir/$bf"; then
+      ln -s $f "$dir"
     fi
   done

@@ -104,7 +107,7 @@
   export windirs
   perl -pi                                                              \
     -e 'BEGIN { $dirs=$ENV{windirs}; $dirs =~ s/\\/\\\\/g; }'           \
-    -e 's/"Path"="(.*;.*)"/"Path"="\1$dirs"/' "$WINEPREFIX/user.reg"
+    -e 's/"Path"="(.*;.*)"/"Path"="\1$dirs"/' "$dir/user.reg"
 }

 # List of directories to add to the Path.
@@ -120,12 +123,12 @@
 # We used to check that we are not running Cygwin underneath.  Does
 # not seem to make any sense here, and MN does not remember why he
 # checked that.  So this check is removed.
-export WINEPREFIX=$where/wine
-if $force || test ! -d "$WINEPREFIX"; then
-  create_wine_directory
+wineprefix=$where/wine
+if $force || test ! -d "$wineprefix"; then
+  create_wine_directory "$wineprefix"
 fi
-verbose "WINEPREFIX='$WINEPREFIX'"
-echo "WINEPREFIX='$WINEPREFIX'"
+verbose "WINEPREFIX='$wineprefix'"
+echo "WINEPREFIX='$wineprefix'"

 exit 0
 ]


Seem to be switching bitrates without major artifacts.

May be seeing some doubled frames.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -2388,19 +2388,19 @@
 				// Skip until we find our I-frame.
 				if(scanningForIFrame && !isIFrame)
 				{
-					// Always pass AVCC info.
-					if(!vTag.isAVCC)
+					if(vTag.isAVCC == false)
 					{
 						trace("   - SKIPPING non-I-FRAME");
-						return true;
+						return true;
 					}
 					else
 					{
+						// Always pass AVCC info.
 						trace("    - preserving AVCC during I-frame scan");
 					}
 				}

-				if(scanningForIFrame && isIFrame && !vTag.isAVCC)
+				if(scanningForIFrame && isIFrame)
 				{
 					trace("   + GOT I-FRAME");
 					scanningForIFrame = false;
@@ -2419,8 +2419,11 @@
 						if(!potentialFilterTag)
 							continue;

+						if(potentialFilterTag.isAVCC)
+							continue;
+
 						// Stop scanning once we find tag before our tag.
-						if(pendingTags[i].timestamp < vTag.timestamp - 2)
+						if(pendingTags[i].timestamp <= vTag.timestamp)
 							break;

 						// Remove this tag, update i.


replacing undefined with null in getRecord() result

--- WeaveJS/src/weavejs/data/ColumnUtils.as
+++ WeaveJS/src/weavejs/data/ColumnUtils.as
@@ -517,7 +517,12 @@
 			var dataTypeClass:Class = JS.asClass(dataType || Array);
 			var column:IAttributeColumn = format as IAttributeColumn;
 			if (column)
-				return column.getValueFromKey(key, dataTypeClass);
+			{
+				var value:* = column.getValueFromKey(key, dataTypeClass);
+				if (value === undefined)
+					value = null;
+				return value;
+			}

 			var record:Object = format is Array ? [] : {};
 			for (var prop:String in format)


Made the callback persist the "Conference" object itself

--- core/src/main/flex/org/dukecon/services/ConferenceService.as
+++ core/src/main/flex/org/dukecon/services/ConferenceService.as
@@ -94,11 +94,7 @@
             for each(var event:Event in conference.events) {
                 em.save(event);
             }
-            var res:* = em.load(Audience, 1);
-            trace(res);
-            res = em.load(Event, 509632);
-            trace(res);
-            //em.save(conference);
+            em.save(conference);
         }
     }


- 删除了 trace

- 删除了 trace

--- age/src/age/renderers/ObjectRenderer.as
+++ age/src/age/renderers/ObjectRenderer.as
@@ -346,7 +346,6 @@
 		[Inline]
 		private function updateStaticRenderers(avatarInfo:AvatarInfo):void
 		{
-			trace("updateStaticRenderers");
 			// 鼠标（主要是大小）
 			mouseResponder.info = avatarInfo;
 			// 名字


Ajout de la validation par colonnes

Ajout de la validation par colonnes

--- tp3.as
+++ tp3.as
@@ -149,7 +149,7 @@
 /*
     ALGO:
         1) Lignes :
-            1.1) Verifier que le nombre est entre 1 et 9
+            1.1) Verifier que le chiffre est entre 1 et 9
             1.2) Vérifier les autres chiffres pour voir s'il y en a un autre identique. Aller de la manière suivante : 1->2, 1->3... 2->3, 7->8, 7->9, 8->9
 */

@@ -175,13 +175,13 @@
   call  printf
   nop

-  mov   0, %l2                  ! Compteur du nombre courant sur la ligne
-  mov   1, %l3                  ! Compteur du nombre a tester avec le nombre courant sur la ligne
-
-  ba    ValiderLignes04         ! Lancer la validation de la ligne
-  nop
-
-ValiderLignes03:
+  mov   0, %l2                  ! Compteur du chiffre courant sur la ligne
+  mov   1, %l3                  ! Compteur du chiffre a tester avec le chiffre courant sur la ligne
+
+  ba    ValiderLignes06         ! Lancer la validation de la ligne
+  nop
+
+ValiderLignes04:
   inc   %l1                     ! Ligne suivante
   add   %l0, 9, %l0             ! Déplacer le pointeur du Sudoku sur la prochaine ligne

@@ -193,8 +193,8 @@
   nop

-ValiderLignes04:
-  ldub  [%l0+%l2], %l4          ! Charger le nombre courant en mémoire
+ValiderLignes06:
+  ldub  [%l0+%l2], %l4          ! Charger le chiffre courant en mémoire

   cmp   %l4, 0                  ! Le chiffre doit être entre 1 et 9
   ble   LigneInvalide
@@ -204,34 +204,34 @@
   bge   LigneInvalide
   nop

-  ba    ValiderLignes06         ! Lancer la validation du nombre courant sur la ligne
-  nop
-
-
-ValiderLignes05:
-  inc   %l2                     ! Passer au nombre suivant pour la validation
-  add   %l2, 1, %l3             ! Le nombre a tester est toujours le nombre après le nombre courant (au début de la validation du nombre courant)
-
-  cmp   %l2, 9                  ! Continuer a valider la ligne si nombre courant n'est pas le dernier
-  bl    ValiderLignes04
+  ba    ValiderLignes10         ! Lancer la validation du chiffre courant sur la ligne
+  nop
+
+
+ValiderLignes08:
+  inc   %l2                     ! Passer au chiffre suivant pour la validation
+  add   %l2, 1, %l3             ! Le chiffre a tester est toujours le chiffre après le chiffre courant (au début de la validation du chiffre courant)
+
+  cmp   %l2, 9                  ! Continuer a valider la ligne si chiffre courant n'est pas le dernier
+  bl    ValiderLignes06
   nop

   set   resvalide, %o0      ! Affichage d'un message disant que la ligne est valide
   call  printf
   nop

-  ba    ValiderLignes03
-  nop
-
-
-ValiderLignes06:
+  ba    ValiderLignes04
+  nop
+
+
+ValiderLignes10:
   cmp   %l2, 8
-  bge   ValiderLignes05
+  bge   ValiderLignes08
   nop

-  ldub  [%l0+%l3], %l5          ! Charger le nombre a tester dans le registre l5
-
-  !set   validligne3, %o0        ! Debug INFOS
+  ldub  [%l0+%l3], %l5          ! Charger le chiffre a tester dans le registre l5
+
+  !set   validation1, %o0        ! Debug INFOS
   !mov   %l2, %o1
   !mov   %l4, %o2
   !mov   %l3, %o3
@@ -239,29 +239,142 @@
   !call  printf
   !nop

-  cmp   %l4, %l5                ! Comparer le nombre courant avec le nombre a tester pour s'assurer qu'ils ne sont pas identique
+  cmp   %l4, %l5                ! Comparer le chiffre courant avec le chiffre a tester pour s'assurer qu'ils ne sont pas identique
   be    LigneInvalide
   nop

-  inc   %l3                     ! Tester le nombre suivant
+  inc   %l3                     ! Tester le chiffre suivant

   cmp   %l3, 9                  ! S'il nous reste des chiffre a tester, on les tests
-  bl    ValiderLignes06
-  nop
-
-  ba    ValiderLignes05
+  bl    ValiderLignes10
+  nop
+
+  ba    ValiderLignes08
   nop

 LigneInvalide:
-  set   redinvalide, %o0      ! Affichage d'un message disant que la ligne est invalide
+  set   redinvalide, %o0        ! Affichage d'un message disant que la ligne est invalide
   call  printf
   nop

   call  exit                    ! On quitte le programme
   nop

+/*
+    Partie 4 : Validation Colonne par colonne du Sudoku
+    ---------------------------------------------------
+*/
+
 ValiderColonnes00:
+  set   vecteur, %l0        ! Pointeur sur la colonnes courante
+  mov   0, %l1              ! %l1 va servir pour savoir on est rendu sur quelle ligne
+
+  /* start Aff */
+  set   validcolon1, %o0
+  call  printf
+  nop
+  /* end Aff */
+
+  ba    ValiderColonnes02     ! Lancer la validation des colonnes
+  nop
+
+ValiderColonnes02:
+  set   validcolon2, %o0        ! Afficher qu'on valider la colonne courante
+  mov   %l1, %o1
+  call  printf
+  nop
+
+  mov   0, %l2                    ! Compteur du chiffre courant sur la colonne
+  mov   1, %l3                    ! Compteur du chiffre a tester avec le chiffre courant sur la colonne
+
+  ba    ValiderColonnes06         ! Lancer la validation de la colonne
+  nop
+
+ValiderColonnes04:
+  inc   %l1                       ! colonne suivante
+
+  set   vecteur, %l0              ! Déplacer le pointeur du Sudoku sur la prochaine colonne
+  add   %l0, %l1, %l0
+
+  cmp   %l1, 9                    ! Si on a fait le tour du Sudoku, on passe au mode de validation suivant
+  be    FinProgramme
+  nop
+
+  ba    ValiderColonnes02
+  nop
+
+
+ValiderColonnes06:
+  umul  %l2, 9, %l6
+  ldub  [%l0+%l6], %l4          ! Charger le chiffre courant en mémoire
+
+  cmp   %l4, 0                  ! Le chiffre doit être entre 1 et 9
+  ble   LigneInvalide
+  nop
+
+  cmp   %l4, 10
+  bge   LigneInvalide
+  nop
+
+  ba    ValiderColonnes10         ! Lancer la validation du chiffre courant sur la colonne
+  nop
+
+
+ValiderColonnes08:
+  inc   %l2                     ! Passer au chiffre suivant pour la validation
+  add   %l2, 1, %l3             ! Le chiffre a tester est toujours le chiffre après le chiffre courant (au début de la validation du chiffre courant)
+
+  cmp   %l2, 9                  ! Continuer a valider la colonne si chiffre courant n'est pas le dernier
+  bl    ValiderColonnes06
+  nop
+
+  set   resvalide, %o0      ! Affichage d'un message disant que la colonne est valide
+  call  printf
+  nop
+
+  ba    ValiderColonnes04
+  nop
+
+
+ValiderColonnes10:
+  cmp   %l2, 8
+  bge   ValiderColonnes08
+  nop
+
+  umul  %l3, 9, %l6
+  ldub  [%l0+%l6], %l5          ! Charger le chiffre a tester dans le registre l5
+
+  !set   validation1, %o0        ! Debug INFOS
+  !mov   %l2, %o1
+  !mov   %l4, %o2
+  !mov   %l3, %o3
+  !mov   %l5, %o4
+  !call  printf
+  !nop
+
+  cmp   %l4, %l5                ! Comparer le chiffre courant avec le chiffre a tester pour s'assurer qu'ils ne sont pas identique
+  be    LigneInvalide
+  nop
+
+  inc   %l3                     ! Tester le chiffre suivant
+
+  cmp   %l3, 9                  ! S'il nous reste des chiffre a tester, on les tests
+  bl    ValiderColonnes10
+  nop
+
+  ba    ValiderColonnes08
+  nop
+
+/*
+    Partie 5 : Validation par bloc
+    ---------------------------------------------------
+*/
+!TODO
+
+
+
+FinProgramme:
   call  exit
   nop

@@ -279,7 +392,9 @@
   lecturecons:       .asciz  "%d"
   validligne1:       .asciz  "Validation des lignes du Sudoku\n"
   validligne2:       .asciz  " - Validation de la ligne #%d... "
-  validligne3:       .asciz  "Validation entre %d[%d] et %d[%d]...\n"
+  validation1:       .asciz  "Validation entre %d[%d] et %d[%d]...\n"
+  validcolon1:       .asciz  "Validation des colonnes du Sudoku\n"
+  validcolon2:       .asciz  " - Validation de la colonne #%d... "
   resvalide:         .asciz  "Valide !\n"
   redinvalide:       .asciz  "Invalide !\n"

@@ -293,6 +408,5 @@
 .section ".data"

   lecture:  .byte   0   ! Espace pour la lecture du chiffre en entrée
-  vecteur:  .byte   8,3,2,5,9,1,6,7,4,4,9,6,3,8,7,2,5,1,5,7,1,2,6,4,9,8,3,1,8,5,7,4,6,3,9,2,2,6,7,9,5,3,4,8,1,9,4,3,8,1,2,7,6,5,7,1,4,6,3,8,5,2,9,3,2,9,1,7,5,8,4,6,6,5,8,4,2,9,1,3,7,7
-!3
-
+  vecteur:  .byte   8,3,2,5,9,1,6,7,4,4,9,6,3,8,7,2,5,1,5,7,1,2,6,4,9,8,3,1,8,5,7,4,6,3,9,2,2,6,7,9,5,3,4,1,8,9,4,3,8,1,2,7,6,5,7,1,4,6,3,8,5,2,9,3,2,9,1,7,5,8,4,6,6,5,8,4,2,9,1,3,7
+!3


Transferred from the Adobe Open Source Subversion Repository

Revision: 19266
Author:   hmuller@adobe.com
Date:     2010-12-10T17:32:59.920871Z

Log Message:
-----------
Added support for the liveDragging style to ScrollerBase in the same way it was added in SliderBase. In addition to the new style, this adds a protected pendingValue property to ScrollerBase.

Added a Scroller liveScrolling style that sets the liveDragging style on the Scroller's scrollbars.

QE notes: This is a new Scroller feature to be tested.
Doc notes:
Bugs: SDK-28039
Reviewer: Carol
Tests run: checkin
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>

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

--- frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -220,7 +220,7 @@
             }

             // calculate new thumb position.
-            thumbPosTrackX = (value - minimum) * ((trackSize - thumbSize) / range);
+            thumbPosTrackX = (pendingValue - minimum) * ((trackSize - thumbSize) / range);
         }

         if (getStyle("fixedThumbSize") === false)
@@ -354,7 +354,7 @@
         {
             // Want to use ScrollBarBase's changeValueByStep() implementation to get the same
             // animated behavior for scrollbars with and without viewports.
-            // For now, just change pageSize temporarily and call the superclass
+            // For now, just change stepSize temporarily and call the superclass
             // implementation.
             oldStepSize = stepSize;
             stepSize = Math.abs(viewport.getHorizontalScrollPositionDelta(


VectorUtils.getItems() now works without specifying a list of keys.

--- WeaveData/src/weave/utils/VectorUtils.as
+++ WeaveData/src/weave/utils/VectorUtils.as
@@ -461,26 +461,48 @@
 		 * @param output Optionally specifies where to store the resulting items.
 		 * @return An Object (or Array) containing the properties/items/attributes specified by keysOrIndices.
 		 */
-		public static function getItems(object:*, keys:Array, output:* = null):*
+		public static function getItems(object:*, keys:Array = null, output:* = null):*
 		{
 			if (!output)
 				output = object is Array ? [] : {};
 			if (!object)
 				return output;
-			for (var keyIndex:* in keys)
-			{
-				var keyValue:* = keys[keyIndex];
-
-				var item:*;
-				if (object is XML_Class)
-					item = String((object as XML_Class).attribute(keyValue));
-				else
-					item = object[keyValue];
-
-				if (output is Array)
-					output[keyIndex] = item;
-				else
-					output[keyValue] = item;
+
+			var keyIndex:*,
+				keyValue:*,
+				item:*;
+			if (keys)
+			{
+				for (keyIndex in keys)
+				{
+					keyValue = keys[keyIndex];
+
+					if (object is XML_Class)
+						item = String((object as XML_Class).attribute(keyValue));
+					else
+						item = object[keyValue];
+
+					if (output is Array)
+						output[keyIndex] = item;
+					else
+						output[keyValue] = item;
+				}
+			}
+			else
+			{
+				keyIndex = 0;
+				for each (keyValue in keys)
+				{
+					if (object is XML_Class)
+						item = String((object as XML_Class).attribute(keyValue));
+					else
+						item = object[keyValue];
+
+					if (output is Array)
+						output[keyIndex++] = item;
+					else
+						output[keyValue] = item;
+				}
 			}
 			return output;
 		}


- bugfix: the backgroundimageloader sometimes didn't return any content. In these cases, an exception was thrown when trying to access the image dimensions

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

--- src/reprise/ui/renderers/DefaultBackgroundRenderer.as
+++ src/reprise/ui/renderers/DefaultBackgroundRenderer.as
@@ -308,7 +308,8 @@
 			clearBackgroundImage();

 			if (!e.success || m_styles.backgroundImage == null ||
-				m_styles.backgroundImage == Background.IMAGE_NONE)
+				m_styles.backgroundImage == Background.IMAGE_NONE ||
+				!m_backgroundImageLoader.content())
 			{
 				return;
 			}


Fixed missing undo action for pasting a component.

--- Bin/Data/Scripts/Editor/EditorScene.as
+++ Bin/Data/Scripts/Editor/EditorScene.as
@@ -450,7 +450,11 @@

             newComponent.LoadXML(rootElem);
             newComponent.ApplyAttributes();
-            SetSceneModified();
+
+            // Create an undo action
+            CreateComponentAction action;
+            action.Define(newComponent);
+            group.actions.Push(action);
         }
         else if (mode == "node")
         {
@@ -459,7 +463,7 @@
             Node@ newNode = editorScene.CreateChild("", rootElem.GetBool("local") ? LOCAL : REPLICATED);
             newNode.LoadXML(rootElem);

-            // Create an undo action for the paste
+            // Create an undo action
             CreateNodeAction action;
             action.Define(newNode);
             group.actions.Push(action);


fixed indentations

fixed indentations

--- src/as3reflect/Type.as
+++ src/as3reflect/Type.as
@@ -264,38 +264,38 @@
 	public static function parseMembers(memberClass:Class, members:XMLList, declaringType:Type, isStatic:Boolean):Array {
 		var result:Array = [];
 		for each (var m:XML in members) {
-		var member:IMember = new memberClass(m.@name, Type.forName(m.@type), declaringType, isStatic);
-		parseMetaData(m.metadata, member);
-		result.push(member);
+			var member:IMember = new memberClass(m.@name, Type.forName(m.@type), declaringType, isStatic);
+			parseMetaData(m.metadata, member);
+			result.push(member);
 		}
 		return result;
 	}
 	private static function parseMethodsByModifier(type:Type, methodsXML:XMLList, isStatic:Boolean):Array {
 		var result:Array = [];
 		for each (var methodXML:XML in methodsXML) {
-		var params:Array = [];
-		for each(var paramXML:XML in methodXML.parameter) {
-			var paramType:Type = Type.forName(paramXML.@type);
-			var param:Parameter = new Parameter(paramXML.@index, paramType, paramXML.@optional);
-			params.push(param);
-		}
-		var method:Method = new Method(type, methodXML.@name, isStatic, params, Type.forName(methodXML.@returnType));
-		parseMetaData(methodXML.metadata, method);
-		result.push(method);
+			var params:Array = [];
+			for each(var paramXML:XML in methodXML.parameter) {
+				var paramType:Type = Type.forName(paramXML.@type);
+				var param:Parameter = new Parameter(paramXML.@index, paramType, paramXML.@optional);
+				params.push(param);
+			}
+			var method:Method = new Method(type, methodXML.@name, isStatic, params, Type.forName(methodXML.@returnType));
+			parseMetaData(methodXML.metadata, method);
+			result.push(method);
 		}
 		return result;
 	}
 	private static function parseAccessorsByModifier(type:Type, accessorsXML:XMLList, isStatic:Boolean):Array {
 		var result:Array = [];
 		for each (var accessorXML:XML in accessorsXML) {
-		var accessor:Accessor = new Accessor(
-						accessorXML.@name,
-						AccessorAccess.fromString(accessorXML.@access),
-						Type.forName(accessorXML.@type),
-						type,
-						isStatic);
-		parseMetaData(accessorXML.metadata, accessor);
-		result.push(accessor);
+			var accessor:Accessor = new Accessor(
+							accessorXML.@name,
+							AccessorAccess.fromString(accessorXML.@access),
+							Type.forName(accessorXML.@type),
+							type,
+							isStatic);
+			parseMetaData(accessorXML.metadata, accessor);
+			result.push(accessor);
 		}
 		return result;
 	}
@@ -304,11 +304,11 @@
 	 */
 	public static function parseMetaData(metaDataNodes:XMLList, metaData:IMetaDataContainer):void {
 		for each (var metaDataXML:XML in metaDataNodes) {
-		var metaDataArgs:Array = [];
-		for each (var metaDataArgNode:XML in metaDataXML.arg) {
-			metaDataArgs.push(new MetaDataArgument(metaDataArgNode.@key, metaDataArgNode.@value));
-		}
-		metaData.addMetaData(new MetaData(metaDataXML.@name, metaDataArgs));
+			var metaDataArgs:Array = [];
+			for each (var metaDataArgNode:XML in metaDataXML.arg) {
+				metaDataArgs.push(new MetaDataArgument(metaDataArgNode.@key, metaDataArgNode.@value));
+			}
+			metaData.addMetaData(new MetaData(metaDataXML.@name, metaDataArgs));
 		}
 	}
 }


Added test for calling addOnce() twice on the same listener.

--- tests/org/osflash/signals/SignalTest.as
+++ tests/org/osflash/signals/SignalTest.as
@@ -149,6 +149,16 @@
 			completed.add(func);
 			assertEquals(1, completed.numListeners);
 		}
+
+		[Test]
+		public function addOnce_same_listener_twice_should_only_add_it_once():void
+		{
+			var func:Function = newEmptyHandler();
+			completed.addOnce(func);
+			completed.addOnce(func);
+			assertEquals(1, completed.numListeners);
+		}
+
 		//////
 		[Test]
 		public function dispatch_non_IEvent_without_error():void


Transferred from the Adobe Open Source Subversion Repository

Revision: 4585
Author:   gosmith@adobe.com
Date:     2009-01-19T23:53:01.170744Z

Log Message:
-----------
AccImpl now implements accSelect(). Although the implementation doesn't do anything, its existence is enough to avoid having the Player report an IAccessible "member not found" error when calling accSelect() on a child item.

QE Notes: None
Doc Notes: None
Bugs: SDK-16654
Reviewer: Jason

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as

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

--- frameworks/projects/framework/src/mx/accessibility/AccImpl.as
+++ frameworks/projects/framework/src/mx/accessibility/AccImpl.as
@@ -279,6 +279,18 @@
 		return [];
 	}

+	/**
+	 *  @private
+	 *  IAccessible method for giving focus to a child item in the component
+	 *  (but not to the component itself; accSelect() is never called
+	 *  with a childID of 0).
+	 *  Even though this method does nothing, without it the Player
+	 *  causes an IAccessible "Member not found" error.
+	 */
+	override public function accSelect(selFlag:uint, childID:uint):void
+	{
+	}
+
 	//--------------------------------------------------------------------------
 	//
 	//  Methods


Transferred from the Adobe Open Source Subversion Repository

Revision: 17244
Author:   egeorgie@adobe.com
Date:     2010-08-09T23:24:34.412164Z

Log Message:
-----------
Add SplashScreen preloader class, compiler preloader tweaks

- new spark.preloaders.SplashScreen preloader class
- new Application attributes
  -- splashScreenImage (should be @Embed or other class type)
  -- splashScreenMinimumDisplayTime
  -- splashScreenScaleMode
- new compiler option "preloader" to specify the default value of the preloader.
- changes to the compiler to handle "@Embed" syntax at the root level while generating the SystemManager's info() object.

QE notes: Can start feature testing
Doc notes: None
Bugs: N/A
Reviewer: Glenn, Paul
Tests run: cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/mxml/builder/DocumentBuilder.java</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/preloaders</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreen.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -24,6 +24,7 @@
 import flash.ui.ContextMenu;
 import flash.ui.ContextMenuItem;
 import flash.utils.setInterval;
+
 import mx.core.FlexGlobals;
 import mx.core.IInvalidating;
 import mx.core.Singleton;
@@ -37,6 +38,7 @@
 import mx.styles.StyleManager;
 import mx.utils.BitFlagUtil;
 import mx.utils.LoaderUtil;
+
 import spark.layouts.supportClasses.LayoutBase;

 use namespace mx_internal;
@@ -48,9 +50,9 @@
 /**
  *  Dispatched after the Application has been initialized,
  *  processed by the LayoutManager, and attached to the display list.
- *
+ *
  *  @eventType mx.events.FlexEvent.APPLICATION_COMPLETE
- *
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -60,9 +62,9 @@

 /**
  *  Dispatched when an HTTPService call fails.
- *
+ *
  *  @eventType flash.events.ErrorEvent.ERROR
- *
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -72,9 +74,9 @@

 /**
  *  Dispatched when an uncaught error is caught by the Global Exception Handler
- *
+ *
  *  @eventType flash.events.UncaughtErrorEvent.UNCAUGHT_ERROR
- *
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
  *  @playerversion AIR 2.0
@@ -89,7 +91,7 @@
 /**
  *  The background color of the application. This color is used as the stage color for the
  *  application and the background color for the HTML embed tag.
- *
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -116,7 +118,7 @@
  *  This factoryClass will be automatically subclassed by any
  *  MXML applications that don't explicitly specify a different
  *  factoryClass.
- *
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -139,7 +141,7 @@
  *

  *

  *           Default size
- *           375 pixels high and 500 pixels wide in the Standalone Flash Player,
+ *           375 pixels high and 500 pixels wide in the Standalone Flash Player,
  *               and all available space in a browser
  *

  *

@@ -155,10 +157,10 @@
  *           spark.skins.spark.ApplicationSkin
  *

  *

- *
+ *
  *  @mxml
  *
- *
The <s:Application> tag inherits all of the tag
+ *
The <s:Application> tag inherits all of the tag
  *  attributes of its superclass and adds the following tag attributes:

  *
  *

@@ -178,7 +180,7 @@
  *    usePreloader="true"
  *    viewSourceURL=""
  *    xmlns:No default="No default"
- *
+ *
  *    Events
  *    applicationComplete="No default"
  *    error="No default"
@@ -193,7 +195,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class Application extends SkinnableContainer
+public class Application extends SkinnableContainer
 {
     include "../core/Version.as";

@@ -202,7 +204,7 @@
     //  Class constants
     //
     //--------------------------------------------------------------------------
-
+
     /**
      *  @private
      */
@@ -232,7 +234,7 @@

     /**
      *  Constructor.
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -248,9 +250,9 @@
             FlexGlobals.topLevelApplication = this;

         super();
-
+
         showInAutomationHierarchy = true;
-
+
         initResizeBehavior();
     }

@@ -264,7 +266,7 @@
      *  @private
      */
     private var resizeHandlerAdded:Boolean = false;
-
+
     /**
      *  @private
      */
@@ -275,7 +277,7 @@
      *  Placeholder for Preloader object reference.
      */
     private var preloadObj:Object;
-
+
     /**
      *  @private
      *  This flag indicates whether the width of the Application instance
@@ -284,7 +286,7 @@
      *  width of the Application should be modified.
      */
     private var resizeWidth:Boolean = true;
-
+
     /**
      *  @private
      *  This flag indicates whether the height of the Application instance
@@ -293,12 +295,12 @@
      *  height of the Application should be modified.
      */
     private var resizeHeight:Boolean = true;
-
-    /**
-     *  @private
-     */
+
+    /**
+     *  @private
+     */
     private var synchronousResize:Boolean = false;
-
+
     /**
      * @private
      * (Possibly null) reference to the View Source context menu item,
@@ -309,22 +311,22 @@
     //----------------------------------
     //  colorCorrection
     //----------------------------------
-
+
     [Inspectable(enumeration="default,off,on", defaultValue="default" )]
-
+
    /**
-    *  The value of the stage's colorCorrection property.
-    *  If this application does not have access to the stage's colorCorrection property,
+    *  The value of the stage's colorCorrection property.
+    *  If this application does not have access to the stage's colorCorrection property,
     *  the value of the colorCorrection property is null.
-    *
+    *
     *
Only the main application is allowed to set the colorCorrection
-    *  property. If a nested application's needs to set the color correction property, it
+    *  property. If a nested application's needs to set the color correction property, it
     *  must set it by referencing the main application's instance.

     *
     *  @default ColorCorrection.DEFAULT
     *
     *  @see flash.display.ColorCorrection
-    *
+    *
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
@@ -346,7 +348,7 @@

         return null;
     }
-
+
     /**
      * @private
      */
@@ -358,40 +360,40 @@
         if (sm && sm.stage && sm.isTopLevelRoot())
             sm.stage.colorCorrection = value;
     }
-
+
     /**
      *  @private
      *  Several properties are proxied to controlBarGroup.  However, when controlBarGroup
-     *  is not around, we need to store values set on SkinnableContainer.  This object
-     *  stores those values.  If controlBarGroup is around, the values are stored
-     *  on the controlBarGroup directly.  However, we need to know what values
-     *  have been set by the developer on the SkinnableContainer (versus set on
-     *  the controlBarGroup or defaults of the controlBarGroup) as those are values
-     *  we want to carry around if the controlBarGroup changes (via a new skin).
-     *  In order to store this info effeciently, controlBarGroupProperties becomes
-     *  a uint to store a series of BitFlags.  These bits represent whether a
-     *  property has been explicitely set on this SkinnableContainer.  When the
-     *  controlBarGroup is not around, controlBarGroupProperties is a typeless
+     *  is not around, we need to store values set on SkinnableContainer.  This object
+     *  stores those values.  If controlBarGroup is around, the values are stored
+     *  on the controlBarGroup directly.  However, we need to know what values
+     *  have been set by the developer on the SkinnableContainer (versus set on
+     *  the controlBarGroup or defaults of the controlBarGroup) as those are values
+     *  we want to carry around if the controlBarGroup changes (via a new skin).
+     *  In order to store this info effeciently, controlBarGroupProperties becomes
+     *  a uint to store a series of BitFlags.  These bits represent whether a
+     *  property has been explicitely set on this SkinnableContainer.  When the
+     *  controlBarGroup is not around, controlBarGroupProperties is a typeless
      *  object to store these proxied properties.  When controlBarGroup is around,
-     *  controlBarGroupProperties stores booleans as to whether these properties
+     *  controlBarGroupProperties stores booleans as to whether these properties
      *  have been explicitely set or not.
      */
     private var controlBarGroupProperties:Object = { visible: true };

     //----------------------------------
     //  controlBarGroup
-    //----------------------------------
-
+    //----------------------------------
+
     [SkinPart(required="false")]

     /**
-     *  The skin part that defines the appearance of the
+     *  The skin part that defines the appearance of the
      *  control bar area of the container.
-     *  By default, the ApplicationSkin class defines the control bar area to appear at the top
-     *  of the content area of the Application container with a grey background.
+     *  By default, the ApplicationSkin class defines the control bar area to appear at the top
+     *  of the content area of the Application container with a grey background.
      *
      *  @see spark.skins.spark.ApplicationSkin
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -401,23 +403,23 @@

     //----------------------------------
     //  controlBarContent
-    //----------------------------------
-
+    //----------------------------------
+
     [ArrayElementType("mx.core.IVisualElement")]
-
-    /**
-     *  The set of components to include in the control bar area of the
-     *  Application container.
-     *  The location and appearance of the control bar area of the Application container
-     *  is determined by the spark.skins.spark.ApplicationSkin class.
-     *  By default, the ApplicationSkin class defines the control bar area to appear at the top
-     *  of the content area of the Application container with a grey background.
+
+    /**
+     *  The set of components to include in the control bar area of the
+     *  Application container.
+     *  The location and appearance of the control bar area of the Application container
+     *  is determined by the spark.skins.spark.ApplicationSkin class.
+     *  By default, the ApplicationSkin class defines the control bar area to appear at the top
+     *  of the content area of the Application container with a grey background.
      *  Create a custom skin to change the default appearance of the control bar.
      *
      *  @default null
      *
      *  @see spark.skins.spark.ApplicationSkin
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -439,7 +441,7 @@
         if (controlBarGroup)
         {
             controlBarGroup.mxmlContent = value;
-            controlBarGroupProperties = BitFlagUtil.update(controlBarGroupProperties as uint,
+            controlBarGroupProperties = BitFlagUtil.update(controlBarGroupProperties as uint,
                                                         CONTROLBAR_PROPERTY_FLAG, value != null);
         }
         else
@@ -450,13 +452,13 @@

     //----------------------------------
     //  controlBarLayout
-    //----------------------------------
-
+    //----------------------------------
+
     /**
      *  Defines the layout of the control bar area of the container.
      *
      *  @default HorizontalLayout
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -464,8 +466,8 @@
      */
     public function get controlBarLayout():LayoutBase
     {
-        return (controlBarGroup)
-            ? controlBarGroup.layout
+        return (controlBarGroup)
+            ? controlBarGroup.layout
             : controlBarGroupProperties.layout;
     }

@@ -474,7 +476,7 @@
         if (controlBarGroup)
         {
             controlBarGroup.layout = value;
-            controlBarGroupProperties = BitFlagUtil.update(controlBarGroupProperties as uint,
+            controlBarGroupProperties = BitFlagUtil.update(controlBarGroupProperties as uint,
                                                         LAYOUT_PROPERTY_FLAG, true);
         }
         else
@@ -483,20 +485,20 @@

     //----------------------------------
     //  controlBarVisible
-    //----------------------------------
-
+    //----------------------------------
+
     /**
      *  If true, the control bar is visible.
      *  The flag has no affect if there is no value set for
      *  the controlBarContent property.
      *
-     *
Note: The Application container does not monitor the
-     *  controlBarGroup property.
-     *  If other code makes it invisible, the Application container might
+     *
Note: The Application container does not monitor the
+     *  controlBarGroup property.
+     *  If other code makes it invisible, the Application container might
      *  not update correctly.

      *
      *  @default true
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -504,8 +506,8 @@
      */
     public function get controlBarVisible():Boolean
     {
-        return (controlBarGroup)
-            ? controlBarGroup.visible
+        return (controlBarGroup)
+            ? controlBarGroup.visible
             : controlBarGroupProperties.visible;
     }

@@ -514,7 +516,7 @@
         if (controlBarGroup)
         {
             controlBarGroup.visible = value;
-            controlBarGroupProperties = BitFlagUtil.update(controlBarGroupProperties as uint,
+            controlBarGroupProperties = BitFlagUtil.update(controlBarGroupProperties as uint,
                                                         VISIBLE_PROPERTY_FLAG, value);
         }
         else
@@ -545,11 +547,11 @@

     /**
      *    Specifies the frame rate of the application.
-     *
+     *
      *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.

      *
      *    @default 24
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -565,13 +567,13 @@
      *    Specifies a string that appears in the title bar of the browser.
      *    This property provides the same functionality as the
      *    HTML <title> tag.
-     *
-     *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.
-     *    The value set in MXML code is designed to be used by a tool to update the HTML templates
+     *
+     *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.
+     *    The value set in MXML code is designed to be used by a tool to update the HTML templates
      *    provided with the SDK.

      *
      *    @default ""
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -591,38 +593,38 @@
      *  A SWC component must be in the same directory as the MXML file
      *  or in the WEB-INF/flex/user_classes directory of your Flex
      *  web application.
-     *
+     *
      *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.

-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
     public var preloader:Object;
-
+
     //----------------------------------
     //  preloaderChromeColor
     //----------------------------------
-
+
     [Inspectable(defaultValue="0xCCCCCC", format="Color")]
-
+
     /**
      *  Specifies the chrome color used by the default preloader component. This property
      *  has the same effect as the chromeColor style used by Spark skins.
-     *  Typically this property should be set to the same value as the
+     *  Typically this property should be set to the same value as the
      *  Application container's chromeColor style property.
-     *
+     *
      *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.

-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+
     /* This property is not directly read by the download progress bar (preloader)
-     * component. It is here so that it gets picked up by the compiler and included
+     * component. It is here so that it gets picked up by the compiler and included
      * in the info() structure for the generated system manager. The download progress bar
      * grabs the value directly from the info() structure. */
     public var preloaderChromeColor:uint;
@@ -634,14 +636,14 @@
     [Inspectable(defaultValue="1000")]

     /**
-     *    Specifies the maximum depth of Flash Player or AIR
+     *    Specifies the maximum depth of Flash Player or AIR
      *    call stack before the player stops.
      *    This is essentially the stack overflow limit.
-     *
+     *
      *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.

      *
      *    @default 1000
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -662,7 +664,7 @@
      *    The maximum allowable value that you can set is 60 seconds.
      *
      *  @default 60
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -671,6 +673,96 @@
     public var scriptTimeLimit:Number;

     //----------------------------------
+    //  splashScreenImage
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The image class for the SplashScreen preloader.
+     *
+     *  Typically developers set to an embedded resource, i.e. splashScreenImage="@Embed('Default.png')".
+     *
+     *
Note: The property has effect only when the preloader is set to spark.preloaders.SplashScreen.
+     *  The spark.preloaders.SplashScreen class is the default preloader for Mobile Flex applications.
+     *  This property cannot be set by ActionScript code; it must be set in MXML code.

+     *
+     *  @see splashScreenScaleMode
+     */
+    public function set splashScreenImage(value:Class):void
+    {
+        // Do nothing, the compiler will place the value in the generated SystemManager's info object.
+
+        // FIXME (egeorgie): why the discrepancy between this as "read-only-setters" and the rest of the
+        // special attributes as "public vars"?
+    }
+
+    //----------------------------------
+    //  splashScreenScaleMode
+    //----------------------------------
+
+    [Inspectable(category="General", enumeration="none,letterbox,stretch,zoom", defaultValue="none")]
+
+    /**
+     *  The splash screen image scale mode.
+     *
+     *
A value of "none" implies that the image size is set to match its intrinsic size.
+     *
+     *  A value of "stretch" sets the width and the height of the image to the
+     *  stage width and height, possibly changing the content aspect ratio.
+     *
+     *  A value of "letterbox" sets the width and height of the image as close to the stage width and height
+     *  as possible while maintaining aspect ratio.  The image is stretched to a maximum of the stage bounds,
+     *  with spacing added inside the stage to maintain the aspect ratio if necessary.
+     *
+     *  A value of "zoom" is similar to "letterbox", except that "zoom" stretches the
+     *  image past the bounds of the stage, to remove the spacing required to maintain aspect ratio.
+     *  This has the effect of using the entire bounds of the stage, but also possibly cropping some of the image.
+     *
+     *  Note: The portion of the stage that is not covered by the image will show in the Application's backgroundColor.

+     *
+     *
Note: The property has effect only when the splashScreenImage property is set
+     *  and the preloader is spark.preloaders.SplashScreen.
+     *  The spark.preloaders.SplashScreen class is the default preloader for Mobile Flex applications.
+     *  This property cannot be set by ActionScript code; it must be set in MXML code.

+     *
+     *  @default "none"
+     *  @see splashScreenImage
+     */
+    public function set splashScreenScaleMode(value:String):void
+    {
+        // Do nothing, the compiler will place the value in the generated SystemManager's info object.
+
+        // FIXME (egeorgie): why the discrepancy between this as "read-only-setters" and the rest of the
+        // special attributes as "public vars"?
+    }
+
+    //----------------------------------
+    //  splashScreenMinimumDisplayTime
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Minimum amount of time, in milliseconds, to show the splash screen image.
+     *
+     *
Note: The property has effect only when the splashScreenImage property is set
+     *  and the preloader is spark.preloaders.SplashScreen.
+     *  The spark.preloaders.SplashScreen class is the default preloader for Mobile Flex applications.
+     *  This property cannot be set by ActionScript code; it must be set in MXML code.

+     *
+     *  @default 1000
+     *  @see splashScreenImage
+     */
+    public function set splashScreenMinimumDisplayTime(value:int):void
+    {
+        // Do nothing, the compiler will place the value in the generated SystemManager's info object.
+
+        // FIXME (egeorgie): why the discrepancy between this as "read-only-setters" and the rest of the
+        // special attributes as "public vars"?
+    }
+
+    //----------------------------------
     //  usePreloader
     //----------------------------------

@@ -678,11 +770,11 @@

     /**
      *    If true, specifies to display the application preloader.
-     *
+     *
      *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.

      *
      *    @default true
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -695,7 +787,7 @@
     //  Overridden properties (to block metadata from superclasses)
     //
     //--------------------------------------------------------------------------
-
+
     //----------------------------------
     //  id
     //----------------------------------
@@ -708,7 +800,7 @@
     override public function get id():String
     {
         if (!super.id &&
-            this == FlexGlobals.topLevelApplication &&
+            this == FlexGlobals.topLevelApplication &&
             ExternalInterface.available)
         {
             return ExternalInterface.objectID;
@@ -733,7 +825,7 @@
             invalidateProperties();
         }
     }
-
+
     //----------------------------------
     //  percentWidth
     //----------------------------------
@@ -804,7 +896,7 @@
      *
There are two sources of parameters: the query string of the
      *  Application's URL, and the value of the FlashVars HTML parameter
      *  (this affects only the main Application).

-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -828,7 +920,7 @@

     /**
      *  The URL from which this Application's SWF file was loaded.
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -838,7 +930,7 @@
     {
         return _url;
     }
-
+
     //----------------------------------
     //  viewSourceURL
     //----------------------------------
@@ -855,7 +947,7 @@
      *  default context menu.  Selecting the menu item opens the
      *  viewSourceURL in a new window.
      *
-     *
You must set the viewSourceURL property
+     *
You must set the viewSourceURL property
      *  using MXML, not using ActionScript, as the following example shows:

      *
      *

@@ -863,7 +955,7 @@
      *      ...
      *    </Application>

      *
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -873,7 +965,7 @@
     {
         return _viewSourceURL;
     }
-
+
     /**
      *  @private
      */
@@ -889,7 +981,7 @@
     //--------------------------------------------------------------------------

     /**
-     *  @private
+     *  @private
      */
     override protected function invalidateParentSizeAndDisplayList():void
     {
@@ -914,13 +1006,13 @@
     override public function initialize():void
     {
         // trace("FxApp initialize FxApp");
-
+
         var sm:ISystemManager = systemManager;
-
+
 		// add listener if one is already attached
 		if (hasEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR))
 			systemManager.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorRedispatcher);
-
+
         _url = LoaderUtil.normalizeURL(sm.loaderInfo);
         _parameters = sm.loaderInfo.parameters;

@@ -931,7 +1023,7 @@
         initContextMenu();

         super.initialize();
-
+
         // Stick a timer here so that we will execute script every 1.5s
         // no matter what.
         // This is strictly for the debugger to be able to halt.
@@ -939,7 +1031,7 @@
         if (sm.isTopLevel() && Capabilities.isDebugger == true)
             setInterval(debugTickler, 1500);
     }
-
+
     /**
      *  @private
      */
@@ -949,7 +1041,7 @@

         resizeWidth = isNaN(explicitWidth);
         resizeHeight = isNaN(explicitHeight);
-
+
         if (resizeWidth || resizeHeight)
         {
             resizeHandler(new Event(Event.RESIZE));
@@ -969,58 +1061,58 @@
                 resizeHandlerAdded = false;
             }
         }
-
+
         if (percentBoundsChanged)
         {
             updateBounds();
             percentBoundsChanged = false;
         }
     }
-
+
     /**
      *  @private
      */
     override protected function resourcesChanged():void
     {
         super.resourcesChanged();
-
+
         // "View Source" on the context menu
         if (viewSourceCMI)
         {
             viewSourceCMI.caption = resourceManager.getString("components", "viewSource");
         }
     }
-
+
     /**
      *  @private
      */
     override protected function partAdded(partName:String, instance:Object):void
     {
         super.partAdded(partName, instance);
-
+
         if (instance == controlBarGroup)
         {
             // copy proxied values from controlBarGroupProperties (if set) to contentGroup
             var newControlBarGroupProperties:uint = 0;
-
+
             if (controlBarGroupProperties.controlBarContent !== undefined)
             {
                 controlBarGroup.mxmlContent = controlBarGroupProperties.controlBarContent;
-                newControlBarGroupProperties = BitFlagUtil.update(newControlBarGroupProperties,
+                newControlBarGroupProperties = BitFlagUtil.update(newControlBarGroupProperties,
                                                                CONTROLBAR_PROPERTY_FLAG, true);
             }

             if (controlBarGroupProperties.layout !== undefined)
             {
                 controlBarGroup.layout = controlBarGroupProperties.layout;
-                newControlBarGroupProperties = BitFlagUtil.update(newControlBarGroupProperties,
+                newControlBarGroupProperties = BitFlagUtil.update(newControlBarGroupProperties,
                                                                LAYOUT_PROPERTY_FLAG, true);
             }

             if (controlBarGroupProperties.visible !== undefined)
             {
                 controlBarGroup.visible = controlBarGroupProperties.visible;
-                newControlBarGroupProperties = BitFlagUtil.update(newControlBarGroupProperties,
+                newControlBarGroupProperties = BitFlagUtil.update(newControlBarGroupProperties,
                                                                VISIBLE_PROPERTY_FLAG, true);
             }

@@ -1030,7 +1122,7 @@

     /**
      *  @private
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -1043,18 +1135,18 @@
         if (instance == controlBarGroup)
         {
             // copy proxied values from contentGroup (if explicitely set) to contentGroupProperties
-
+
             var newControlBarGroupProperties:Object = {};
-
+
             if (BitFlagUtil.isSet(controlBarGroupProperties as uint, CONTROLBAR_PROPERTY_FLAG))
                 newControlBarGroupProperties.controlBarContent = controlBarGroup.getMXMLContent();
-
+
             if (BitFlagUtil.isSet(controlBarGroupProperties as uint, LAYOUT_PROPERTY_FLAG))
                 newControlBarGroupProperties.layout = controlBarGroup.layout;
-
+
             if (BitFlagUtil.isSet(controlBarGroupProperties as uint, VISIBLE_PROPERTY_FLAG))
                 newControlBarGroupProperties.visible = controlBarGroup.visible;
-
+
             controlBarGroupProperties = newControlBarGroupProperties;

             controlBarGroup.mxmlContent = null;
@@ -1064,7 +1156,7 @@

     /**
      *  @private
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -1092,35 +1184,35 @@
     //----------------------------------
     //  unscaledHeight
     //----------------------------------
-
+
     /**
      *  @private
      */
     override mx_internal function setUnscaledHeight(value:Number):void
     {
-        // we invalidate so we can properly add/remove the resize
+        // we invalidate so we can properly add/remove the resize
         // event handler (SDK-12664)
         invalidateProperties();
-
+
         super.setUnscaledHeight(value);
     }
-
+
     //----------------------------------
     //  unscaledWidth
     //----------------------------------
-
+
     /**
      *  @private
      */
     override mx_internal function setUnscaledWidth(value:Number):void
     {
-        // we invalidate so we can properly add/remove the resize
+        // we invalidate so we can properly add/remove the resize
         // event handler (SDK-12664)
         invalidateProperties();
-
+
         super.setUnscaledWidth(value);
     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Methods
@@ -1145,7 +1237,7 @@
         if (sm.isTopLevel())
         {
             focusManager = new FocusManager(this);
-            var awm:IActiveWindowManager =
+            var awm:IActiveWindowManager =
                 IActiveWindowManager(sm.getImplementation("mx.managers::IActiveWindowManager"));
             if (awm)
                 awm.activate(this);
@@ -1153,7 +1245,7 @@
                 focusManager.activate();
         }
     }
-
+
     /**
      *  @private
      *  Disable all the built-in items except "Print...".
@@ -1169,7 +1261,7 @@
                 InteractiveObject(systemManager).contextMenu = contextMenu as ContextMenu;
             return;
         }
-
+
         var defaultMenu:ContextMenu = new ContextMenu();
         defaultMenu.hideBuiltInItems();
         defaultMenu.builtInItems.print = true;
@@ -1178,15 +1270,15 @@
         {
             // don't worry! this gets updated in resourcesChanged()
             const caption:String = resourceManager.getString("components", "viewSource");
-
+
             viewSourceCMI = new ContextMenuItem(caption, true);
             viewSourceCMI.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
-
+
             defaultMenu.customItems.push(viewSourceCMI);
         }

         contextMenu = defaultMenu;
-
+
         if (systemManager is InteractiveObject)
             InteractiveObject(systemManager).contextMenu = defaultMenu;
     }
@@ -1199,20 +1291,20 @@
     private function initResizeBehavior():void
     {
         var version:Array = Capabilities.version.split(' ')[1].split(',');
-
-        synchronousResize = (parseFloat(version[0]) > 10 ||
+
+        synchronousResize = (parseFloat(version[0]) > 10 ||
             (parseFloat(version[0]) == 10 && parseFloat(version[1]) >= 1))
             && (Capabilities.playerType != "Desktop");
     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Event handlers
     //
     //--------------------------------------------------------------------------
-
-    /**
-     *  @private
+
+    /**
+     *  @private
      *  Triggered by a resize event of the stage.
      *  Sets the new width and height.
      *  After the SystemManager performs its function,
@@ -1225,14 +1317,14 @@
         if (!percentBoundsChanged)
         {
             updateBounds();
-
-            // Update immediately when stage resizes so that we may appear
+
+            // Update immediately when stage resizes so that we may appear
             // in synch with the stage rather than visually "catching up".
-            if (synchronousResize)
+            if (synchronousResize)
                 UIComponentGlobals.layoutManager.validateNow();
         }
     }
-
+
     /**
      *  @private
      *  Called when the "View Source" item in the application's context menu is
@@ -1242,7 +1334,7 @@
     {
         navigateToURL(new URLRequest(_viewSourceURL), "_blank");
     }
-
+
     /**
      *  @private
      *  Sets the new width and height after the Stage has resized
@@ -1259,26 +1351,26 @@
         // based on the current SystemManager's width/height.
         // If developer has specified min/max values,
         // then application will not resize beyond those values.
-
+
         var w:Number;
         var h:Number
-
+
         if (resizeWidth)
         {
             if (isNaN(percentWidth))
             {
                 w = DisplayObject(systemManager).width;
             }
-            else
+            else
             {
                 super.percentWidth = Math.max(percentWidth, 0);
                 super.percentWidth = Math.min(percentWidth, 100);
                 w = percentWidth*DisplayObject(systemManager).width/100;
             }
-
+
             if (!isNaN(explicitMaxWidth))
                 w = Math.min(w, explicitMaxWidth);
-
+
             if (!isNaN(explicitMinWidth))
                 w = Math.max(w, explicitMinWidth);
         }
@@ -1286,7 +1378,7 @@
         {
             w = width;
         }
-
+
         if (resizeHeight)
         {
             if (isNaN(percentHeight))
@@ -1299,10 +1391,10 @@
                 super.percentHeight = Math.min(percentHeight, 100);
                 h = percentHeight*DisplayObject(systemManager).height/100;
             }
-
+
             if (!isNaN(explicitMaxHeight))
                 h = Math.min(h, explicitMaxHeight);
-
+
             if (!isNaN(explicitMinHeight))
                 h = Math.max(h, explicitMinHeight);
         }
@@ -1310,18 +1402,18 @@
         {
             h = height;
         }
-
+
         if (w != width || h != height)
         {
             invalidateProperties();
             invalidateSize();
         }
-
+
         setActualSize(w, h);
-
-        invalidateDisplayList();
-    }
-
+
+        invalidateDisplayList();
+    }
+
 	/**
 	 * @private
 	 */
@@ -1331,8 +1423,8 @@
 		if (type == UncaughtErrorEvent.UNCAUGHT_ERROR && systemManager)
 			systemManager.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorRedispatcher);
 		super.addEventListener(type, listener, useCapture, priority, useWeakReference)
-	}
-
+	}
+
 	/**
 	 * @private
 	 */
@@ -1342,7 +1434,7 @@
 		if (type == UncaughtErrorEvent.UNCAUGHT_ERROR && systemManager)
 			systemManager.loaderInfo.uncaughtErrorEvents.removeEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorRedispatcher);
 	}
-
+
 	private function uncaughtErrorRedispatcher(event:Event):void
 	{
 		if (!dispatchEvent(event))


Transferred from the Adobe Open Source Subversion Repository

Revision: 10225
Author:   smgilson@adobe.com
Date:     2009-09-14T13:23:35.279138Z

Log Message:
-----------
ASDoc updates for Bounce.as and Elastic.as

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Bounce.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Elastic.as</path>

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

--- frameworks/projects/spark/src/spark/effects/easing/Elastic.as
+++ frameworks/projects/spark/src/spark/effects/easing/Elastic.as
@@ -14,11 +14,11 @@
 import mx.effects.easing.Elastic;

 /**
- * The Elastic class implements easing functionality where the object
- * movement is defined by an exponentially decaying sine wave. The
- * target object will decelerate toward the end value and past it
- * and will continue to oscillate around that value in smaller increments
- * before ending up on that end value.
+ *  The Elastic class implements easing functionality where the target object
+ *  movement is defined by an exponentially decaying sine wave.
+ *  The effect target decelerates toward the end value, and continues past the end value.
+ *  It then oscillates around the end value in smaller and smaller increments,
+ *  before reaching the end value.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -34,7 +34,7 @@
     //--------------------------------------------------------------------------

     /**
-     *  Constructs an Elastic easer.
+     *  Constructor.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -52,7 +52,7 @@
     //--------------------------------------------------------------------------

     /**
-     *  @copy spark.effects.easing.IEaser#ease
+     *  @inheritDoc
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 6266
Author:   egeorgie@adobe.com
Date:     2009-04-24T23:09:01.304621Z

Log Message:
-----------
Layout PARB changes

Major (most probably will require updates):
- LayoutBase.getScrollPositionDelta() -> getScrollPositionDeltaToElement()
- HorizontalLayout, VerticalLayout method inView() -> fractionOfElementInView()
- LayoutElementFactory is deleted, interface ILayoutElement is implemented by UIComponent, GraphicElement, VisualSprite, no need for casting in those cases, cast to ILayoutElement in case of type Object.
- TileLayout.elementHorizontalAlign -> horizontalAlign
- TileLayout.elementVerticalAlign -> verticalAlign
- TileJustifyRows -> RowAlign
- TileJustifyColumsn > ColumnAlign
- TileLayout.justifyRows -> rowAlign
- TileLayout.justifyColumns -> columnAling
- TileJustifyRows.NONE, "none" -> TOP, "top"
- TileJustifyRows.GAP_SIZE, "gapSize" -> JUSTIFY_USING_GAP, "justifyUsingGap"
- TileJustifyRows.ROW_SIZE, "rowSize" -> JUSTIFY_USING_HEIGHT, "justifyUsingHeight"
- TileJustifyColumns.NONE, "none" -> LEFT, "left"
- TileJustifyColumns.GAP_SIZE, "gapSize" -> JUSTIFY_USING_GAP, "justifyUsingGap"
- TileJustifyColumns.COLUMN_SIZE, "columnSize" -> JUSTIFY_USING_WIDTH, "justifyUsingWidth"
- TileLayout.set rowCount -> set requestedRowCount
- add TileLayout.get requestedRowCount
- TileLayout.set columnCount -> set requestedColumnCount
- add TileLayout.get requestedColumnCount

Minor (may require updates, but not that probable):
- get baselinePosition() is moved from IVisualElement to ILayoutElement.
- setLayoutBoundsSize() does not have default NaN values for width & height (but still logic is the same).
- name of ILayoutInterface methods' parameter "postTransform" is renamed to "postLayoutTransform".
- name of ILayoutInterface methods' parameter "triggerLayout" is renamed to "invalidateLayout".
- LayoutBase methods invalidateTargetSizeAndDisplayList() and invalidateTargetSize() are removed.
- LayoutBase method getTargetScrollRect() is renamed to getScrollRect().

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Hans, Ryan
tests: checkintests, mustella (gumbo/layout, gumbo/group, gumbo/dataGroup)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/RowAlign.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileJustifyRows.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/ColumnAlign.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBarHorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Rect.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/TileJustifyColumns.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/TextBaseClass.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollerLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -28,8 +28,56 @@

 /**
- *  Documentation is not currently available.
- *
+ *  The VerticalLayout arranges the layout elements in a vertical sequence,
+ *  top to bottom, with optional gaps between the elements and optional padding
+ *  around the sequence of elements.
+ *
+ *
During measure(), the default size of the container is calculated by
+ *  accumulating the preferred sizes of the elements, including gaps and padding.
+ *  When requestedRowCount is set, only the space for that many elements
+ *  will be measured, starting from the first element.

+ *
+ *
During updateDisplayList(), the height of each element is calculated
+ *  according to the following rules, listed in their respective order of
+ *  precedence (element's minimum height and maximum height are always respected):
+ *

+ *
If variableRowHeight is false, then set the element's height to the
+ *    value of the rowHeight property.

+ *
+ *
If the element's percentHeight is set, then calculate the element's
+ *    height by distributing the available container height between all
+ *    elements with percentHeight setting. The available container height
+ *    is equal to the container height minus the gaps, the padding and the
+ *    space occupied by the rest of the elements. The element's precentHeight
+ *    property is ignored when the layout is virtualized.

+ *
+ *
Set the element's height to its preferred height.

+ *

+ *
+ *  The width of each element is calculated according to the following rules,
+ *  listed in their respective order of precedence (element's minium width and
+ *  maximum width are always respected):
+ *

+ *
If horizontalAlign is "justify" then set the element's width to the
+ *    container width.

+ *
+ *
If horizontalAlign is "contentJustify" then set the element's width
+ *    to the maximum between the container's width and all elements' preferred
+ *    width.

+ *
+ *
If the element's percentWidth is set, then calculate the element's
+ *    width as a percentage of the container's width.

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

+ *

+ *
+ *  The vertical position of the elements is determined by arranging them
+ *  in a vertical sequence, top to bottom, taking into account the padding
+ *  before the first element and the gaps between the elements.
+ *
+ *  The horizontal position of the elements is determined by the layout's
+ *  horizontalAlign property.

+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -230,7 +278,10 @@
             return;

         _horizontalAlign = value;
-        invalidateTargetDisplayList();
+
+        var layoutTarget:GroupBase = target;
+        if (layoutTarget)
+            layoutTarget.invalidateDisplayList();
     }

     //----------------------------------
@@ -537,7 +588,7 @@
 	 *  Note that the layout element may only be partially in view.
 	 *
 	 *  @see lastIndexInView
-	 *  @see inView
+	 *  @see fractionOfElementInView
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10
@@ -572,7 +623,7 @@
      *  Note that the row may only be partially in view.
      *
      *  @see firstIndexInView
-     *  @see inView
+     *  @see fractionOfElementInView
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10
@@ -639,7 +690,7 @@
 	 *  @playerversion AIR 1.5
 	 *  @productversion Flex 4
 	 */
-	public function inView(index:int):Number
+	public function fractionOfElementInView(index:int):Number
 	{
 		var g:GroupBase = GroupBase(target);
 	    if (!g)
@@ -771,7 +822,7 @@
             return;
         }

-        var scrollR:Rectangle = getTargetScrollRect();
+        var scrollR:Rectangle = getScrollRect();
         if (!scrollR)
         {
             setIndexInView(0, n);
@@ -879,7 +930,7 @@
     {
         var n:int = g.numElements;

-        if (inView(i) >= 1)
+        if (fractionOfElementInView(i) >= 1)
         {
             // Special case: if we hit the first/last element,
             // then return the area of the padding so that we
@@ -1521,7 +1572,30 @@
             updateDisplayListVirtual();
         else
             updateDisplayListReal();
-    }
+    }
+
+    /**
+     *  @private
+     *  Convenience function for subclasses that invalidates the
+     *  target's size and displayList so that both layout's measure()
+     *  and updateDisplayList methods get called.
+     *
+     *
Typically a layout invalidates the target's size and display list so that
+     *  it gets a chance to recalculate the target's default size and also size and
+     *  position the target's elements. For example changing the gap
+     *  property on a VerticalLayout will internally call this method
+     *  to ensure that the elements are re-arranged with the new setting and the
+     *  target's default size is recomputed.

+     */
+    private function invalidateTargetSizeAndDisplayList():void
+    {
+        var g:GroupBase = target;
+        if (!g)
+            return;
+
+        g.invalidateSize();
+        g.invalidateDisplayList();
+    }
 }
 }


fixed bug where WeaveJS/WeavePromise.setResult() wasn't converting undefined to null as in ActionScript.

--- WeaveJS/src/weavejs/util/WeavePromise.as
+++ WeaveJS/src/weavejs/util/WeavePromise.as
@@ -89,7 +89,7 @@
 			}
 			else
 			{
-				this.result = result;
+				this.result = result as Object;
 				callHandlers();
 			}
 		}


Avoid putting an empty String at the end of the array in parseURLs().

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

--- src/as/com/threerings/util/StringUtil.as
+++ src/as/com/threerings/util/StringUtil.as
@@ -313,8 +313,9 @@
             s = s.substring(index + url.length);
         }

-        // just the string is left
-        array.push(s);
+        if (s != "" || array.length == 0) { // avoid putting an empty string on the end
+            array.push(s);
+        }
         return array;
     }


Simplistic support for cyclic references so this method can be used without fear.

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

--- src/as/com/threerings/util/StringUtil.as
+++ src/as/com/threerings/util/StringUtil.as
@@ -22,6 +22,7 @@
 package com.threerings.util {

 import flash.utils.ByteArray;
+import flash.utils.Dictionary;

 import com.threerings.util.env.Environment;

@@ -276,13 +277,19 @@
     /**
      * Nicely format the specified object into a String.
      */
-    public static function toString (obj :*) :String
+    public static function toString (obj :*, refs :Dictionary = null) :String
     {
         if (obj == null) { // checks null or undefined
             return String(obj);
         }

-        // TODO: this should be able to detect circular references
+        if (refs == null) {
+            refs = new Dictionary();
+
+        } else if (refs[obj] !== undefined) {
+            return "[cyclic reference]";
+        }
+        refs[obj] = true;

         var s :String;
         if (obj is Array) {
@@ -292,7 +299,7 @@
                 if (ii > 0) {
                     s += ", ";
                 }
-                s += (ii + ": " + toString(arr[ii]));
+                s += (ii + ": " + toString(arr[ii], refs));
             }
             return "Array(" + s + ")";

@@ -303,7 +310,7 @@
                 if (s.length > 0) {
                     s += ", ";
                 }
-                s += prop + "=>" + toString(obj[prop]);
+                s += prop + "=>" + toString(obj[prop], refs);
             }
             return "Object(" + s + ")";


Transferred from the Adobe Open Source Subversion Repository

Revision: 18543
Author:   rfrishbe@adobe.com
Date:     2010-11-11T21:39:53.401769Z

Log Message:
-----------
Making some PARB changes around down state support and InteractionStateDetector.  ItemRendererInteractionStateDetector has been renamed to InteractionStateDetector.  down state is now applicable in mouse interactionMode.  downColor defaults to undefined, and is only set in the mobiletheme--this way it won't break the mouse interaction case.

Fixing up ItemRenderer transitions.  Added a new method, invalidateRendererState().  We now don't transition immediately to the state when the selected, hovered, etc.. properties get set, but we wait until validation.

QE notes:
Doc notes:
Bugs: SDK-28482
Reviewer: Eric Day, Glenn
Tests run: checkintests, mustella DataGroup, List, ListDND
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRendererInteractionStateDetector.as" copyfrom-rev="18476" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/InteractionStateDetector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRendererInteractionStateDetector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/InteractionState.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/defaults.css</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -132,7 +132,7 @@
 /**
  *  @copy spark.components.supportClasses.GroupBase#style:downColor
  *
- *  @default 0xA8C6EE
+ *  @default undefined
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.1


line drawing bug fixed

line drawing bug fixed

--- Arguments/src/components/AgoraMap.as
+++ Arguments/src/components/AgoraMap.as
@@ -218,7 +218,7 @@

 					//First Vertical Line Starting Point
 					var argumentPanel:ArgumentPanel = panelsHash[model.ID];
-					//draw an array
+					//draw an arrow
 					drawUtility.graphics.moveTo(argumentPanel.x + argumentPanel.width + 5, argumentPanel.y + 35);
 					drawUtility.graphics.lineTo(argumentPanel.x + argumentPanel.width, argumentPanel.y + 30);
 					drawUtility.graphics.lineTo(argumentPanel.x + argumentPanel.width + 5, argumentPanel.y + 25);
@@ -234,7 +234,7 @@
 					//Line from claim to vertical line starting point
 					var firstMenuPanel:MenuPanel = menuPanelsHash[model.supportingArguments[0].ID];
 					drawUtility.graphics.moveTo(argumentPanel.x + argumentPanel.width, argumentPanel.y + 30);
-					drawUtility.graphics.lineTo(fvlspx, firstMenuPanel.y + 30);
+					drawUtility.graphics.lineTo(fvlspx, argumentPanel.y + 30);

 					//for each argument
 					for each(argumentTypeModel in model.supportingArguments){


Configure FeatureLayerParam out fields & layer definition fields.

--- src/widgets/Geoprocessing/parameters/FeatureLayerParameter.as
+++ src/widgets/Geoprocessing/parameters/FeatureLayerParameter.as
@@ -66,6 +66,7 @@
     {
         _layer = new FeatureLayer();
         _layer.featureCollection = new FeatureCollection(new FeatureSet([]), new LayerDetails());
+        _layer.outFields = [ "*" ];
     }

     //--------------------------------------------------------------------------
@@ -272,6 +273,19 @@
     //
     //--------------------------------------------------------------------------

+    override public function set paramInfo(value:Object):void
+    {
+        if (value)
+        {
+            super.paramInfo = value;
+            if (value.defaultValue)
+            {
+                var featureSet:FeatureSet = FeatureSet.fromJSON(value.defaultValue);
+                layer.featureCollection.layerDefinition.fields = featureSet.fields;
+            }
+        }
+    }
+
     override public function hasValidValue():Boolean
     {
         return _layer.featureCollection.featureSet.features.length > 0;


Clarify nature of argument.

Clarify nature of argument.

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

--- src/as/com/threerings/flash/Animation.as
+++ src/as/com/threerings/flash/Animation.as
@@ -24,7 +24,8 @@
 public interface Animation
 {
     /**
-     * The primary working method for your animation.
+     * The primary working method for your animation. The argument indicates how
+     * many milliseconds have passed since the previous update.
      */
     function updateAnimation (elapsed :Number) :void;
 }


Changed ContentType and rate

Changed ContentType and rate

Changed ContentType and rate to support all cameras.

--- src/com/axis/audioclient/AxisTransmit.as
+++ src/com/axis/audioclient/AxisTransmit.as
@@ -50,7 +50,7 @@
       }

       var mic:Microphone = Microphone.getMicrophone();
-      mic.rate = 8;
+      mic.rate = 16;
       mic.setSilenceLevel(0, -1);
       mic.addEventListener(StatusEvent.STATUS, onMicStatus);
       mic.addEventListener(SampleDataEvent.SAMPLE_DATA, onMicSampleData);
@@ -116,7 +116,7 @@

     private function onConnected(event:Event):void {
       conn.writeUTFBytes("POST " + this.urlParsed.urlpath + " HTTP/1.0\r\n");
-      conn.writeUTFBytes("Content-Type: audio/basic\r\n");
+      conn.writeUTFBytes("Content-Type: audio/axis-mulaw-128\r\n");
       conn.writeUTFBytes("Content-Length: 9999999\r\n");
       conn.writeUTFBytes("Connection: Keep-Alive\r\n");
       conn.writeUTFBytes("Cache-Control: no-cache\r\n");


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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPQueryAxis.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPQueryAxis.as
@@ -0,0 +1,213 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.olap
+{
+
+import mx.resources.ResourceBundle;
+import mx.resources.ResourceManager;
+
+[ResourceBundle("olap")]
+
+/**
+ *  The OLAPQueryAxis interface represents an axis of an OLAP query.
+ *
+ *  @mxml
+ *

+ *  The <mx:OLAPQueryAxis> tag inherits all of the tag attributes
+ *  of its superclass, and adds the following tag attributes:
+ *

+ *

+ *  <mx:OLAPQueryAxis
+ *    Properties
+ *  />
+ *
+ *  @see mx.olap.OLAPQuery
+ *  @see mx.olap.IOLAPQueryAxis
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class OLAPQueryAxis implements IOLAPQueryAxis
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor
+     *
+     *  @param ordinal The type of axis.
+     *  Use OLAPQuery.COLUMN AXIS for a column axis,
+     *  OLAPQuery.ROW_AXIS for a row axis,
+     *  and OLAPQuery.SLICER_AXIS for a slicer axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function OLAPQueryAxis(ordinal:int)
+    {
+        axisOrdinal = ordinal;
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    // axisOrdinal
+    //----------------------------------
+
+    /**
+     *  The type of axis, as
+     *  OLAPQuery.COLUMN AXIS for a column axis,
+     *  OLAPQuery.ROW_AXIS for a row axis,
+     *  and OLAPQuery.SLICER_AXIS for a slicer axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var axisOrdinal:int;
+
+    //----------------------------------
+    // sets
+    //----------------------------------
+
+    private var _sets:Array = [];
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get sets():Array
+    {
+        return _sets;
+    }
+
+    //----------------------------------
+    // tuples
+    //----------------------------------
+
+    private var _tuples:Array = [];
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get tuples():Array
+    {
+        return _tuples;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function addMember(m:IOLAPMember):void
+    {
+        if (!m)
+        {
+            var message:String = ResourceManager.getInstance().getString(
+                    "olap", "nullMemberOnAxis", [axisOrdinal]);
+            throw new QueryError(message);
+        }
+
+        var t:OLAPTuple = new OLAPTuple;
+        _tuples.push(t);
+
+        //TODO should we keep creating new sets?
+        var s:OLAPSet = new OLAPSet;
+        s.addTuple(t)
+        _sets.push(s);
+
+        t.addMember(m);
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function addSet(s:IOLAPSet):void
+    {
+        _sets.push(s);
+        for each (var t:OLAPTuple in OLAPSet(s).tuples)
+        {
+            _tuples.push(t);
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function addTuple(t:IOLAPTuple):void
+    {
+        _tuples.push(t);
+        var s:OLAPSet = new OLAPSet;
+        s.addTuple(t)
+        _sets.push(s);
+    }
+
+    /**
+     * Clears all the sets, tuples and members from this axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function clear():void
+    {
+		_tuples.splice(0);
+		_sets.splice(0);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 9578
Author:   aharui@adobe.com
Date:     2009-08-25T17:23:52.967867Z

Log Message:
-----------
Found another embeddedfontcontext issue in the player.  ElementFormat.getFontMetrics() must be called in the embeddedFont's moduleFactory context.  Added a general "callInContext" API to IFLexModuleFactory.  Eventually, TLF will add a new API so they can connect up to this capability and we'll change the code one more time.

QE Notes: None
Doc Notes: New API in IFlexModuleFactory.as
Bugs: SDK-22159
Reviewer: Darrell
API Change: Yes
Is noteworthy for integration: No
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</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/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -1744,6 +1744,15 @@
     //--------------------------------------------------------------------------

     /**
+   	 *  @private
+	 *  This method is overridden in the autogenerated subclass.
+   	 */
+    public function callInContext(fn:Function, thisArg:*, argsArray:*, returns:Boolean=true):*
+    {
+        return undefined;
+    }
+
+    /**
      *  A factory method that requests an instance of a
 	 *  definition known to the module.
 	 *