Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<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/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.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/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/framework/src/FrameworkClasses.as
+++ frameworks/projects/framework/src/FrameworkClasses.as
@@ -56,6 +56,7 @@
 	import mx.core.SimpleApplication; SimpleApplication;
 	import mx.core.SoundAsset; SoundAsset;
 	import mx.core.TextFieldAsset; TextFieldAsset;
+	import mx.core.TextFieldFactory; TextFieldFactory;
 	import mx.effects.easing.Back; Back;
 	import mx.effects.easing.Bounce; Bounce;
 	import mx.effects.easing.Circular; Circular;
@@ -78,6 +79,15 @@
 	import mx.logging.Log; Log;
 	import mx.logging.targets.TraceTarget; TraceTarget;
 	import mx.managers.DragManager; DragManager;
+	import mx.managers.marshalClasses.CursorManagerMarshalMixin; CursorManagerMarshalMixin;
+	import mx.managers.marshalClasses.DragManagerMarshalMixin; DragManagerMarshalMixin;
+	import mx.managers.marshalClasses.FocusManagerMarshalMixin; FocusManagerMarshalMixin;
+	import mx.managers.marshalClasses.PopUpManagerMarshalMixin; PopUpManagerMarshalMixin;
+	import mx.managers.marshalClasses.ToolTipManagerMarshalMixin; ToolTipManagerMarshalMixin;
+	import mx.managers.systemClasses.ActiveWindowManager; ActiveWindowManager;
+	import mx.managers.systemClasses.ChildManager; ChildManager;
+	import mx.managers.systemClasses.MarshallPlan; MarshallPlan;
+	import mx.messaging.config.LoaderConfig; LoaderConfig;
 	import mx.modules.IModuleInfo; IModuleInfo;
 	import mx.modules.Module; Module;
 	import mx.modules.ModuleBase; ModuleBase;


Transferred from the Adobe Open Source Subversion Repository

Revision: 16334
Author:   clucier@adobe.com
Date:     2010-05-27T02:31:28.322720Z

Log Message:
-----------
Preliminary Spark Image and BitmapImage enhancement feature work.  Also included with this checkin is the ability for BitmapImage and s:Image instances to share an image cache.  Queueing is next up to be checked in.

QE notes: Proceed with testing, though PARB related renames are pending. Not considered code complete.
Doc notes: Should begin reviewing new classes in preparation for doc'ing.
Bugs: None
Reviewer: Ryan
Tests run: Checkin, cyclone server Mustella tests.
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/ContentRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LinkedList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ImageLoadingSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/ContentCache.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ImageSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Image.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LinkedListNode.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapSmoothingQuality.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/LoaderInvalidationEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/IContentLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mx-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>

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

--- frameworks/projects/framework/src/FrameworkClasses.as
+++ frameworks/projects/framework/src/FrameworkClasses.as
@@ -135,7 +135,9 @@
 	import mx.utils.DescribeTypeCache; DescribeTypeCache;
 	import mx.utils.DescribeTypeCacheRecord; DescribeTypeCacheRecord;
 	import mx.utils.DisplayUtil; DisplayUtil;
-    import mx.utils.HSBColor; HSBColor;
+        import mx.utils.HSBColor; HSBColor;
+        import mx.utils.LinkedList; LinkedList;
+	import mx.utils.LinkedListNode; LinkedListNode;
 	import mx.utils.OrderedObject; OrderedObject;
 	import mx.utils.XMLUtil; XMLUtil;
 	import mx.utils.Base64Decoder; Base64Decoder;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

  *
  *

- *  <mx:Move3D
+ *  <s:Move3D
  *    Properties
  *    id="ID"
  *    xBy="no default"


fix Geometry.updateBoundingVolumes() to use component offset instead of bytes offset (damn!)

--- src/aerys/minko/render/geometry/Geometry.as
+++ src/aerys/minko/render/geometry/Geometry.as
@@ -826,7 +826,7 @@
 				if (!xyzStream)
 					return ;

-				var offset		: uint		= xyzStream.format.getBytesOffsetForComponent(
+				var offset		: uint		= xyzStream.format.getOffsetForComponent(
 					VertexComponent.XYZ
 				);
 				var streamMinX	: Number	= xyzStream.getMinimum(offset);


Removed debug info.

Removed debug info.

--- src/net/manaca/preloaders/PreloaderBase.as
+++ src/net/manaca/preloaders/PreloaderBase.as
@@ -162,7 +162,6 @@

     protected function updateProgress(percent:uint):void
     {
-        trace(percent)
         if(progressBar)
         {
             progressBar.updateProgress(percent);


Fix up the scale factors display in the project window.

--- exporter/src/main/as/flump/export/ExportConf.as
+++ exporter/src/main/as/flump/export/ExportConf.as
@@ -63,7 +63,9 @@
         const scaleString :String = (this.scale * 100).toFixed(0) + "%";
         var scaleFactors :String = "";
         for each (var scaleFactor :int in this.scaleFactors) {
-            scaleFactors += ", " + AtlasMold.scaleFactorSuffix(scaleFactor);
+            scaleFactors += ", ";
+            if (scaleFactor == 1) scaleFactors += "@1x";
+            else scaleFactors += AtlasMold.scaleFactorSuffix(scaleFactor);
         }

         return "'" + this.name + "' (" + this.format + ", " + scaleString + scaleFactors + ")";


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
@@ -73,49 +73,6 @@

     //--------------------------------------------------------------------------
     //
-    //  Style-driven properties
-    //
-    //--------------------------------------------------------------------------
-
-    [Bindable("contentBackgroundColorChanged")]
-    [Bindable("dataChange")]
-    /**
-     *  Color of the fill of an item renderer
-     *
-     *  @default 0xFFFFFF
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get contentBackgroundColor():uint
-    {
-        var alternatingColors:Array = getStyle("alternatingItemColors");
-
-        if (alternatingColors && alternatingColors.length > 0)
-        {
-            var idx:int;
-
-            // translate these colors into uints
-            styleManager.getColorNames(alternatingColors);
-
-            return alternatingColors[index % alternatingColors.length];
-        }
-
-        return getStyle("contentBackgroundColor");
-    }
-
-    /**
-     *  @private
-     */
-    public function set contentBackgroundColor(value:uint):void
-    {
-        setStyle("contentBackgroundColor", value);
-    }
-
-    //--------------------------------------------------------------------------
-    //
     //  Private Properties
     //
     //--------------------------------------------------------------------------
@@ -151,40 +108,39 @@

     /**
      *  @private
-     *  storage for the handleHighlightBackground property
+     *  storage for the autoDrawBackground property
      */
-    private var _handleHighlightBackground:Boolean = false;
+    private var _autoDrawBackground:Boolean = false;

     /**
      *  Whether the item renderer should handle drawing the
-     *  selection/highlight background.
+     *  selection/rollOver background.
      *
      *
If set to true, the background for
      *  the item renderer is automatically drawn, and it
      *  depends on the styles that are set (contentBackgroundColor,
      *  alternatingItemColor, rollOverColor,
      *  selectionColor)
-     *  and the state that the item renderer is in (normal,
-     *  selected, or hovered).

+     *  and the state that the item renderer is in.

      *
      *  @default false
      */
-    public function get handleHighlightBackground():Boolean
-    {
-        return _handleHighlightBackground;
-    }
-
-    /**
-     *  @private
-     */
-    public function set handleHighlightBackground(value:Boolean):void
-    {
-        if (_handleHighlightBackground == value)
+    public function get autoDrawBackground():Boolean
+    {
+        return _autoDrawBackground;
+    }
+
+    /**
+     *  @private
+     */
+    public function set autoDrawBackground(value:Boolean):void
+    {
+        if (_autoDrawBackground == value)
             return;

-        _handleHighlightBackground = value;
-
-        if (_handleHighlightBackground)
+        _autoDrawBackground = value;
+
+        if (_autoDrawBackground)
         {
             redrawRequested = true;
             super.$invalidateDisplayList();
@@ -192,36 +148,36 @@
     }

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

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

-        _index = value;
+        _itemIndex = value;
         dispatchEvent(new Event("contentBackgroundColorChanged"));
-        if (handleHighlightBackground)
+        if (autoDrawBackground)
         {
             redrawRequested = true;
             super.$invalidateDisplayList();
@@ -274,7 +230,12 @@
             return;

         _showsCaret = value;
-        setCurrentState(getCurrentRendererState(), playTransitions);
+        setCurrentState(getCurrentRendererState(), playTransitions);
+        if (autoDrawBackground)
+        {
+            redrawRequested = true;
+            super.$invalidateDisplayList();
+        }
     }

     //----------------------------------
@@ -305,7 +266,7 @@
         {
             _selected = value;
             setCurrentState(getCurrentRendererState(), playTransitions);
-            if (handleHighlightBackground)
+            if (autoDrawBackground)
             {
                 redrawRequested = true;
                 super.$invalidateDisplayList();
@@ -483,34 +444,32 @@

         super.styleChanged(styleName);

-        if (allStyles || styleName == "alternatingItemColors")
-        {
-            conditionalEventDispatch("contentBackgroundColorChanged");
-        }
-
-        if (allStyles || styleName == "contentBackgroundColor")
-        {
-            conditionalEventDispatch("contentBackgroundColorChanged");
-        }
-    }
-
-    /**
-     *  @private
-     */
-    override protected function renderBackgroundFill():void
+        if (autoDrawBackground && (allStyles || styleName == "alternatingItemColors" ||
+            styleName == "contentBackgroundColor" || styleName == "rollOverColor" ||
+            styleName == "selectionColor"))
+        {
+            redrawRequested = true;
+            super.$invalidateDisplayList();
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override mx_internal function drawBackground():void
     {
         // if handleHighlightBackground is set to true, we always
         // draw a background and don't need to worry about mouseEnabledWhereTransparent.
-        // However, if it's false, then we should just let super.renderBackgroundFill()
+        // However, if it's false, then we should just let super.drawBackground()
         // do its job.
-        if (!handleHighlightBackground)
-        {
-            super.renderBackgroundFill();
+        if (!autoDrawBackground)
+        {
+            super.drawBackground();
             return;
         }

         // TODO (rfrishbe): Would be good to remove this duplicate code with the
-        // super.renderBackgroundFill() version
+        // super.drawBackground() version
         var w:Number = (resizeMode == ResizeMode.SCALE) ? measuredWidth : unscaledWidth;
         var h:Number = (resizeMode == ResizeMode.SCALE) ? measuredHeight : unscaledHeight;

@@ -534,27 +493,25 @@
                 // translate these colors into uints
                 styleManager.getColorNames(alternatingColors);

-                backgroundColor = alternatingColors[index % alternatingColors.length];
+                backgroundColor = alternatingColors[itemIndex % alternatingColors.length];
             }
-
-            backgroundColor = getStyle("contentBackgroundColor");
+            else
+            {
+                backgroundColor = getStyle("contentBackgroundColor");
+            }
+
         }
         graphics.beginFill(backgroundColor, 1);

-        if (layout && layout.useVirtualLayout)
-            graphics.drawRect(horizontalScrollPosition, verticalScrollPosition, w, h);
+        if (showsCaret)
+        {
+            graphics.lineStyle(1, getStyle("selectionColor"));
+            graphics.drawRect(0.5, 0.5, w-1, h-1);
+        }
         else
         {
-            const tileSize:int = 4096;
-            const maxX:int = Math.round(Math.max(w, contentWidth));
-            const maxY:int = Math.round(Math.max(h, contentHeight));
-            for (var x:int = 0; x < maxX; x += tileSize)
-                for (var y:int = 0; y < maxY; y += tileSize)
-                {
-                    var tileWidth:int = Math.min(maxX - x, tileSize);
-                    var tileHeight:int = Math.min(maxY - y, tileSize);
-                    graphics.drawRect(x, y, tileWidth, tileHeight);
-                }
+            graphics.lineStyle();
+            graphics.drawRect(0, 0, w, h);
         }

         graphics.endFill();
@@ -576,15 +533,6 @@
         addEventListener(MouseEvent.ROLL_OUT, itemRenderer_rollOutHandler);
     }

-    /**
-     *  @private
-     */
-    private function conditionalEventDispatch(eventName:String):void
-    {
-        if (hasEventListener(eventName))
-           dispatchEvent(new Event(eventName));
-    }
-
     private function anyButtonDown(event:MouseEvent):Boolean
     {
         var type:String = event.type;
@@ -601,7 +549,7 @@
         {
             hovered = true;
             setCurrentState(getCurrentRendererState(), playTransitions);
-            if (handleHighlightBackground)
+            if (autoDrawBackground)
             {
                 redrawRequested = true;
                 super.$invalidateDisplayList();
@@ -617,7 +565,7 @@
     {
         hovered = false;
         setCurrentState(getCurrentRendererState(), playTransitions);
-        if (handleHighlightBackground)
+        if (autoDrawBackground)
         {
             redrawRequested = true;
             super.$invalidateDisplayList();


Transferred from the Adobe Open Source Subversion Repository

Revision: 5355
Author:   chaase@adobe.com
Date:     2009-03-17T20:03:28.040136Z

Log Message:
-----------
Minor fixes to deal with corner cases where developers try to play keyframe-less MotionPaths or call getValue() outside of an effect actually playing.

QE Notes: None
Doc Notes: None
Bugs: SDK-19964, SDK-19966
Reviewer: Jason
Testing: checkintests, Mustella Effects, ListDataEffects, mx/effects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
@@ -22,8 +22,6 @@
 import mx.effects.Animation;
 import mx.effects.AnimationProperty;
 import mx.effects.EffectInstance;
-import spark.effects.KeyFrame;
-import spark.effects.MotionPath;
 import mx.effects.interpolation.IEaser;
 import mx.effects.interpolation.IInterpolator;
 import mx.effects.interpolation.NumberInterpolator;
@@ -32,6 +30,9 @@
 import mx.resources.IResourceManager;
 import mx.resources.ResourceManager;
 import mx.styles.IStyleClient;
+
+import spark.effects.KeyFrame;
+import spark.effects.MotionPath;

 use namespace mx_internal;

@@ -414,8 +415,10 @@
             // TODO (chaase): should we push this keyframe-init logic
             // into the MotionPath class instead?

+            var keyframes:Array = animationProperties[i].keyframes;
+            if (!keyframes)
+                continue;
             // Create an initial (time==0) value if necessary
-            var keyframes:Array = animationProperties[i].keyframes;
             if (keyframes[0].time > 0)
             {
                 keyframes.splice(0, 0, new KeyFrame(0, null));


Added shift function to ManagedArray.

Added shift function to ManagedArray.

--- src/Modi/ManagedArray.as
+++ src/Modi/ManagedArray.as
@@ -76,7 +76,25 @@

 			return object;
 		}
-
+
+        public function shift():ManagedObject
+        {
+            var object:ManagedObject = null;
+            var length:int = _data.length;
+
+            if (length > 0)
+            {
+                object = _data[0];
+
+                if (!remove(object))
+                {
+                    object = null;
+                }
+            }
+
+            return object;
+        }
+
 		public function remove(object:ManagedObject):Boolean
 		{
 			var index:int = _data.indexOf(object);


Transferred from the Adobe Open Source Subversion Repository

Revision: 21382
Author:   smgilson@adobe.com
Date:     2011-06-14T16:34:50.669994Z

Log Message:
-----------
Replace "*" characters in ASDoc comment with the hex equivalent

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

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as

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

--- frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as
+++ frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as
@@ -128,7 +128,7 @@
      *
      *  @param domains One or more strings or URLRequest objects that name
      *  the domains from which you want to allow access.
-     *  You can specify the special domain "*" to allow access from all domains.
+     *  You can specify the special domain "*" to allow access from all domains.
      *
      *  @see flash.system.Security#allowDomain()
      *
@@ -150,7 +150,7 @@
      *
      *  @param domains One or more strings or URLRequest objects that name
      *  the domains from which you want to allow access.
-     *  You can specify the special domain "*" to allow access from all domains.
+     *  You can specify the special domain "*" to allow access from all domains.
      *
      *  @see flash.system.Security#allowInsecureDomain()
      *


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5924
Author:   chaase@adobe.com
Date:     2009-04-03T23:23:45.166425Z

Log Message:
-----------
This fixes the use of constraints in effects. Basically, it removes the 'adjustConstraints' property that was added in Flex4 and adds a new 'disableConstraints' flag which disables constraints during the effect (default false).

QE Notes: Issues in spark/effects/AnimateTransform* directories, rename-related, Matt chasing down
Doc Notes: none
Bugs:
Reviewer: Glenn
tests: checkintests, mustella spark/effects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.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/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransform.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransform.as
@@ -91,6 +91,28 @@
 public class AnimateTransform extends Animate
 {
     include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private static var AFFECTED_PROPERTIES:Array =
+        ["translationX", "translationY", "translationZ",
+         "rotationX", "rotationY", "rotationZ",
+         "scaleX", "scaleY", "scaleZ",
+         "left", "right", "top", "bottom",
+         "horizontalCenter", "verticalCenter"];
+
+    /**
+     *  @private
+     */
+    private static var RELEVANT_STYLES:Array =
+        ["left", "right", "top", "bottom", "horizontalCenter", "verticalCenter"];

     //--------------------------------------------------------------------------
     //
@@ -544,12 +566,21 @@
         }
     }

+    /**
+     *  @private
+     */
     override public function getAffectedProperties():Array /* of String */
     {
-        return ["translationX", "translationY", "translationZ",
-            "rotationX", "rotationY", "rotationZ",
-            "scaleX", "scaleY", "scaleZ"];
-    }
+        return AFFECTED_PROPERTIES;
+    }
+
+    /**
+     *  @private
+     */
+    override public function get relevantStyles():Array /* of String */
+    {
+        return RELEVANT_STYLES;
+    }

     /**
      * Inserts a keyframe into an existing set of keyframes according to


Transferred from the Adobe Open Source Subversion Repository

Revision: 20678
Author:   smgilson@adobe.com
Date:     2011-03-08T16:12:39.807806Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as
+++ frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as
@@ -491,9 +491,17 @@
     //--------------------------------------------------------------------------

     /**
-     *  Lays out the elements of the layoutTarget using the current
+     *  Lays out the elements of the layout target using the current
      *  widths and heights of the columns and rows. Used by FormItemLayout
      *  after setting new column widths to lay elements using those new widths.
+     *
+     *  @param unscaledWidth Specifies the width of the component, in pixels,
+     *  in the component's coordinates, regardless of the value of the
+     *  scaleX property of the component.
+     *
+     *  @param unscaledHeight Specifies the height of the component, in pixels,
+     *  in the component's coordinates, regardless of the value of the
+     *  scaleY property of the component.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Flash: do not hang on not images having image extensions.

--- src/flash/plupload/src/com/mxi/image/Image.as
+++ src/flash/plupload/src/com/mxi/image/Image.as
@@ -95,10 +95,12 @@
 				_image = new PNG(_source);
 			}

-			_info = _image.info();
-			if (_info) {
-				_info['type'] = getQualifiedClassName(_image).replace(/^.*::/, '');
-			}
+			if (_image) {
+				_info = _image.info();
+				if (_info) {
+					_info['type'] = getQualifiedClassName(_image).replace(/^.*::/, '');
+				}
+			}
 			return _info;
 		}


Fix date

Fix date

--- lib/src/com/amanitadesign/steam/FriendConstants.as
+++ lib/src/com/amanitadesign/steam/FriendConstants.as
@@ -2,7 +2,7 @@
  *  FriendConstants.as
  *  This file is part of FRESteamWorks.
  *
- *  Created by Ventero <http://github.com/Ventero> on 2013-04-24
+ *  Created by Ventero <http://github.com/Ventero> on 2013-05-17
  *  Copyright (c) 2013 Level Up Labs, LLC. All rights reserved.
  */


Add all param to setDefaultVolume() for set volume to all or not

--- Impetus.swf/Impetus.as
+++ Impetus.swf/Impetus.as
@@ -26,9 +26,19 @@
             }
         }

-        public function setDefaultVolume(volume:int):void
+        public function setDefaultVolume(volume:int, all:boolean = false):void
         {
             this.defaultVolume = volume;
+
+            if(all)
+            {
+                var len:int = this.sounds.length;
+
+                for(var i:int = 0; i < len; i++)
+                {
+                    this.sounds[i].setVolume(volume);
+                }
+            }
         }

         public function getSound(url:String):ImpetusSound


Added addListeners(), rename event handler functions.

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

--- src/as/com/threerings/flash/MediaContainer.as
+++ src/as/com/threerings/flash/MediaContainer.as
@@ -238,13 +238,9 @@
         // create our loader and set up some event listeners
         var loader :Loader = new Loader();
         _media = loader;
-        var info :LoaderInfo = loader.contentLoaderInfo;
-        info.addEventListener(Event.COMPLETE, loadingComplete);
-        info.addEventListener(Event.INIT, handleInit);
-        info.addEventListener(IOErrorEvent.IO_ERROR, loadError);
-        info.addEventListener(ProgressEvent.PROGRESS, loadProgress);
         addChildAt(loader, 0);

+        addListeners(loader.contentLoaderInfo);
         return loader;
     }

@@ -499,20 +495,31 @@
     }

     /**
+     * Add our listeners to the LoaderInfo object.
+     */
+    protected function addListeners (info :LoaderInfo) :void
+    {
+        info.addEventListener(Event.COMPLETE, handleComplete);
+        info.addEventListener(Event.INIT, handleInit);
+        info.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
+        info.addEventListener(ProgressEvent.PROGRESS, handleProgress);
+    }
+
+    /**
      * Remove our listeners from the LoaderInfo object.
      */
     protected function removeListeners (info :LoaderInfo) :void
     {
-        info.removeEventListener(Event.COMPLETE, loadingComplete);
+        info.removeEventListener(Event.COMPLETE, handleComplete);
         info.removeEventListener(Event.INIT, handleInit);
-        info.removeEventListener(IOErrorEvent.IO_ERROR, loadError);
-        info.removeEventListener(ProgressEvent.PROGRESS, loadProgress);
+        info.removeEventListener(IOErrorEvent.IO_ERROR, handleIOError);
+        info.removeEventListener(ProgressEvent.PROGRESS, handleProgress);
     }

     /**
      * A callback to receive IO_ERROR events.
      */
-    protected function loadError (event :IOErrorEvent) :void
+    protected function handleIOError (event :IOErrorEvent) :void
     {
         stoppedLoading();
         setupBrokenImage(-1, -1);
@@ -521,7 +528,7 @@
     /**
      * A callback to receive PROGRESS events.
      */
-    protected function loadProgress (event :ProgressEvent) :void
+    protected function handleProgress (event :ProgressEvent) :void
     {
         updateLoadingProgress(event.bytesLoaded, event.bytesTotal);
         var info :LoaderInfo = (event.target as LoaderInfo);
@@ -566,7 +573,7 @@
     /**
      * Callback function to receive COMPLETE events for swfs or images.
      */
-    protected function loadingComplete (event :Event) :void
+    protected function handleComplete (event :Event) :void
     {
         var info :LoaderInfo = (event.target as LoaderInfo);
         removeListeners(info);


Moved stuff around for easy debug reading

--- src/main/flex/redsupport313/SOUpdateTester.as
+++ src/main/flex/redsupport313/SOUpdateTester.as
@@ -74,16 +74,25 @@
                 var changeObj:Object = event.changeList[cl];
                 switch (changeObj.code) {
                     case "clear":
-                        log("Clear: " + changeObj.name);
+                        log("Clear: " + (changeObj.name !== undefined ? changeObj.name : ""));
                         break;
                     case "success":
                         log("Success: " + changeObj.name);
+						log("Value: " + sharedObj.data[changeObj.name]);
                         break;
                     case "change":
                         log("Change: " + changeObj.name);
+						log("Value: " + sharedObj.data[changeObj.name]);
+						if (changeObj.name === "object1" && sharedObj.data[changeObj.name]) {
+							log(sharedObj.data["object1"].random1 + " " + sharedObj.data["object1"].random2);
+						}
+						if (changeObj.name === "attributeMap" && sharedObj.data[changeObj.name]) {
+							//log(sharedObj.data["attributeMap"]);
+							log("Key1: " + sharedObj.data["attributeMap"].key1);
+							log("Key2: " + sharedObj.data["attributeMap"].key2);
+						}
                         break;
                 }
-                log("Value: " + sharedObj.data[changeObj.name]);
             }
             /*
             for (var i:Object in event.changeList) {
@@ -96,12 +105,6 @@
                 }
             }
             */
-			if (sharedObj.data["object1"]) {
-				log(sharedObj.data["object1"].random1 + " " + sharedObj.data["object1"].random2);
-			}
-			if (sharedObj.data["attributeMap"]) {
-				log(sharedObj.data["attributeMap"]);
-			}

 		}


fix file not found error when using Adobe AIR -arch option

--- src/com/as3mxml/asconfigc/AIROptionsParser.as
+++ src/com/as3mxml/asconfigc/AIROptionsParser.as
@@ -137,6 +137,7 @@
 			}
 			//DEBUGGER_CONNECTION_OPTIONS end

+			//iOS options begin
 			if(overridesOptionForPlatform(options, AIROptions.SAMPLER, platform))
 			{
 				result.push("-" + AIROptions.SAMPLER);
@@ -149,11 +150,18 @@
 			{
 				setBooleanValueWithoutAssignment(AIROptions.EMBED_BITCODE, options[platform][AIROptions.EMBED_BITCODE], result);
 			}
-
+			//iOS options end
+
+			//Android options begin
 			if(overridesOptionForPlatform(options, AIROptions.AIR_DOWNLOAD_URL, platform))
 			{
 				setValueWithoutAssignment(AIROptions.AIR_DOWNLOAD_URL, options[platform][AIROptions.AIR_DOWNLOAD_URL], result);
 			}
+			if(overridesOptionForPlatform(options, AIROptions.ARCH, platform))
+			{
+				setValueWithoutAssignment(AIROptions.ARCH, options[platform][AIROptions.ARCH], result);
+			}
+			//Android options end

 			//NATIVE_SIGNING_OPTIONS begin
 			//these are *mobile* signing options only
@@ -208,10 +216,6 @@
 			if(overridesOptionForPlatform(options, AIROptions.PLATFORMSDK, platform))
 			{
 				setPathValueWithoutAssignment(AIROptions.PLATFORMSDK, options[platform][AIROptions.PLATFORMSDK], result);
-			}
-			if(overridesOptionForPlatform(options, AIROptions.ARCH, platform))
-			{
-				setValueWithoutAssignment(AIROptions.ARCH, options[platform][AIROptions.ARCH], result);
 			}

 			//FILE_OPTIONS begin


chromeless: set framerate to 60fps

chromeless: set framerate to 60fps

--- src/org/mangui/chromeless/ChromelessPlayer.as
+++ src/org/mangui/chromeless/ChromelessPlayer.as
@@ -492,6 +492,8 @@
             var available : Boolean = (event.availability == StageVideoAvailability.AVAILABLE);
             _hls = new HLS();
             _hls.stage = stage;
+            // set framerate to 60 fps
+            stage.frameRate = 60;
             _hls.addEventListener(HLSEvent.PLAYBACK_COMPLETE, _completeHandler);
             _hls.addEventListener(HLSEvent.ERROR, _errorHandler);
             _hls.addEventListener(HLSEvent.FRAGMENT_LOADED, _fragmentLoadedHandler);


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

--- frameworks/projects/advancedgrids/src/mx/events/AdvancedDataGridEventReason.as
+++ frameworks/projects/advancedgrids/src/mx/events/AdvancedDataGridEventReason.as
@@ -0,0 +1,94 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.events
+{
+
+/**
+ *  The AdvancedDataGridEventReason class defines constants for the values
+ *  of the reason property of a AdvancedDataGridEvent object
+ *  when the type property is itemEditEnd.
+ *
+ *  @see mx.events.AdvancedDataGridEvent
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public final class AdvancedDataGridEventReason
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Specifies that the user cancelled editing and that they do not
+     *  want to save the edited data. Even if you call the preventDefault() method
+     *  from within your event listener for the itemEditEnd event,
+     *  Flex still calls the destroyItemEditor() editor to close the editor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const CANCELLED:String = "cancelled";
+
+    /**
+     *  Specifies that the list control lost focus, was scrolled,
+     *  or is somehow in a state where editing is not allowed.
+     *  Even if you call the preventDefault() method from within your event
+     *  listener for the itemEditEnd event,
+     *  Flex still calls the destroyItemEditor() editor to close the editor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const OTHER:String = "other";
+
+    /**
+     *  Specifies that the user moved focus to a new column in the same row.
+     *  Within an event listener, you can let the focus change occur, or prevent it.
+     *  For example, your event listener might check that the user entered a valid value
+     *  for the item currently being edited. If not, you can prevent the user from moving
+     *  to a new item by calling the preventDefault() method.
+     *  In this case, the item editor remains open, and the user continues to edit
+     *  the current item. If you call the preventDefault() method and
+     *  also call the destroyItemEditor() method, you block the move to the new item,
+     *  but the item editor closes.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const NEW_COLUMN:String = "newColumn";
+
+    /**
+     *  Specifies that the user moved focus to a new row.
+     *  You handle this reason much like you handle NEW_COLUMN.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const NEW_ROW:String = "newRow";
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 15317
Author:   chaase@adobe.com
Date:     2010-04-09T22:21:37.322021Z

Log Message:
-----------
Fixed simple bug in Sequence. Calling stop() didn't actually stop the currently-running child effect (though it did stop the Sequence overall and any later child effects). There was a mis-ordering in the initialization of an array and checking the value of that array. Now the code matches what is done in SequenceInstance.end(), which works correctly.

QE notes: None
Doc notes: None
Bugs: sdk-25691
Reviewer: Jason
Tests run: checkintests, Mustella mx/effects/Sequence
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as
@@ -386,9 +386,9 @@
             activeEffectQueue = null;

             // Call stop on the currently playing set
+            var currentInstances:Array = queueCopy[currentSetIndex];
             if (currentInstances)
             {
-                var currentInstances:Array = queueCopy[currentSetIndex];
                 var currentCount:int = currentInstances.length;

                 for (var i:int = 0; i < currentCount; i++)


Transferred from the Adobe Open Source Subversion Repository

Revision: 11467
Author:   hmuller@adobe.com
Date:     2009-11-05T16:31:29.483028Z

Log Message:
-----------
Corrected ButtonBarBase drawFocus() method, set the depth of the ItemRenderer at caretIndex, not just the showsCaret flag.

QE notes:
Doc notes:
Bugs: sdk-24046
Reviewer: Alex
Tests run: ButtonBar Mustella tests pass
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as
@@ -214,9 +214,13 @@
      */
     override public function drawFocus(isFocused:Boolean):void
     {
-        const renderer:IItemRenderer = getItemRenderer(caretIndex) as IItemRenderer;
+        const renderer:IVisualElement = getItemRenderer(caretIndex);
         if (renderer)
-            renderer.showsCaret = isFocused;
+        {
+            renderer.depth = (isFocused) ? 1 : 0;
+            if (renderer is IItemRenderer)
+                IItemRenderer(renderer).showsCaret = isFocused;
+        }
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

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

--- frameworks/projects/rpc/src/RPCClasses.as
+++ frameworks/projects/rpc/src/RPCClasses.as
@@ -0,0 +1,60 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package
+{
+
+/**
+ *  @private
+ *  This class is used to link additional classes into rpc.swc
+ *  beyond those that are found by dependecy analysis starting
+ *  from the classes specified in manifest.xml.
+ */
+internal class RPCClasses
+{
+import mx.messaging.Consumer; Consumer;
+import mx.messaging.MultiTopicProducer; MultiTopicProducer;
+import mx.messaging.MultiTopicConsumer; MultiTopicConsumer;
+import mx.messaging.config.ServerConfig; ServerConfig;
+import mx.messaging.channels.HTTPChannel; HTTPChannel;
+import mx.messaging.channels.AMFChannel; AMFChannel;
+import mx.messaging.channels.StreamingAMFChannel; StreamingAMFChannel;
+import mx.messaging.channels.StreamingHTTPChannel; StreamingHTTPChannel;
+import mx.messaging.channels.SecureHTTPChannel; SecureHTTPChannel;
+import mx.messaging.channels.SecureAMFChannel; SecureAMFChannel;
+import mx.messaging.channels.SecureStreamingAMFChannel; SecureStreamingAMFChannel;
+import mx.messaging.channels.SecureStreamingHTTPChannel; SecureStreamingHTTPChannel;
+import mx.messaging.management.Attribute; Attribute;
+import mx.messaging.management.ObjectName; ObjectName;
+import mx.messaging.management.ObjectInstance; ObjectInstance;
+import mx.messaging.management.MBeanInfo; MBeanInfo;
+import mx.messaging.management.MBeanFeatureInfo; MBeanFeatureInfo;
+import mx.messaging.management.MBeanAttributeInfo; MBeanAttributeInfo;
+import mx.messaging.management.MBeanOperationInfo; MBeanOperationInfo;
+import mx.messaging.management.MBeanParameterInfo; MBeanParameterInfo;
+import mx.messaging.management.MBeanConstructorInfo; MBeanConstructorInfo;
+import mx.messaging.messages.AcknowledgeMessageExt; AcknowledgeMessageExt;
+import mx.messaging.messages.AsyncMessageExt; AsyncMessageExt;
+import mx.rpc.Responder; Responder;
+import mx.rpc.remoting.mxml.RemoteObject; RemoteObject;
+import mx.rpc.soap.mxml.WebService; WebService;
+import mx.rpc.http.mxml.HTTPService; HTTPService;
+import mx.rpc.AsyncToken; AsyncToken;
+import mx.rpc.AsyncRequest; AsyncRequest;
+import mx.rpc.AsyncResponder; AsyncResponder;
+import mx.rpc.xml.NamespaceUtil; NamespaceUtil;
+import mx.utils.HashUtil; HashUtil;
+import mx.utils.HexDecoder; HexDecoder;
+import mx.utils.HexEncoder; HexEncoder;
+import mx.utils.Translator; Translator;
+}
+
+}


Fixed minor DCurrent bug (didnt check that wires existed)

--- src/Displays/DCurrent.as
+++ src/Displays/DCurrent.as
@@ -46,7 +46,7 @@

 			if (!moused)
 				for each (var dWire:DWire in dWires)
-					if (!dWire.outsideScreen() && dWire.overlapsPoint(U.mouseFlxLoc)) {
+					if (dWire.wire.exists && !dWire.outsideScreen() && dWire.overlapsPoint(U.mouseFlxLoc)) {
 						buildDisplay(moused = dWire, carrier = dWire.wire);
 						break;
 					}


removed arrow hints before tut 2 beaten

removed arrow hints before tut 2 beaten

--- src/Displays/Scroller.as
+++ src/Displays/Scroller.as
@@ -15,7 +15,8 @@
 			super();

 			scrollSpeed = new Point;
-			add(new ArrowHelper);
+			if (U.tutorialState >= U.TUT_BEAT_TUT_2)
+				add(new ArrowHelper);
 		}

 		override public function update():void {


Some doc comments on memory APIs

Some doc comments on memory APIs

--- shell/shell_toplevel.as
+++ shell/shell_toplevel.as
@@ -83,8 +83,14 @@
 		private native static function getArgv():Array
 		public static const argv:Array = getArgv();
 		public native static function readLine():String;
+
+		// Amount of real memory we've aqcuired from the OS
 		public native static function get totalMemory():Number;
+
+		// Part of totalMemory we aren't using
 		public native static function get freeMemory():Number;
+
+		// process wide size of resident private memory
 		public native static function get privateMemory():Number;

 		// function exists solely to test native-methods with custom namespaces


registering IDataSource implementations

registering IDataSource implementations

--- WeaveJS/src/WeaveJS.as
+++ WeaveJS/src/WeaveJS.as
@@ -15,6 +15,7 @@
 	import weavejs.api.core.ISessionManager;
 	import weavejs.api.data.IAttributeColumnCache;
 	import weavejs.api.data.ICSVParser;
+	import weavejs.api.data.IDataSource;
 	import weavejs.api.data.IQualifiedKeyManager;
 	import weavejs.api.data.IStatisticsCache;
 	import weavejs.api.net.IURLRequestUtils;
@@ -30,6 +31,14 @@
 	import weavejs.data.CSVParser;
 	import weavejs.data.StatisticsCache;
 	import weavejs.data.key.QKeyManager;
+	import weavejs.data.source.CKANDataSource;
+	import weavejs.data.source.CSVDataSource;
+	import weavejs.data.source.CensusDataSource;
+	import weavejs.data.source.DBFDataSource;
+	import weavejs.data.source.ForeignDataMappingTransform;
+	import weavejs.data.source.GeoJSONDataSource;
+	import weavejs.data.source.GroupedDataTransform;
+	import weavejs.data.source.WeaveDataSource;
 	import weavejs.geom.SolidFillStyle;
 	import weavejs.geom.SolidLineStyle;
 	import weavejs.net.URLRequestUtils;
@@ -61,8 +70,6 @@
 				'weavejs.util'
 			);

-			WeaveAPI.ClassRegistry.registerImplementation(ILinkableHashMap, LinkableHashMap);
-			WeaveAPI.ClassRegistry.registerImplementation(ILinkableDynamicObject, LinkableDynamicObject);
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(IURLRequestUtils, URLRequestUtils);
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(IAttributeColumnCache, AttributeColumnCache);
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(ISessionManager, SessionManager);
@@ -73,14 +80,25 @@
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(IEditorManager, EditorManager);
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(ICSVParser, CSVParser);
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(ILocale, Locale);
+
+			WeaveAPI.ClassRegistry.registerImplementation(ILinkableHashMap, LinkableHashMap);
+			WeaveAPI.ClassRegistry.registerImplementation(ILinkableDynamicObject, LinkableDynamicObject);
+
+			// temporary hack
+			//TODO - traverse weavejs namespace and register all classes with all their interfaces
+			var IDataSource_File:Class = IDataSource;
+			var IDataSource_Service:Class = IDataSource;
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource_File, CSVDataSource);
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource_File, DBFDataSource);
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource_File, GeoJSONDataSource);
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource_Service, WeaveDataSource);
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource_Service, CKANDataSource);
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource_Service, CensusDataSource);
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource, ForeignDataMappingTransform);
+			WeaveAPI.ClassRegistry.registerImplementation(IDataSource, GroupedDataTransform);
+
 			Weave.registerClass("ExtendedFillStyle", SolidFillStyle);
 			Weave.registerClass("ExtendedLineStyle", SolidLineStyle);
-
-			// TEMPORARY HACK - omit keySet filter
-//			var joinColumns:Function = ColumnUtils.joinColumns;
-//			ColumnUtils['joinColumns'] = function(columns:Array, dataType:Object = null, allowMissingData:Boolean = false):Array {
-//				return joinColumns.call(ColumnUtils, columns, dataType, allowMissingData);
-//			};

 			// TEMPORARY
 			//WeaveTest.test(weave);


FEC-39 #time 5h #comment support skipoffset (vast3)

--- plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
+++ plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
@@ -38,7 +38,6 @@
 	import org.osmf.vast.model.VAST2Translator;
 	import org.osmf.vast.model.VAST3Translator;
 	import org.osmf.vast.model.VASTDataObject;
-	import org.osmf.vast.model.VASTDocument;
 	import org.osmf.vast.model.VASTUrl;
 	import org.osmf.vpaid.elements.VPAIDElement;
 	import org.osmf.vpaid.metadata.VPAIDMetadata;
@@ -381,11 +380,56 @@

 		private function onAdDurationReceived (e : TimeEvent) : void
 		{
-			var sequenceProxy : Object = facade.retrieveProxy("sequenceProxy");
+			var sequenceProxy : SequenceProxy = facade.retrieveProxy(SequenceProxy.NAME) as SequenceProxy;
 			if (e.time > 0 && !isNaN(e.time))
 			{
-				sequenceProxy["vo"]["timeRemaining"] = Math.round(e.time);
-				sequenceProxy["vo"]["isAdLoaded"] = true;
+				sequenceProxy.vo.timeRemaining = Math.round(e.time);
+				sequenceProxy.vo.isAdLoaded = true;
+				//check for skipoffset
+				var curVast:VASTDataObject = getCurrentVastObject();
+				if (curVast.vastVersion == VASTDataObject.VERSION_2_0)
+				{
+					var skipOffsetInSecs:int;
+					var skipOffset:String = curVast["skipOffset"];
+					//TODO: check this with midrolls and vpaid
+					if (skipOffset)
+					{
+						//parse HH:MM:SS skipoffset format
+						if (skipOffset.indexOf(":")!=-1)
+						{
+							var timesArr:Array = skipOffset.split(":");
+							if (timesArr.length!=3)
+								trace ("VastLinearAdProxy:: ignore skipoffset - invalid format");
+							else {
+								var multi:int = 1;
+								for (var i:int = timesArr.length - 1; i>=0; i--)
+								{
+									skipOffsetInSecs += parseInt(timesArr[i]) * multi;
+									multi *= 60;
+								}
+							}
+
+						}
+						else if (skipOffset.indexOf("%")!=-1) //parse n% skipoffset format
+						{
+							var percent:Number = parseInt(skipOffset.substring(0, skipOffset.indexOf("%"))) / 100;
+							skipOffsetInSecs = sequenceProxy.vo.timeRemaining * percent;
+						}
+						else
+							trace ("VastLinearAdProxy:: ignore skipoffset - unknown format");
+					}
+					if (skipOffsetInSecs)
+					{
+						sequenceProxy.vo.isAdSkip = false;
+						sequenceProxy.vo.skipOffsetRemaining = skipOffsetInSecs;
+						var skipTimer:Timer = new Timer(1000, skipOffsetInSecs);
+						skipTimer.addEventListener(TimerEvent.TIMER, onSkipTimer);
+						skipTimer.addEventListener(TimerEvent.TIMER_COMPLETE, enableSkip);
+						skipTimer.start();
+					}
+				}
+
+
 				if (!(((_playingAd as VASTTrackingProxyElement).proxiedElement as ProxyElement).proxiedElement is VPAIDElement))
 					(e.target as MediaPlayer).removeEventListener(TimeEvent.DURATION_CHANGE, onAdDurationReceived );
 				else if (e.time <= 1)
@@ -393,6 +437,17 @@
 					(e.target as MediaPlayer).removeEventListener(TimeEvent.DURATION_CHANGE, onAdDurationReceived );
 				}
 			}
+		}
+
+		private function onSkipTimer(e:TimerEvent):void {
+			(facade.retrieveProxy(SequenceProxy.NAME) as SequenceProxy).vo.skipOffsetRemaining = (e.target as Timer).repeatCount - (e.target as Timer).currentCount;
+		}
+
+		private function enableSkip(e:Event):void
+		{
+			e.target.removeEventListener(TimerEvent.TIMER, onSkipTimer);
+			e.target.removeEventListener(TimerEvent.TIMER_COMPLETE, enableSkip);
+			(facade.retrieveProxy(SequenceProxy.NAME) as SequenceProxy).vo.isAdSkip = true;
 		}

 		/**


removed trace statements

removed trace statements

--- WeaveAPI/src/JavaScript.as
+++ WeaveAPI/src/JavaScript.as
@@ -610,11 +610,6 @@
 				if (backslashNeedsEscaping && appliedCode.indexOf('\\') >= 0)
 					appliedCode = appliedCode.split('\\').join('\\\\');

-				trace('---');
-				trace(evalFunc);
-				trace(appliedCode);
-				trace(pValues);
-
 				result = ExternalInterface.call(evalFunc, appliedCode, pValues);

 				// parse stringified results


Transferred from the Adobe Open Source Subversion Repository

Revision: 22032
Author:   chiedozi@adobe.com
Date:     2011-08-16T21:08:55.666603Z

Log Message:
-----------
ViewNavigator automatically register's the class aliases for NavigationStack and ViewDescriptor to support PersistenceManager

QE notes:
Doc notes:
Bugs: SDK-31165
Reviewer: Tom
Tests run: checkintests, mustella-mobile
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as
@@ -329,6 +329,12 @@
      *  of the callout when it is visible.  The navigator inside the callout
      *  will be invisible after the callout is closed.

      *
+     *
After closing the callout, the navigator that was shown will remain
+     *  invisible unless autoHideFirstViewNavigator is true
+     *  and the device orientation is landscape.  In all other cases, the
+     *  visibility of the first navigator will need to be set to true
+     *  to make it visible again.

+     *
      *  @langversion 3.0
      *  @playerversion AIR 3
      *  @productversion Flex 4.5.2


Now when logging is disabled, all unsaved changes are discarded during undo/redo.

--- WeaveCore/src/weave/core/SessionStateLog.as
+++ WeaveCore/src/weave/core/SessionStateLog.as
@@ -218,6 +218,12 @@
 		 */
 		private function saveDiff(immediately:Boolean = false):void
 		{
+			if (!enableLogging.value)
+			{
+				_savePending = false;
+				return;
+			}
+
 			var currentTime:int = getTimer();

 			// remember how long it's been since the last synchronization
@@ -341,6 +347,15 @@
 				var combine:Boolean = stepsRemaining > 2;
 				var baseDiff:Object = null;
 				getCallbackCollection(_subject).delayCallbacks();
+				// when logging is disabled, revert to previous state before applying diffs
+				if (!enableLogging.value)
+				{
+					var state:Object = WeaveAPI.SessionManager.getSessionState(_subject);
+					// baseDiff becomes the change that needs to occur to get back to the previous state
+					baseDiff = WeaveAPI.SessionManager.computeDiff(state, _prevState);
+					if (baseDiff != null)
+						combine = true;
+				}
 				while (stepsRemaining-- > 0)
 				{
 					if (delta < 0)
@@ -358,10 +373,16 @@
 					if (debug)
 						trace('apply ' + (delta < 0 ? 'undo' : 'redo'), logEntry.id + ':', ObjectUtil.toString(diff));

+					if (stepsRemaining == 0 && enableLogging.value)
+					{
+						// remember the session state right before applying the last step so we can rewrite the history if necessary
+						_prevState = WeaveAPI.SessionManager.getSessionState(_subject);
+					}
+
 					if (combine)
 					{
 						baseDiff = WeaveAPI.SessionManager.combineDiff(baseDiff, diff);
-						if (stepsRemaining == 1)
+						if (stepsRemaining <= 1)
 						{
 							WeaveAPI.SessionManager.setSessionState(_subject, baseDiff, false);
 							combine = false;
@@ -369,9 +390,6 @@
 					}
 					else
 					{
-						// remember the session state right before applying the last step
-						if (stepsRemaining == 0)
-							_prevState = WeaveAPI.SessionManager.getSessionState(_subject);
 						WeaveAPI.SessionManager.setSessionState(_subject, diff, false);
 					}

@@ -386,6 +404,8 @@

 				_undoActive = delta < 0 && _savePending;
 				_redoActive = delta > 0 && _savePending;
+				if (!_savePending)
+					_prevState = WeaveAPI.SessionManager.getSessionState(_subject);
 				getCallbackCollection(this).triggerCallbacks();
 			}
 		}


For now, detect skewing and warn that it isn't supported.

--- exporter/src/main/as/flump/xfl/XflKeyframe.as
+++ exporter/src/main/as/flump/xfl/XflKeyframe.as
@@ -70,6 +70,12 @@
             p = rewound.transformPoint(new Point(1, 1));
             kf.scaleX = p.x;
             kf.scaleY = p.y;
+
+            var skewX :Number = Math.atan(rewound.c);
+            var skewY :Number = Math.atan(rewound.b);
+            if (Math.abs(skewX) > 0.0001 || Math.abs(skewY) > 0.0001) {
+                lib.addError(kf, ParseError.WARN, "Skewing is not supported");
+            }
         }

         // Read the pivot point


295 functionized the splitting of class names in ReflectUtil

--- raw/src/org/yellcorp/lib/core/ReflectUtil.as
+++ raw/src/org/yellcorp/lib/core/ReflectUtil.as
@@ -29,29 +29,25 @@

     public static function classInDotNotation(className:String):String
     {
-        var colons:int = className.lastIndexOf("::");
-        if (colons >= 0)
-        {
-            return className.substr(0, colons) + "." +
-                   className.substr(colons + 2);
-        }
-        else
-        {
-            return className;
-        }
+        return replaceLast(className, "::", ".");
     }

     public static function classInColonNotation(className:String):String
     {
-        var dot:int = className.lastIndexOf(".");
-        if (dot >= 0)
+        return replaceLast(className, ".", "::");
+    }
+
+    private static function replaceLast(string:String, from:String, to:String):String
+    {
+        var delim:int = string.lastIndexOf(from);
+        if (delim >= 0)
         {
-            return className.substr(0, dot) + "::" +
-                   className.substr(dot + 1);
+            return string.substr(0, delim) + to +
+                   string.substr(delim + from.length);
         }
         else
         {
-            return className;
+            return string;
         }
     }
 }


Refactored FlashBuilderPrinter failure message generation so error and failures run through the same method.

--- as3/src/asunit4/printers/FlashBuilderPrinter.as
+++ as3/src/asunit4/printers/FlashBuilderPrinter.as
@@ -34,32 +34,18 @@

 		public function addTestResult(result:IFreeTestResult):void {
 			var failure:ITestFailure;
+
 			for each (failure in result.errors) {
-				var xmlMessage:String = createErrorMessage(
-					failure.failedMethod,
-					getQualifiedClassName(failure.failedTest),
-					getQualifiedClassName(failure.thrownException),
-					failure.exceptionMessage,
-					failure.thrownException.getStackTrace());
-				//trace('******** sending failedMethod: ' + failure.failedMethod);
-				sendMessage(xmlMessage);
+				sendMessage(getFailureMessage(failure));
 			}

 			for each (failure in result.failures) {
-				var xmlMessage2:String = createFailureMessage(
-					failure.failedMethod,
-					getQualifiedClassName(failure.failedTest),
-					getQualifiedClassName(failure.thrownException),
-					failure.exceptionMessage,
-					failure.thrownException.getStackTrace());
-				//trace('******** sending failedMethod: ' + failure.failedMethod);
-				sendMessage(xmlMessage2);
+				sendMessage(getFailureMessage(failure));
 			}

-			//trace('######  result.successes: ' + result.successes);
 			for each (var success:ITestSuccess in result.successes) {
-				var xmlMessageSuccess:String = "<testCase name='" + success.method + "' testSuite='" + getQualifiedClassName(success.test) + "' status='success'/>";
-				//trace('->->->->->->->    xmlMessageSuccess: ' + xmlMessageSuccess);
+				var xmlMessageSuccess:String = "<testCase name='" + success.method
+					+ "' testSuite='" + getQualifiedClassName(success.test) + "' status='success'/>";
 				sendMessage(xmlMessageSuccess);
 			}
 		}
@@ -95,31 +81,18 @@
 				return;
 			}
 			socket.send(message);
-			trace('+++++++++ sendMessage() - \n' + message + '\n');
+			//trace('+++++++++ sendMessage() - \n' + message + '\n');
 		}

-		protected function createFailureMessage(methodName:String, suite:String, type:String, message:String, stackTrace:String):String {
+		protected function getFailureMessage(failure:ITestFailure):String {
+			var status:String = failure.isFailure ? 'failure' : 'error';
 			var xml:String =
-				"<testCase name='" + methodName
-				+ "' testSuite='" + suite
-				+ "' status='failure'>"
-					+ "<failure type='" + type + "' >"
-						+ "<messageInfo>" + xmlEscapeMessage(message) + "</messageInfo>"
-						+ "<stackTraceInfo>" + xmlEscapeMessage(stackTrace) + "</stackTraceInfo>" +
-					"</failure>"
-				+ "</testCase>";
-
-			return xml;
-		}
-
-		protected function createErrorMessage(methodName:String, suite:String, type:String, message:String, stackTrace:String):String {
-			var xml:String =
-				"<testCase name='" + methodName
-				+ "' testSuite='" + suite
-				+ "' status='error'>"
-					+ "<failure type='" + type + "' >"
-						+ "<messageInfo>" + xmlEscapeMessage(message) + "</messageInfo>"
-						+ "<stackTraceInfo>" + xmlEscapeMessage(stackTrace) + "</stackTraceInfo>" +
+				"<testCase name='" + failure.failedMethod
+				+ "' testSuite='" + getQualifiedClassName(failure.failedTest)
+				+ "' status='" + status + "'>"
+					+ "<failure type='" + getQualifiedClassName(failure.thrownException) + "' >"
+						+ "<messageInfo>" + xmlEscapeMessage(failure.exceptionMessage) + "</messageInfo>"
+						+ "<stackTraceInfo>" + xmlEscapeMessage(failure.thrownException.getStackTrace()) + "</stackTraceInfo>" +
 					"</failure>"
 				+ "</testCase>";


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

--- frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.as
+++ frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.as
@@ -0,0 +1,233 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.collections
+{
+
+/**
+ *  The DefaultSummaryCalculator class provides summary calculation logic for
+ *  SUM, MIN, MAX, AVG, and COUNT operations.
+ *
+ *  @see mx.collections.SummaryField2
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 4
+ */
+public class DefaultSummaryCalculator implements ISummaryCalculator
+{
+	//--------------------------------------------------------------------------
+	//
+	// Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+ 	public function summaryCalculationBegin(field:SummaryField2):Object
+ 	{
+		var dataField:String = field.dataField;
+		var newObj:Object = {};
+		switch (field.summaryOperation)
+		{
+			case "SUM": newObj[dataField] = 0;
+						break;
+			case "MIN": newObj[dataField] = Number.MAX_VALUE;
+						break;
+			case "MAX": newObj[dataField] = -Number.MAX_VALUE;
+						break;
+			case "COUNT": newObj[dataField] = [];
+						  newObj[dataField + "Counter"] = 0;
+						  break;
+			case "AVG": newObj[dataField] = 0;
+						newObj[dataField + "Count"] = 0;
+						break;
+		}
+		return newObj;
+ 	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+ 	public function calculateSummary(data:Object, field:SummaryField2, rowData:Object):void
+ 	{
+		var dataField:String = field.dataField;
+		var value:Number = rowData[dataField];
+		if (typeof(value) == "xml")
+			value = Number(value.toString());
+
+		switch (field.summaryOperation)
+		{
+			case "SUM": if (!data.hasOwnProperty(dataField))
+							data[dataField] = value ;
+						else
+							data[dataField] += value;
+						break;
+			case "MIN": if (!data.hasOwnProperty(dataField))
+							data[dataField] = value;
+						else
+							data[dataField] =  data[dataField] < value ? data[dataField] : value;
+						break;
+			case "MAX": if (!data.hasOwnProperty(dataField))
+							data[dataField] = value;
+						else
+							data[dataField] =  data[dataField] > value ? data[dataField] : value;
+						break;
+			case "COUNT": if (!data.hasOwnProperty(dataField))
+						  {
+							  data[dataField] = [rowData[dataField]];
+							  data[dataField + "Counter"] = 1;
+						  }
+						  else
+						  {
+							  data[dataField].push(rowData[dataField]);
+							  data[dataField + "Counter"] = data[dataField + "Counter"] + 1;
+						  }
+						  break;
+			case "AVG": if (!data.hasOwnProperty(dataField))
+						{
+							data[dataField] = value;
+							data[dataField + "Count"] = 1;
+						}
+						else
+						{
+							data[dataField] += value;
+							data[dataField + "Count"] = data[dataField + "Count"] + 1;
+						}
+						break;
+		}
+ 	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+ 	public function returnSummary(data:Object, field:SummaryField2):Number
+ 	{
+		var summary:Number = 0;
+		var dataField:String = field.dataField;
+		switch (field.summaryOperation)
+		{
+			case "SUM":
+			case "MIN":
+			case "MAX": summary = data[dataField];
+						break;
+			case "COUNT": 	summary = data[dataField + "Counter"];
+							break;
+			case "AVG": summary = data[dataField]/data[dataField + "Count"];
+						break;
+		}
+
+		return summary;
+ 	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	public function summaryOfSummaryCalculationBegin(value:Object, field:SummaryField2):Object
+	{
+		var newObj:Object = {};
+		for (var p:String in value)
+		{
+			newObj[p] = value[p];
+		}
+		return newObj;
+	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	public function calculateSummaryOfSummary(oldValue:Object, newValue:Object, field:SummaryField2):void
+	{
+		var p:String;
+		switch (field.summaryOperation)
+		{
+			case "AVG":
+			case "SUM": for (p in newValue)
+						{
+							oldValue[p] += newValue[p];
+						}
+						break;
+			case "MIN": for (p in newValue)
+						{
+							oldValue[p] = oldValue[p] < newValue[p] ? oldValue[p] : newValue[p];
+						}
+						break;
+			case "MAX": for (p in newValue)
+						{
+							oldValue[p] = oldValue[p] > newValue[p] ? oldValue[p] : newValue[p];
+						}
+						break;
+			case "COUNT": 	for (p in newValue)
+							{
+								if (oldValue[p] is Array)
+									oldValue[p] = oldValue[p].concat(newValue[p]);
+								else
+									oldValue[p] += newValue[p];
+							}
+							break;
+		}
+	}
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	public function returnSummaryOfSummary(oldValue:Object, field:SummaryField2):Number
+	{
+		var summary:Number = 0;
+		var dataField:String = field.dataField;
+		switch (field.summaryOperation)
+		{
+			case "SUM":
+			case "MIN":
+			case "MAX": summary = oldValue[dataField];
+						break;
+			case "COUNT":   summary = oldValue[dataField + "Counter"];
+							break;
+			case "AVG": summary = oldValue[dataField]/oldValue[dataField + "Count"];
+						break;
+		}
+
+		return summary;
+	}
+}
+}


修复当某一项为 null 时，toString 出错的 bug

修复当某一项为 null 时，toString 出错的 bug

--- as3/com/netease/protobuf/messageToString.as
+++ as3/com/netease/protobuf/messageToString.as
@@ -35,8 +35,8 @@
 		return ""
 	}
 	var field:* = message[name]
-	if (field.constructor == Array && field.length == 0) {
+	if (field != null && field.constructor == Array && field.length == 0) {
 		return ""
 	}
-	return name + "=" + message[name] + ";\n"
+	return name + "=" + field + ";\n"
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

--- frameworks/projects/spark/src/spark/styles/metadata/SelectionFormatTextStyles.as
+++ frameworks/projects/spark/src/spark/styles/metadata/SelectionFormatTextStyles.as
@@ -1,24 +1,4 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

-/**
- *  The color of text when the component is enabled and has focus.
- *
- *
For the Mobile theme, this is not supported.

- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
 [Style(name="focusedTextSelectionColor", type="uint", format="Color", inherit="yes")]

 /**


Further translations readded

Further translations readded

--- Arguments/src/Controller/logic/ModusTollens.as
+++ Arguments/src/Controller/logic/ModusTollens.as
@@ -11,6 +11,8 @@
 	import components.ArgSelector;
 	import components.ArgumentPanel;
 	import components.MenuPanel;
+
+	import classes.Language;

 	import mx.controls.Alert;
 	import mx.core.FlexGlobals;
@@ -49,28 +51,29 @@
 			switch(argumentTypeModel.language){
 				case langTypes[0]:
 					reasonText = reasonModels[0].statement.positiveText;
-					output = "If " + claimModel.statement.positiveText + ", then " + reasonText;
+					output = Language.lookup("ArgIf") + claimModel.statement.positiveText +
+						Language.lookup("ArgThen") + reasonText;
 					break;
 				case langTypes[1]:
-					output = claimModel.statement.positiveText + " implies " + reasonModels[0].statement.positiveText;
+					output = claimModel.statement.positiveText + Language.lookup("ArgImplies") + reasonModels[0].statement.positiveText;
 					break;
 				case langTypes[2]:
 					reasonText = reasonModels[0].statement.positiveText;
-					output = "Whenever " + claimModel.statement.positiveText + ", " + reasonText;
+					output = Language.lookup("ArgWhenever") + claimModel.statement.positiveText + ", " + reasonText;
 					break;
 				case langTypes[3]:
 					//if many reasons
 					if(argumentTypeModel.reasonModels.length > 1){
-						output = "Select how you want to connect the reasons";
+						output = "Select how you want to connect the reasons"; //TODO: Translate
 						argSelector.andor.x = argSelector.typeSelector.x + argSelector.typeSelector.width;
 						argSelector.andor.visible = true;
 						//if one reason
 					}else if(argumentTypeModel.reasonModels.length == 1){
 						reasonText = reasonModels[0].statement.positiveText;
-						output = claimModel.statement.positiveText + " only if ";
+						output = claimModel.statement.positiveText + Language.lookup("ArgOnlyIf");
 						output = output + reasonText;
 					}else{
-						output = claimModel.statement.positiveText + " only if ";
+						output = claimModel.statement.positiveText + Language.lookup("ArgOnlyIf");
 						for(i=0; i<reasonModels.length - 1; i++){
 							reasonText = reasonText + reasonModels[i].statement.positiveText + " " + argumentTypeModel.lSubOption + " ";
 						}
@@ -81,17 +84,17 @@
 				case langTypes[4]:
 					//provided that
 					reasonText = reasonModels[0].statement.positiveText ;
-					output = reasonText + " provided that " + claimModel.statement.positiveText;
+					output = reasonText + Language.lookup("ArgProvidedThat") + claimModel.statement.positiveText;
 					break;
 				case langTypes[5]:
 					//sufficient condition
 					reasonText = reasonModels[0].statement.positiveText;
-					output = claimModel.statement.positiveText + " is a sufficient condition for " + reasonText;
+					output = claimModel.statement.positiveText + Language.lookup("ArgSufficientCond") + reasonText;
 					break;
 				case langTypes[6]:
 					//necessary condition
 					reasonText = reasonModels[0].statement.positiveText
-					output = reasonText + " is a necessary condition for " + claimModel.statement.positiveText;
+					output = reasonText + Language.lookup("ArgNecessaryCond") + claimModel.statement.positiveText;
 					break;
 			}

@@ -109,7 +112,7 @@
 			var i:int;

 			if(argumentTypeModel.language == langTypes[4]){
-				output = claimModel.statement.positiveText + " only if " + reasonModels[0].statement.positiveText;
+				output = claimModel.statement.positiveText + Language.lookup("ArgOnlyIf") + reasonModels[0].statement.positiveText;
 				for(i=1; i < reasonModels.length; i++){
 					output = " " + argumentTypeModel.lSubOption + " " + reasonModels[i].statement.positiveText;
 				}