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

--- frameworks/projects/charts/src/mx/charts/renderers/CandlestickItemRenderer.as
+++ frameworks/projects/charts/src/mx/charts/renderers/CandlestickItemRenderer.as
@@ -0,0 +1,244 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.charts.renderers
+{
+
+import flash.display.Graphics;
+import flash.geom.Rectangle;
+
+import mx.charts.ChartItem;
+import mx.charts.chartClasses.GraphicsUtilities;
+import mx.charts.series.items.HLOCSeriesItem;
+import mx.core.IDataRenderer;
+import mx.graphics.IFill;
+import mx.graphics.IStroke;
+import mx.graphics.SolidColor;
+import mx.skins.ProgrammaticSkin;
+import mx.utils.ColorUtil;
+
+
+/**
+ *  The default itemRenderer
+ *  for a CandlestickSeries object.
+ *  This class renders a standard CandlestickChart item by using the stroke,
+ *  boxStroke, fill, and declineFill styles of its associated series.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class CandlestickItemRenderer extends ProgrammaticSkin
+									 implements IDataRenderer
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function CandlestickItemRenderer()
+	{
+		super();
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  data
+    //----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the data property.
+	 */
+	private var _data:HLOCSeriesItem;
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The chart item that this renderer represents.
+	 *  CandlestickItemRenderers assume that this value
+	 *  is an instance of HLOCSeriesItem.
+	 *  This value is assigned by the owning series.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function get data():Object
+	{
+		return _data;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set data(value:Object):void
+	{
+		_data = value as HLOCSeriesItem;
+
+		invalidateDisplayList();
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override protected function updateDisplayList(unscaledWidth:Number,
+												  unscaledHeight:Number):void
+	{
+		super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+		var stroke:IStroke = getStyle("stroke");
+		var boxStroke:IStroke = getStyle("boxStroke");
+
+		var fill:IFill;
+		var w:Number = boxStroke ? boxStroke.weight / 2 : 0;
+		var rc:Rectangle;
+		var g:Graphics = graphics;
+		var state:String;
+
+		if (_data)
+		{
+			fill = data.fill;
+			state = data.currentState;
+
+			var color:uint;
+
+			switch (state)
+			{
+				case ChartItem.FOCUSED:
+				case ChartItem.ROLLOVER:
+					if (styleManager.isValidStyleValue(getStyle('itemRollOverColor')))
+						color = getStyle('itemRollOverColor');
+					else
+						color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),-20);
+					fill = new SolidColor(color);
+					break;
+				case ChartItem.DISABLED:
+					if (styleManager.isValidStyleValue(getStyle('itemDisabledColor')))
+						color = getStyle('itemDisabledColor');
+					else
+						color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),20);
+					fill = new SolidColor(GraphicsUtilities.colorFromFill(color));
+					break;
+				case ChartItem.FOCUSEDSELECTED:
+				case ChartItem.SELECTED:
+					if (styleManager.isValidStyleValue(getStyle('itemSelectionColor')))
+						color = getStyle('itemSelectionColor');
+					else
+						color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),-30);
+					fill = new SolidColor(color);
+					break;
+			}
+
+			var min:Number;
+			var max:Number;
+
+			if(_data.high > _data.low) // if axis is inverted
+			{
+				min = Math.max(_data.high,Math.max(_data.close,_data.open));
+				max = Math.min(_data.low,Math.min(_data.open,_data.close));
+			}
+			else
+			{
+				max = Math.min(_data.high,Math.min(_data.close,_data.open));
+				min = Math.max(_data.low,Math.max(_data.open,_data.close));
+			}
+			var boxMin:Number = Math.min(_data.open, _data.close);
+			var boxMax:Number = Math.max(_data.open, _data.close);
+
+			var candlestickHeight:Number = min- max;
+			var heightScaleFactor:Number = height / candlestickHeight;
+
+			rc = new Rectangle(w,
+							   (boxMin - max) *
+							   heightScaleFactor + w,
+							   width - 2 * w,
+							   (boxMax - boxMin) * heightScaleFactor - 2 * w);
+
+			g.clear();
+			g.moveTo(rc.left,rc.top);
+			if (boxStroke)
+				boxStroke.apply(g,null,null);
+			else
+				g.lineStyle(0,0,0);
+			if (fill)
+				fill.begin(g,rc,null);
+			g.lineTo(rc.right, rc.top);
+			g.lineTo(rc.right, rc.bottom);
+			g.lineTo(rc.left, rc.bottom);
+			g.lineTo(rc.left, rc.top);
+			if (fill)
+				fill.end(g);
+			if (stroke)
+			{
+				stroke.apply(g,null,null);
+				g.moveTo(width / 2, 0);
+				g.lineTo(width / 2, (boxMin - max) * heightScaleFactor);
+				g.moveTo(width / 2, (boxMax - max) * heightScaleFactor);
+				g.lineTo(width / 2, height);
+			}
+		}
+		else
+		{
+			fill = GraphicsUtilities.fillFromStyle(getStyle("declineFill"));
+			var declineFill:IFill = GraphicsUtilities.fillFromStyle(getStyle("fill"));
+
+			rc = new Rectangle(0, 0, unscaledWidth, unscaledHeight);
+
+			g.clear();
+			g.moveTo(width, 0);
+			if (fill)
+				fill.begin(g, rc,null);
+			g.lineStyle(0, 0, 0);
+			g.lineTo(0, height);
+			if (boxStroke)
+				boxStroke.apply(g,null,null);
+			g.lineTo(0, 0);
+			g.lineTo(width, 0);
+			if (fill)
+				fill.end(g);
+			if (declineFill)
+				declineFill.begin(g, rc, null);
+			g.lineTo(width, height);
+			g.lineTo(0, height);
+			g.lineStyle(0, 0, 0);
+			g.lineTo(width, 0);
+			if (declineFill)
+				declineFill.end(g);
+		}
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20247
Author:   stshongr@adobe.com
Date:     2011-02-09T21:20:37.006037Z

Log Message:
-----------
Add ASDoc examples for LabelItemRenderer and IconItemRenderer.

Doc notes: No
Bugs: No
Reviewer: Kevin
Tests run: checkintests, built asdoc
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/assets</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/assets/loadingImage.png</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/IconItemRendererExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/assets/fb.jpg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/assets/fc.jpg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/assets/decoratorImage.png</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/LabelItemRendererExample.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/assets/fx.jpg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -171,6 +171,7 @@
  *  @see spark.components.IItemRenderer
  *  @see spark.components.supportClasses.ItemRenderer
  *  @see spark.components.LabelItemRenderer
+ *  @includeExample examples/IconItemRendererExample.mxml -noswf
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 19360
Author:   smgilson@adobe.com
Date:     2010-12-14T15:55:46.180282Z

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/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -129,6 +129,39 @@
  *     </s:List>
  *

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

+ *
+ *

+ *  <s:IconItemRenderer
+ *   Properties
+ *    decoratorClass=""
+ *    decoratorDisplay="null"
+ *    iconContentLoader="See property description"
+ *    iconField="null"
+ *    iconFillMode=""scale
+ *    iconFunction="null"
+ *    iconHeight="NaN"
+ *    iconScaleMode="stretch"
+ *    iconWidth="NaN"
+ *    label=""
+ *    labelField="null"
+ *    labelFunction="null"
+ *    loadingIconClass="null"
+ *    messageDisplay="StyleableTextField"
+ *    messageField="null"
+ *    messageFunction="null"
+ *
+ *   Common Styles
+ *    horizontalGap="8"
+ *    iconDelay="500"
+ *    messageStyleName="iconItemRendererMessageStyle"
+ *    verticalGap="6"
+ *  >
+ *

+ *
  *  @see spark.components.List
  *  @see mx.core.IDataRenderer
  *  @see spark.components.IItemRenderer
@@ -271,8 +304,7 @@
      *  then use the label property that gets
      *  pushed in from the list control.
      *  However if labelField is explicitly set to
-     *  "" (the empty string),
-     *  then no label appears.

+     *  "" (the empty string), then no label appears.

      *
      *  @inheritDoc
      *
@@ -287,9 +319,9 @@
      */
     override public function set label(value:String):void
     {
-		if (value == label)
-			return;
-
+        if (value == label)
+            return;
+
         super.label = value;

         labelChanged = true;
@@ -360,6 +392,8 @@
     /**
      *  The display object component used to
      *  display the decorator for this item renderer.
+     *
+     *  @default null
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -554,11 +588,6 @@
     /**
      *  The bitmap image component used to
      *  display the icon data of the item renderer.
-     *
-     *
Because IconItemRenderer implements ISharedDisplayObject
-     *  and IGraphicElementContainer, we don't need to wrap iconDisplay
-     *  in a Group; however, it does require a little more work when instantiating
-     *  and destroying iconDisplay.

      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -817,49 +846,49 @@
         invalidateSize();
         invalidateDisplayList();
     }
-
-	//----------------------------------
-	//  loadingIconClass
-	//----------------------------------
-
-	/**
-	 *  @private
-	 */
-	private var _loadingIconClass:Class;
-
-	/**
-	 *  The icon asset to use while an externally loaded asset is
-	 *  being downloaded.
-	 *
-	 *  @default null
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 2.5
-	 *  @productversion Flex 4.5
-	 */
-	public function get loadingIconClass():Class
-	{
-		return _loadingIconClass;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set loadingIconClass(value:Class):void
-	{
-		if (value == _loadingIconClass)
-			return;
-
-		_loadingIconClass = value;
-
-		iconChanged = true;
-		invalidateProperties();
-
-		// clear clearOnLoad if necessary
-		if (iconDisplay)
-			iconDisplay.clearOnLoad = (loadingIconClass == null);
-	}
+
+    //----------------------------------
+    //  loadingIconClass
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _loadingIconClass:Class;
+
+    /**
+     *  The icon asset to use while an externally loaded asset is
+     *  being downloaded.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get loadingIconClass():Class
+    {
+        return _loadingIconClass;
+    }
+
+    /**
+     *  @private
+     */
+    public function set loadingIconClass(value:Class):void
+    {
+        if (value == _loadingIconClass)
+            return;
+
+        _loadingIconClass = value;
+
+        iconChanged = true;
+        invalidateProperties();
+
+        // clear clearOnLoad if necessary
+        if (iconDisplay)
+            iconDisplay.clearOnLoad = (loadingIconClass == null);
+    }

     //----------------------------------
     //  messageField
@@ -1458,62 +1487,62 @@
         removeChild(labelDisplay);
         labelDisplay = null;
     }
-
-	/**
-	 *  @private
-	 */
-	private function loadExternalImage(source:Object, iconDelay:Number):void
-	{
-		// set iconDisplay's source now to either loadingIconClass
-		// or null (if no loadingIconClass).  this is so we don't display the old
-		// data while we're loading.
-		iconDisplay.source = loadingIconClass;
-
-		// while we're loading,if loadingIconClass is set,
-		// we'll keep that image up while we're loading
-		// the external content
-		iconDisplay.clearOnLoad = (loadingIconClass == null);
-
-		if (iconDelay > 0)
-		{
-			// set what we're gonna load and start the timer
-			iconSourceToLoad = source;
-
-			if (!iconSetterDelayTimer)
-			{
-				iconSetterDelayTimer = new Timer(iconDelay, 1);
-				iconSetterDelayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, iconSetterDelayTimer_timerCompleteHandler);
-			}
-
-			iconSetterDelayTimer.start();
-		}
-		else // iconDelay == 0
-		{
-			// load up the image immediately
-
-			// need to call validateProperties because we need this loadingIconClass
-			// to actually get loaded up since we set iconDisplay.source to a remote
-			// image on the next line.  BitmapImage doesn't actually attempt to load
-			// up the image (even if it's a locally embedded asset) until commitProperties()
-			iconDisplay.validateProperties();
-
-			iconDisplay.source = source;
-		}
-	}
-
-	/**
-	 *  @private
-	 */
-	private function stopLoadingExternalImage():void
-	{
-		// stop any asynch operation:
-		if (iconSetterDelayTimer)
-		{
-			iconSourceToLoad = null
-			iconSetterDelayTimer.stop();
-			iconSetterDelayTimer.reset();
-		}
-	}
+
+    /**
+     *  @private
+     */
+    private function loadExternalImage(source:Object, iconDelay:Number):void
+    {
+        // set iconDisplay's source now to either loadingIconClass
+        // or null (if no loadingIconClass).  this is so we don't display the old
+        // data while we're loading.
+        iconDisplay.source = loadingIconClass;
+
+        // while we're loading,if loadingIconClass is set,
+        // we'll keep that image up while we're loading
+        // the external content
+        iconDisplay.clearOnLoad = (loadingIconClass == null);
+
+        if (iconDelay > 0)
+        {
+            // set what we're gonna load and start the timer
+            iconSourceToLoad = source;
+
+            if (!iconSetterDelayTimer)
+            {
+                iconSetterDelayTimer = new Timer(iconDelay, 1);
+                iconSetterDelayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, iconSetterDelayTimer_timerCompleteHandler);
+            }
+
+            iconSetterDelayTimer.start();
+        }
+        else // iconDelay == 0
+        {
+            // load up the image immediately
+
+            // need to call validateProperties because we need this loadingIconClass
+            // to actually get loaded up since we set iconDisplay.source to a remote
+            // image on the next line.  BitmapImage doesn't actually attempt to load
+            // up the image (even if it's a locally embedded asset) until commitProperties()
+            iconDisplay.validateProperties();
+
+            iconDisplay.source = source;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function stopLoadingExternalImage():void
+    {
+        // stop any asynch operation:
+        if (iconSetterDelayTimer)
+        {
+            iconSourceToLoad = null
+            iconSetterDelayTimer.stop();
+            iconSetterDelayTimer.reset();
+        }
+    }

     /**
      *  @private
@@ -1530,8 +1559,8 @@
         {
             stopLoadingExternalImage();

-			// load it up
-        	iconDisplay.source = source;
+            // load it up
+            iconDisplay.source = source;

             return;
         }
@@ -1542,7 +1571,7 @@

         // At this point, we know we can cancel the old asynch operation
         // since we're not going to use it anymore
-		stopLoadingExternalImage();
+        stopLoadingExternalImage();

         // we know we're loading external content, check the cache first:
         var contentCache:ContentCache = iconContentLoader as ContentCache;
@@ -1555,8 +1584,8 @@
             }
         }

-		// otherwise, we need to load an external asset and use a Timer
-		loadExternalImage(source, iconDelay);
+        // otherwise, we need to load an external asset and use a Timer
+        loadExternalImage(source, iconDelay);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


def: 6582 use mediaPlayerMediator.getCurrentTime instead of player.currentTime

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@92853 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- plugins/annotationsPlugin/src/com/kaltura/kdpfl/view/AnnotationBoxMediator.as
+++ plugins/annotationsPlugin/src/com/kaltura/kdpfl/view/AnnotationBoxMediator.as
@@ -14,6 +14,7 @@
 	import com.kaltura.kdpfl.model.vo.MediaVO;
 	import com.kaltura.kdpfl.util.KAstraAdvancedLayoutUtil;
 	import com.kaltura.kdpfl.view.events.AnnotationEvent;
+	import com.kaltura.kdpfl.view.media.KMediaPlayerMediator;
 	import com.kaltura.kdpfl.view.strings.AnnotationStrings;
 	import com.kaltura.kdpfl.view.strings.Notifications;
 	import com.kaltura.vo.KalturaAnnotation;
@@ -36,6 +37,7 @@

 		protected var _unsavedAnnotationSO:Array;
 		protected var _player:MediaPlayer;
+		protected var _playerMediaMediator:KMediaPlayerMediator;
 		protected var _timelineMetadata:TimelineMetadata;
 		protected var _entryId:String = "0";
 		protected var _sessionId:String = "";
@@ -112,7 +114,8 @@
 					}
 					break;
 				case NotificationType.LAYOUT_READY:
-					_player = facade.retrieveMediator("kMediaPlayerMediator")["player"] as MediaPlayer;
+					_playerMediaMediator = facade.retrieveMediator(KMediaPlayerMediator.NAME) as KMediaPlayerMediator;
+					_player = _playerMediaMediator.player;
 					break;
 				case NotificationType.ENTRY_READY:

@@ -219,7 +222,7 @@

 				case Notifications.SAVE_ANNOTATION:
 					sendNotification(NotificationType.DO_PAUSE);
-					currentTime = Math.floor(_player.currentTime);
+					currentTime = Math.floor(_playerMediaMediator.getCurrentTime());
 					var currTimeIndex:int = (viewComponent as annotationsPluginCode).annotationsBox.findIndexByInTime(currentTime);

 					if (currTimeIndex != -1 && (viewComponent as annotationsPluginCode).annotationsBox.findIndexByAnnotation((viewComponent as annotationsPluginCode).annotationEditForm.annotation) == -1) {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17308
Author:   dthakkar@adobe.com
Date:     2010-08-12T23:22:20.533632Z

Log Message:
-----------
Flex integration feature (includes spark formatters and related checkintests.)
UIComponent.as - Added API's to support non visual style client
IAdvancedStyleClient.as - Added setter for StyleParent method
StyleProtoChain.as - Added else loop to verify if the component is IAdvancedStyleClient
StyleProxy.as - added setter for styleParent method (this class inherits IAdvancedStyleClient interface)

QE notes: No
Doc notes: No
Bugs: No
Reviewer: Gordon , Darrell
Tests run: CheckinTests, Mustella
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/CollatorBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/supportClasses/NumberBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/supportClasses</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/CollatorTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/SortingCollator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/StringToolsTestScript.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/AdvancedStyleClientTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest/ADVStyleTestEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/NumberFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/CurrencyFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/CollatorTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/NumberFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/DateTimeFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/CurrencyFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/DateTimeFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/AdvancedStyleClientTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/GlobalizationBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/formatters/IFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest/ADVStyleTestClass.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/LastOperationStatus.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/StringToolsTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/MatchingCollator.as</path>

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

--- frameworks/projects/framework/src/mx/formatters/IFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/IFormatter.as
@@ -0,0 +1,75 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.formatters
+{
+
+/**
+ *  This interface specifies the method that a formatter object must implement
+ *  to allow it to be used as the formatter property for UI controls such as
+ *  the AdvancedDataGridColumn.
+ *
+ *  @see mx.controls.advancedDataGridClasses#formatter
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4.5
+*/
+public interface IFormatter
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  error
+    //----------------------------------
+
+    /**
+     *  Description saved by the formatter when an error occurs.
+     *  For the possible values of this property,
+     *  see the description of each formatter.
+     *
Classes that implement this interface must set this value
+     *  in the format() method.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    // TODO Do we need to include this in the interface?
+    //public var error:String;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Formats a value and returns a String
+     *  containing the new, formatted, value.
+     *
+     *  @param value Value to be formatted.
+     *
+     *  @return The formatted string.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function format(value:Object):String;
+}
+}


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

--- frameworks/projects/framework/src/mx/geom/TransformOffsets.as
+++ frameworks/projects/framework/src/mx/geom/TransformOffsets.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-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.
+//
+////////////////////////////////////////////////////////////////////////////////
 package mx.geom
 {
 	import flash.geom.Matrix;


Transferred from the Adobe Open Source Subversion Repository

Revision: 11202
Author:   aharui@adobe.com
Date:     2009-10-27T21:32:23.252125Z

Log Message:
-----------
Make controlBarContent read/write so you can use other states syntax besides includeIn

QE Notes: None
Doc Notes: None
Bugs: SDK-23386
Reviewer: Corey
API Change: no
Is noteworthy for integration: No
tests: checkintests mustella/gumbo/components/Panel, Application

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -373,6 +373,17 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
+    public function get controlBarContent():Array
+    {
+        if (controlBarGroup)
+            return controlBarGroup.getMXMLContent();
+        else
+            return controlBarGroupProperties.controlBarContent;
+    }
+
+    /**
+     *  @private
+     */
     public function set controlBarContent(value:Array):void
     {
         if (controlBarGroup)


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/spark/src/spark/components/RadioButton.as
+++ frameworks/projects/spark/src/spark/components/RadioButton.as
@@ -25,6 +25,8 @@
 import mx.events.ItemClickEvent;
 import mx.managers.IFocusManager;
 import mx.managers.IFocusManagerGroup;
+
+use namespace mx_internal;

 //--------------------------------------
 //  Styles
@@ -213,20 +215,20 @@
                     // Special automaticRadioButtonGroup slot to hold generated
                     // radio button groups.  Shared with halo so prefix
                     // groupName to differentiate.
-                    if (document.mx_internal::automaticRadioButtonGroups &&
-                        document.mx_internal::automaticRadioButtonGroups[autoGroupIndex])
+                    if (document.automaticRadioButtonGroups &&
+                        document.automaticRadioButtonGroups[autoGroupIndex])
                     {
                         g = RadioButtonGroup(
-                            document.mx_internal::automaticRadioButtonGroups[autoGroupIndex]);
+                            document.automaticRadioButtonGroups[autoGroupIndex]);
                     }
                 }
                 if (!g)
                 {
                     g = new RadioButtonGroup(IFlexDisplayObject(document));

-                    if (!document.mx_internal::automaticRadioButtonGroups)
-                        document.mx_internal::automaticRadioButtonGroups = [];
-                    document.mx_internal::automaticRadioButtonGroups[autoGroupIndex] = g;
+                    if (!document.automaticRadioButtonGroups)
+                        document.automaticRadioButtonGroups = [];
+                    document.automaticRadioButtonGroups[autoGroupIndex] = g;
                 }
                 else if (!(g is RadioButtonGroup))
                 {
@@ -256,7 +258,7 @@
         // If the group is set then the groupName is the generated name of
         // the rbg.  If it's set to null, then set the groupName back to the
         // default group so this button will move back to that group.
-        _groupName = value ? group.mx_internal::name : "radioGroup";
+        _groupName = value ? group.name : "radioGroup";

         // Make sure this gets added to it's RadioButtonGroup
         groupChanged = true;
@@ -433,7 +435,7 @@

     /**
      *  @private
-     *  mx_internal::automaticRadioButtonGroups is shared with halo radio button groups.
+     *  automaticRadioButtonGroups is shared with halo radio button groups.
      *  Gumbo radio button groups are prefixed with _fx to differentiate the
      *  halo groups which are stored in the same table.
      */
@@ -451,7 +453,7 @@
     {
         var g:RadioButtonGroup = group; // Trigger getting the group
         if (g)
-            g.mx_internal::addInstance(this);
+            g.addInstance(this);

         return g;
     }
@@ -471,9 +473,9 @@
         // specified by groupName.
         try
         {
-            if (document.mx_internal::automaticRadioButtonGroups[autoGroupIndex].numRadioButtons == 0)
-            {
-                delete document.mx_internal::automaticRadioButtonGroups[autoGroupIndex];
+            if (document.automaticRadioButtonGroups[autoGroupIndex].numRadioButtons == 0)
+            {
+                delete document.automaticRadioButtonGroups[autoGroupIndex];
             }
         }
         catch(e:Error)
@@ -493,21 +495,21 @@
         if (fm)
             fm.showFocusIndicator = true;

-        for (var i:int = 1; i <= mx_internal::indexNumber; i++)
+        for (var i:int = 1; i <= indexNumber; i++)
         {
             var radioButton:RadioButton =
-                    g.getRadioButtonAt(mx_internal::indexNumber - i);
+                    g.getRadioButtonAt(indexNumber - i);
             if (radioButton && isRadioButtonEnabled(radioButton))
             {
                 if (moveSelection)
-                    g.mx_internal::setSelection(radioButton);
+                    g.setSelection(radioButton);
                 radioButton.setFocus();
                 return;
             }
         }

-        if (moveSelection && g.getRadioButtonAt(mx_internal::indexNumber) != g.selection)
-            g.mx_internal::setSelection(this);
+        if (moveSelection && g.getRadioButtonAt(indexNumber) != g.selection)
+            g.setSelection(this);

         this.drawFocus(true);
     }
@@ -524,20 +526,20 @@
         if (fm)
             fm.showFocusIndicator = true;

-        for (var i:int = mx_internal::indexNumber + 1; i < g.numRadioButtons; i++)
+        for (var i:int = indexNumber + 1; i < g.numRadioButtons; i++)
         {
             var radioButton:RadioButton = g.getRadioButtonAt(i);
             if (radioButton && isRadioButtonEnabled(radioButton))
             {
                 if (moveSelection)
-                    g.mx_internal::setSelection(radioButton);
+                    g.setSelection(radioButton);
                 radioButton.setFocus();
                 return;
             }
         }

-        if (moveSelection && g.getRadioButtonAt(mx_internal::indexNumber) != g.selection)
-            g.mx_internal::setSelection(this);
+        if (moveSelection && g.getRadioButtonAt(indexNumber) != g.selection)
+            g.setSelection(this);
         this.drawFocus(true);
     }

@@ -572,12 +574,12 @@
      */
     private function setThis():void
     {
-        if (!mx_internal::radioButtonGroup)
+        if (!radioButtonGroup)
             addToGroup();

         var g:RadioButtonGroup = group;
         if (g.selection != this)
-            g.mx_internal::setSelection(this);
+            g.setSelection(this);
     }

    /**
@@ -594,8 +596,8 @@

         // The button is enabled so it's enabled if it's not in a group
         // or the group is enabled.
-        return !mx_internal::radioButtonGroup ||
-               mx_internal::radioButtonGroup.enabled;
+        return !radioButtonGroup ||
+               radioButtonGroup.enabled;
     }

     //--------------------------------------------------------------------------
@@ -698,20 +700,20 @@
         if (!enabled || selected)
             return; // prevent a selected button from dispatching "click"

-        if (!mx_internal::radioButtonGroup)
+        if (!radioButtonGroup)
             addToGroup();

         // Must call super.clickHandler() before setting
         // the group's selection.
         super.clickHandler(event);

-        group.mx_internal::setSelection(this);
+        group.setSelection(this);

         // Dispatch an itemClick event from the RadioButtonGroup.
         var itemClickEvent:ItemClickEvent =
             new ItemClickEvent(ItemClickEvent.ITEM_CLICK);
         itemClickEvent.label = label;
-        itemClickEvent.index = mx_internal::indexNumber;
+        itemClickEvent.index = indexNumber;
         itemClickEvent.relatedObject = this;
         itemClickEvent.item = value;
         group.dispatchEvent(itemClickEvent);


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 7087
Author:   rfrishbe@adobe.com
Date:     2009-05-19T20:44:50.609964Z

Log Message:
-----------
VideoPlayer bug fixes:

- Forgot to dispatch the ready event

- The properties on videoplayer that are proxied from videoelement now take into account the correct defaults

- We deal with null or empty string sources better by clearing the video and closing the connection to the net stream.  It looks like play() won’t take in any arguments—at that point, I’ll clean up this code around dealign with startTime and duration as well as refactoring some of this “close” the connection code.

- PopUpAnchor pushes the concatenated color matrix, similar to the concatenated transform matrix.  This will need to undergo any changes based on Chet’s findings.

- Adding enabling/disabling support.  This change is dependent on Jason’s SKinnableComponent change around enabling/disabling.

- Skin changes in VideoPlayerSkin and volume bar/volumebarmutebutton.

QE Notes: -
Doc Notes: -
Bugs: SDK-21185, SDK-21187, SDK-21015, SDK-20971, SDK-20969, SDK-20928, SDK-21098, SDK-20986, SDK-20947, SDK-20939, SDK-20934, SDK-21014
Reviewer: Deepa
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/VideoPlayer.as
+++ frameworks/projects/spark/src/spark/components/VideoPlayer.as
@@ -540,7 +540,7 @@
      *  videoElementProperties stores booleans as to whether these properties
      *  have been explicitely set or not.
      */
-    private var videoElementProperties:Object = {};
+    private var videoElementProperties:Object;

     //--------------------------------------------------------------------------
     //
@@ -552,29 +552,30 @@
     //  enabled
     //----------------------------------

-    private var wasPlayingBeforeDisabled:Boolean;
-
-    /**
-     *  @private
+    /**
+     *  @inheritDoc
+     *
+     *
Setting enabled to false disables the UI and
+     *  pauses the video if it was currently playing.  Re-enabling the component
+     *  does not cause the video to continue playing again; you must
+     *  explicitly call play().

+     *
+     *
Even though the component is initially paused while disabled,
+     *  if you would like to play the video or perform some other action
+     *  while disabled, you may still do so through method calls, like
+     *  play().

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
      */
     override public function set enabled(value:Boolean):void
     {
-        // TODO (rfrishbe): what about autoPlay and manual calls to play()?
         super.enabled = value;

-        if (!value && videoElement)
-        {
-            if (playing || wasPlayingBeforeDisabled)
-                wasPlayingBeforeDisabled = true;
-            else
-                wasPlayingBeforeDisabled = false;
-            videoElement.pause();
-        }
-        else if (wasPlayingBeforeDisabled)
-        {
-            wasPlayingBeforeDisabled = false;
-            videoElement.play();
-        }
+        if (videoElement)
+            videoElement.enabled = value;
     }

     //--------------------------------------------------------------------------
@@ -599,7 +600,15 @@
      */
     public function get autoPlay():Boolean
     {
-        return (videoElement) ? videoElement.autoPlay : videoElementProperties.autoPlay;
+        if (videoElement)
+        {
+            return videoElement.autoPlay;
+        }
+        else
+        {
+            var v:* = videoElementProperties.autoPlay;
+            return (v === undefined) ? true : v;
+        }
     }

     /**
@@ -613,8 +622,14 @@
             videoElementProperties = BitFlagUtil.update(videoElementProperties as uint,
                                                         AUTO_PLAY_PROPERTY_FLAG, true);
         }
-        else
+        else if (videoElementProperties)
+        {
             videoElementProperties.autoPlay = value;
+        }
+        else
+        {
+            videoElementProperties = {autoPlay: value};
+        }
     }

     //----------------------------------
@@ -633,7 +648,15 @@
      */
     public function get autoRewind():Boolean
     {
-        return (videoElement) ? videoElement.autoRewind : videoElementProperties.autoRewind;
+        if (videoElement)
+        {
+            return videoElement.autoRewind;
+        }
+        else
+        {
+            var v:* = videoElementProperties.autoRewind;
+            return (v === undefined) ? true : v;
+        }
     }

     /**
@@ -647,8 +670,14 @@
             videoElementProperties = BitFlagUtil.update(videoElementProperties as uint,
                                                         AUTO_REWIND_PROPERTY_FLAG, true);
         }
-        else
+        else if (videoElementProperties)
+        {
             videoElementProperties.autoRewind = value;
+        }
+        else
+        {
+            videoElementProperties = {autoRewind: value};
+        }
     }

     //----------------------------------
@@ -667,7 +696,15 @@
      */
     public function get maintainAspectRatio():Boolean
     {
-        return (videoElement) ? videoElement.maintainAspectRatio : videoElementProperties.maintainAspectRatio;
+        if (videoElement)
+        {
+            return videoElement.maintainAspectRatio;
+        }
+        else
+        {
+            var v:* = videoElementProperties.maintainAspectRatio;
+            return (v === undefined) ? true : v;
+        }
     }

     /**
@@ -681,8 +718,14 @@
             videoElementProperties = BitFlagUtil.update(videoElementProperties as uint,
                                                         MAINTAIN_ASPECT_RATIO_PROPERTY_FLAG, true);
         }
-        else
+        else if (videoElementProperties)
+        {
             videoElementProperties.maintainAspectRatio = value;
+        }
+        else
+        {
+            videoElementProperties = {maintainAspectRatio: value};
+        }
     }

     //----------------------------------
@@ -701,7 +744,15 @@
      */
     public function get muted():Boolean
     {
-        return (videoElement) ? videoElement.muted : videoElementProperties.muted;
+        if (videoElement)
+        {
+            return videoElement.muted;
+        }
+        else
+        {
+            var v:* = videoElementProperties.muted;
+            return (v === undefined) ? false : v;
+        }
     }

     /**
@@ -715,11 +766,14 @@
             videoElementProperties = BitFlagUtil.update(videoElementProperties as uint,
                                                         MUTED_PROPERTY_FLAG, true);
         }
-        else
+        else if (videoElementProperties)
+        {
             videoElementProperties.muted = value;
-
-        if (muteButton)
-            muteButton.selected = value;
+        }
+        else
+        {
+            videoElementProperties = {muted: value};
+        }
     }

     //----------------------------------
@@ -784,7 +838,15 @@
      */
     public function get source():Object
     {
-        return (videoElement) ? videoElement.source : videoElementProperties.source;
+        if (videoElement)
+        {
+            return videoElement.source;
+        }
+        else
+        {
+            var v:* = videoElementProperties.source;
+            return (v === undefined) ? null : v;
+        }
     }

     /**
@@ -798,8 +860,14 @@
             videoElementProperties = BitFlagUtil.update(videoElementProperties as uint,
                                                         SOURCE_PROPERTY_FLAG, true);
         }
-        else
+        else if (videoElementProperties)
+        {
             videoElementProperties.source = value;
+        }
+        else
+        {
+            videoElementProperties = {source: value};
+        }
     }

     //----------------------------------
@@ -843,7 +911,15 @@
      */
     public function get volume():Number
     {
-        return (videoElement) ? videoElement.volume : videoElement.volume;
+        if (videoElement)
+        {
+            return videoElement.volume;
+        }
+        else
+        {
+            var v:* = videoElementProperties.volume;
+            return (v === undefined) ? 1 : v;
+        }
     }

     /**
@@ -855,10 +931,16 @@
         {
             videoElement.volume = value;
             videoElementProperties = BitFlagUtil.update(videoElementProperties as uint,
-                                                 VOLUME_PROPERTY_FLAG, true);
-        }
-        else
+                                                        VOLUME_PROPERTY_FLAG, true);
+        }
+        else if (videoElementProperties)
+        {
             videoElementProperties.volume = value;
+        }
+        else
+        {
+            videoElementProperties = {volume: value};
+        }
     }

     //--------------------------------------------------------------------------
@@ -935,6 +1017,19 @@
     {
         if (instance == videoElement)
         {
+            videoElement.addEventListener(spark.events.VideoEvent.CLOSE, dispatchEvent);
+            videoElement.addEventListener(spark.events.VideoEvent.COMPLETE, dispatchEvent);
+            videoElement.addEventListener(spark.events.VideoEvent.METADATA_RECEIVED, videoElement_metaDataReceivedHandler);
+            videoElement.addEventListener(spark.events.VideoEvent.PLAYHEAD_UPDATE, videoElement_playHeadUpdateHandler);
+            videoElement.addEventListener(ProgressEvent.PROGRESS, videoElement_progressHandler);
+            videoElement.addEventListener(spark.events.VideoEvent.READY, dispatchEvent);
+            videoElement.addEventListener(fl.video.VideoEvent.STATE_CHANGE, videoElement_stateChangeHandler);
+            videoElement.addEventListener("playingChanged", videoElement_playingChangedHandler);
+
+            // just strictly for binding purposes
+            videoElement.addEventListener("sourceChanged", dispatchEvent);
+            videoElement.addEventListener("volumeChanged", videoElement_volumeChangedHandler);
+
             // copy proxied values from videoProperties (if set) to video

             var newVideoProperties:uint = 0;
@@ -983,17 +1078,7 @@

             videoElementProperties = newVideoProperties;

-            videoElement.addEventListener(spark.events.VideoEvent.CLOSE, dispatchEvent);
-            videoElement.addEventListener(spark.events.VideoEvent.COMPLETE, dispatchEvent);
-            videoElement.addEventListener(spark.events.VideoEvent.METADATA_RECEIVED, videoElement_metaDataReceivedHandler);
-            videoElement.addEventListener(spark.events.VideoEvent.PLAYHEAD_UPDATE, videoElement_playHeadUpdateHandler);
-            videoElement.addEventListener(ProgressEvent.PROGRESS, videoElement_progressHandler);
-            videoElement.addEventListener(fl.video.VideoEvent.STATE_CHANGE, videoElement_stateChangeHandler);
-            videoElement.addEventListener("playingChanged", videoElement_playingChangedHandler);
-
-            // just strictly for binding purposes
-            videoElement.addEventListener("sourceChanged", dispatchEvent);
-            videoElement.addEventListener("volumeChanged", videoElement_volumeChangedHandler);
+            videoElement.enabled = enabled;

             if (volumeBar)
                 volumeBar.value = volume;
@@ -1049,6 +1134,7 @@
             scrubBar.addEventListener(TrackBaseEvent.THUMB_PRESS, scrubBar_thumbPressHandler);
             scrubBar.addEventListener(TrackBaseEvent.THUMB_RELEASE, scrubBar_thumbReleaseHandler);
             scrubBar.addEventListener(Event.CHANGE, scrubBar_changeHandler);
+            scrubBar.addEventListener("changing", scrubBar_changingHandler);
         }
         else if (instance == fullScreenButton)
         {
@@ -1102,6 +1188,7 @@
             videoElement.removeEventListener(spark.events.VideoEvent.METADATA_RECEIVED, videoElement_metaDataReceivedHandler);
             videoElement.removeEventListener(spark.events.VideoEvent.PLAYHEAD_UPDATE, videoElement_playHeadUpdateHandler);
             videoElement.removeEventListener(ProgressEvent.PROGRESS, videoElement_progressHandler);
+            videoElement.removeEventListener(spark.events.VideoEvent.READY, dispatchEvent);
             videoElement.removeEventListener(fl.video.VideoEvent.STATE_CHANGE, videoElement_stateChangeHandler);
             videoElement.removeEventListener("playingChanged", videoElement_playingChangedHandler);

@@ -1139,6 +1226,7 @@
             scrubBar.removeEventListener(TrackBaseEvent.THUMB_PRESS, scrubBar_thumbPressHandler);
             scrubBar.removeEventListener(TrackBaseEvent.THUMB_RELEASE, scrubBar_thumbReleaseHandler);
             scrubBar.removeEventListener(Event.CHANGE, scrubBar_changeHandler);
+            scrubBar.removeEventListener("changing", scrubBar_changingHandler);
         }
         else if (instance == fullScreenButton)
         {
@@ -1224,7 +1312,7 @@
         if (!videoElement)
             return;

-        if (!scrubBarMouseCaptured)
+        if (!scrubBarMouseCaptured && !scrubBarChanging)
         {
             scrubBar.minimum = 0;
             scrubBar.maximum = videoElement.totalTime;
@@ -1490,6 +1578,8 @@
         // set the fullScreen variable back to false and remove this event listener
         fullScreen = false;
         stage.removeEventListener(FullScreenEvent.FULL_SCREEN, fullScreenEventHandler);
+        fullScreenHideControlTimer.reset();
+        fullScreenHideControlTimer = null;

         // remove the event listeners to hide the controls
         systemManager.removeEventListener(MouseEvent.MOUSE_DOWN, resetFullScreenHideControlTimer);
@@ -1581,6 +1671,20 @@

     /**
      *  @private
+     *  We are in the process of changing the timestamp
+     */
+    private var scrubBarChanging:Boolean;
+
+    /**
+     *  @private
+     */
+    private function scrubBar_changingHandler(event:Event):void
+    {
+        scrubBarChanging = true;
+    }
+
+    /**
+     *  @private
      */
     private function scrubBar_thumbPressHandler(event:TrackBaseEvent):void
     {
@@ -1617,6 +1721,7 @@
         }
         else
         {
+            scrubBarChanging = false;
             seek(scrubBar.value);
         }
     }


Delete BufferInitializer since its functionality is now in the other Away3D initializers

--- src/org/flintparticles/integration/away3d/v4/initializers/BufferInitializer.as
+++ src/org/flintparticles/integration/away3d/v4/initializers/BufferInitializer.as
@@ -1,111 +0,0 @@
-package org.flintparticles.integration.away3d.v4.initializers
-{
-	import away3d.containers.ObjectContainer3D;
-	import away3d.core.base.Object3D;
-	import away3d.entities.Mesh;
-	import away3d.entities.Sprite3D;
-
-	import org.flintparticles.common.emitters.Emitter;
-	import org.flintparticles.common.events.ParticleEvent;
-	import org.flintparticles.common.initializers.InitializerBase;
-	import org.flintparticles.common.particles.Particle;
-	import org.flintparticles.common.utils.construct;
-
-	public class BufferInitializer extends InitializerBase
-	{
-		private var _imageClass:Class;
-		private var _parameters:Array;
-		private var _buffer:Vector.<Object3D>=new Vector.<Object3D>();
-		private var _bufferLength:uint=0;
-		/**
-		 * imageClass -is a regular Away3D object Class
-		 * bufferLength- is the number of the image instance we want to hold in the buffer,
-		 * make sure that you take into account the life length of th particle when calculating
-		 * buffer length.So that if your particles should live between 1 and 3 seconds and you spawn
-		 * steady 300 per second the buffer should be around 900 objects in total.
-		 * parameters-are the rest of image Class constructor arguments
-		 * */
-
-
-		public function BufferInitializer(imageClass:Class,bufferLength:uint, parameters:Array)
-		{
-			//TODO: implement function
-			_imageClass=imageClass;
-			_parameters=parameters;
-			_bufferLength=bufferLength;
-			init();
-
-		}
-		private function init():void{
-
-			var obj3d:Object3D=construct(_imageClass,_parameters);//new _imageClass(null,0,0);
-
-
-			initBuffer(obj3d);
-
-
-		}
-		private function initBuffer(obj3d:Object3D):void{
-			for(var i:uint=0;i<_bufferLength;++i){
-
-				_buffer.push(obj3d.clone()as Object3D);
-			}
-		}
-		private var _firstTime:Boolean=true;
-		override public function initialize( emitter:Emitter, particle:Particle):void
-		{
-			if(_firstTime){
-				emitter.addEventListener(ParticleEvent.PARTICLE_DEAD,onParticleDead,false,0,true);
-				_firstTime=false;
-			}
-			if(_buffer.length>0){
-				particle.image=_buffer.shift();
-			//	trace(particle.image);
-			}
-			if(_buffer.length==0){
-			//	do nothing
-			}
-		}
-		override public function removedFromEmitter(emitter:Emitter) : void{
-			if(emitter.hasEventListener(ParticleEvent.PARTICLE_DEAD)){
-
-				emitter.removeEventListener(ParticleEvent.PARTICLE_DEAD,onParticleDead);
-			}
-		}
-		private function onParticleDead(e:ParticleEvent):void{
-		//	e.particle.isDead=false;
-		//	trace(e.particle.image);
-
-			_buffer.push(e.particle.image);
-		//	trace(e.particle.image);
-		}
-
-		////////////////getters/setters//////////////////////
-		/**
-		 * The class to use when creating
-		 * the particles' DisplayObjects.
-		 */
-		public function get imageClass():Class
-		{
-			return _imageClass;
-		}
-		public function set imageClass( value:Class ):void
-		{
-			_imageClass = value;
-		}
-
-		/**
-		 * The parameters to pass to the constructor
-		 * for the image class.
-		 */
-		public function get parameters():Array
-		{
-			return _parameters;
-		}
-		public function set parameters( value:Array ):void
-		{
-			_parameters = value;
-		}
-
-	}
-}


added debug option

added debug option

--- WeaveData/src/weave/data/DataSources/WeaveDataSource.as
+++ WeaveData/src/weave/data/DataSources/WeaveDataSource.as
@@ -75,6 +75,8 @@
 		WeaveAPI.ClassRegistry.registerImplementation(IDataSource, WeaveDataSource, "Weave server");

 		private static const SQLPARAMS:String = 'sqlParams';
+
+		public static var debug:Boolean = false;

 		public function WeaveDataSource()
 		{
@@ -723,12 +725,22 @@
 					{
 						var getTablePromise:WeavePromise = new WeavePromise(_service)
 							.then(function(..._):AsyncToken {
+								if (debug)
+									weaveTrace('invoking getTable()', hash);
 								return _service.getTable(result.tableId, sqlParams);
 							});

 						var keyStrings:Array;
 						promise = getTablePromise
 							.then(function(tableData:TableData):TableData {
+								if (debug)
+									weaveTrace('received', debugId(tableData), hash);
+
+								if (!tableData.keyColumns)
+									tableData.keyColumns = [];
+								if (!tableData.columns)
+									tableData.columns = {};
+
 								var name:String;
 								for each (name in tableData.keyColumns)
 									if (!tableData.columns.hasOwnProperty(name))
@@ -741,7 +753,7 @@
 								}

 								// generate compound keys
-								var nCol:int = tableData.keyColumns.length
+								var nCol:int = tableData.keyColumns.length;
 								var iCol:int, iRow:int, nRow:int;
 								for (iCol = 0; iCol < nCol; iCol++)
 								{
@@ -761,11 +773,15 @@
 								return tableData;
 							})
 							.then(function(tableData:TableData):WeavePromise {
+								if (debug)
+									weaveTrace('promising QKeys', debugId(tableData), hash);
 								return (WeaveAPI.QKeyManager as QKeyManager).getQKeysPromise(
 									getTablePromise,
 									keyType,
 									keyStrings
 								).then(function(qkeys:Vector.<IQualifiedKey>):TableData {
+									if (debug)
+										weaveTrace('got QKeys', debugId(tableData), hash);
 									tableData.derived_qkeys = qkeys;
 									return tableData;
 								});


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as
@@ -51,6 +51,11 @@
      * are wrapped to make them bindable. Objects are wrapped with
      * mx.utils.ObjectProxy and Arrays are wrapped with
      * mx.collections.ArrayCollection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get makeObjectsBindable():Boolean
     {
@@ -71,6 +76,11 @@
      * to post process the decoded objects and identify which concrete
      * implementation of a potentially abstract type was used.
      * The default is false.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get recordXSIType():Boolean
     {
@@ -85,6 +95,11 @@
     /**
      * Maps XML Schema types by QName to ActionScript Classes in order to
      * create strongly typed objects when decoding content.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get typeRegistry():SchemaTypeRegistry
     {
@@ -117,6 +132,11 @@
      * @param definition If neither a top level element nor type exists in the
      * schema to describe how to decode this value, a custom element definition
      * can be provided.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function decode(xml:*, name:QName = null, type:QName = null, definition:XML = null):*
     {
@@ -1784,6 +1804,11 @@
      * Resets the decoder to its initial state, including resetting any
      * Schema scope to the top level and releases the current XML document by
      * setting it to null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function reset():void
     {
@@ -1974,6 +1999,11 @@
      * the given name. If a single child element exists that contains simple
      * content, the simple content is returned unwrapped.
      * @see #parseValue
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getValue(parent:*, name:*, index:Number = -1):*
     {
@@ -2274,6 +2304,11 @@
      * Tests whether a given namespace is included in a wildcard definition. If
      * no restrictions are provided the default behavior is to include all
      * namespaces.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function includeNamespace(namespaceURI:String, includedNamespaces:Array = null):Boolean
     {
@@ -2472,6 +2507,11 @@
      *  If you need the package name as well, call the
      *  getQualifiedClassName() method in the flash.utils package.
      *  It will return a string such as "mx.controls::Button".

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function getUnqualifiedClassName(object:Object):String
     {
@@ -2502,11 +2542,21 @@
      * The mx.collections.IList implementation to use when decoding
      * an array of values and makeObjectsBindable is set to true.
      * The default is mx.collections.ArrayCollection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static var listClass:Class = mx.collections.ArrayCollection;

     /**
      * The current, top level XML document to decode.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected var document:XML;
     private var log:ILogger;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -2395,6 +2395,51 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     * Converts the point object from the object's (local) coordinates
+     * to the Stage (global) coordinates.
+     *
+     *
This method allows you to convert any given x and y coordinates from
+     * values that are relative to the origin (0,0) of a specific object
+     * (local coordinates) to values that are relative to the origin
+     * of the Stage (global coordinates).

+     *
+     *
To use this method, first create an instance of the Point class.
+     * The x and y values that you assign represent local coordinates
+     * because they relate to the origin of the object.

+     *
+     *
You then pass the Point instance that you created as the parameter
+     * to the localToGlobal() method. The method returns a new Point object
+     * with x and y values that relate to the origin of the Stage instead of
+     * the origin of the object.

+     *
+     * @param point The name or identifier of a point created with the Point
+     * class, specifying the x and y coordinates as properties.
+     *
+     * @return A Point object with coordinates relative to the Stage.
+     *
+     * @see flash.display.DisplayObject#localToGlobal
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function localToGlobal(point:Point):Point
+    {
+        // Probably won't hit this case
+        if (!displayObject)
+            return new Point(x, y);
+
+        if (needsDisplayObject)
+            return displayObject.localToGlobal(point);
+
+        var returnVal:Point = displayObject.parent.localToGlobal(point);
+        returnVal.x += x;
+        returnVal.y += y;
+        return returnVal;
+    }
+
     /**
      *  @inheritDoc
      *


tests

tests

--- testSrc/TestStream.as
+++ testSrc/TestStream.as
@@ -17,10 +17,7 @@
     import com.kemsky.impl.filters.subtract;

     import flash.utils.ByteArray;
-
     import flash.utils.Dictionary;
-
-    import flashx.textLayout.debug.assert;

     import mx.collections.ArrayCollection;
     import mx.collections.IList;


ImageEditor, Flash: ShaderJob instance in the ShaderEvent.COMPLETE event has a false target property.

--- src/flash/src/com/ImageEditor.as
+++ src/flash/src/com/ImageEditor.as
@@ -332,7 +332,7 @@
 					onJobComplete(job.target);
 				} else {
 					job.addEventListener(ShaderEvent.COMPLETE, function(e:ShaderEvent) : void {
-						onJobComplete(e.target.target);
+						onJobComplete(tmpBd);
 					}, false, 0, true);
 					job.start();
 				}


Fix AVM1 event broadcaster to correctly pass on arguments to listeners

Using `Array.prototype.slice.call(arguments, 1)` didn't work at all, but `...args` does.

--- src/avm1lib/AVM1Broadcaster.as
+++ src/avm1lib/AVM1Broadcaster.as
@@ -25,8 +25,7 @@
   }
 }

-function _broadcastMessage(eventName: String): void {
-  var args: Array = Array.prototype.slice.call(arguments, 1);
+function _broadcastMessage(eventName: String, ...args): void {
   var listeners: Array = this._listeners;
   for (var i: int = 0; i < listeners.length; i++) {
     var listener: Object = listeners[i];


FIXED bug causing out-of-range array access if there are multiple token/notification callbacks and one of them is removed when they are triggered

--- actionscript/src/com/marpies/ane/onesignal/OneSignal.as
+++ actionscript/src/com/marpies/ane/onesignal/OneSignal.as
@@ -497,23 +497,13 @@

         private static function onStatus( event:StatusEvent ):void {
             var responseJSON:Object = null;
-            var i:int;
-            var length:int;
             var callback:Function = null;
             switch( event.code ) {
                 case TOKEN_RECEIVED:
-                    responseJSON = JSON.parse( event.level );
-                    length = mTokenCallbacks.length;
-                    for( i = 0; i < length; ++i ) {
-                        mTokenCallbacks[i]( responseJSON.userId, responseJSON.pushToken );
-                    }
+                    triggerTokenCallbacks( event.level );
                     return;
                 case NOTIFICATION_RECEIVED:
-                    responseJSON = JSON.parse( event.level );
-                    length = mNotificationCallbacks.length;
-                    for( i = 0; i < length; ++i ) {
-                        mNotificationCallbacks[i]( OneSignalNotification.fromJSON( responseJSON ) );
-                    }
+                    triggerNotificationCallbacks( event.level );
                     return;
                 case TAGS_RECEIVED:
                     responseJSON = JSON.parse( event.level );
@@ -543,6 +533,46 @@
         }

         /**
+         * Calls the registered token callbacks.
+         *
+         * @param eventResponse String JSON that contains OneSignal user id and possibly also push token.
+         */
+        private static function triggerTokenCallbacks( eventResponse:String ):void {
+            var length:int = mTokenCallbacks.length;
+            /* Create callbacks copy because a callback may be removed when triggered */
+            if( length > 0 ) {
+                var responseJSON:Object = JSON.parse( eventResponse );
+                var tempCallbacks:Vector.<Function> = new <Function>[];
+                for( var i:int = 0; i < length; ++i ) {
+                    tempCallbacks[i] = mTokenCallbacks[i];
+                }
+                for( i = 0; i < length; ++i ) {
+                    tempCallbacks[i]( responseJSON.userId, responseJSON.pushToken );
+                }
+            }
+        }
+
+        /**
+         * Calls the registered notification callbacks.
+         *
+         * @param eventResponse String JSON that contains data about received notification.
+         */
+        private static function triggerNotificationCallbacks( eventResponse:String ):void {
+            var length:int = mNotificationCallbacks.length;
+            /* Create callbacks copy because a callback may be removed when triggered */
+            if( length > 0 ) {
+                var responseJSON:Object = JSON.parse( eventResponse );
+                var tempCallbacks:Vector.<Function> = new <Function>[];
+                for( var i:int = 0; i < length; ++i ) {
+                    tempCallbacks[i] = mNotificationCallbacks[i];
+                }
+                for( i = 0; i < length; ++i ) {
+                    tempCallbacks[i]( OneSignalNotification.fromJSON( responseJSON ) );
+                }
+            }
+        }
+
+        /**
          * Registers given callback and generates ID which is used to look the callback up when it is time to call it.
          * @param callback Function to register.
          * @return ID of the callback.


Transferred from the Adobe Open Source Subversion Repository

Revision: 18279
Author:   chiedozi@adobe.com
Date:     2010-10-21T21:54:20.944908Z

Log Message:
-----------
PARB changes
updatePropertiesForView was renamed updateControlsForView
exitApplicationOnBackKey is now mx_internal in ViewNavigator and MobileApplication classes

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
@@ -284,7 +284,7 @@
     /**
      *  @private
      */
-    override public function get exitApplicationOnBackKey():Boolean
+    override mx_internal function get exitApplicationOnBackKey():Boolean
     {
     	if (activeNavigator)
     		return activeNavigator.exitApplicationOnBackKey;
@@ -460,9 +460,9 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    override public function updatePropertiesForView(view:View):void
-    {
-        super.updatePropertiesForView(view);
+    override public function updateControlsForView(view:View):void
+    {
+        super.updateControlsForView(view);

         if (view)
         {
@@ -671,7 +671,7 @@

                 if (navigator.activeView)
                 {
-                    updatePropertiesForView(navigator.activeView);
+                    updateControlsForView(navigator.activeView);
                     navigator.activeView.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
                                                             view_propertyChangeHandler);