Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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


Change terminology from "Tor" to "relay" because this is going to work for SSH also.

--- swfcat.as
+++ swfcat.as
@@ -17,7 +17,7 @@
     {
         /* David's relay (nickname 3VXRyxz67OeRoqHn) that also serves a
            crossdomain policy. */
-        private const DEFAULT_TOR_ADDR:Object = {
+        private const DEFAULT_RELAY_ADDR:Object = {
             host: "173.255.221.44",
             port: 9001
         };
@@ -222,7 +222,7 @@
             /* Update the client count on the badge. */
             update_client_count();

-            proxy_pair = new ProxyPair(this, client_addr, DEFAULT_TOR_ADDR);
+            proxy_pair = new ProxyPair(this, client_addr, DEFAULT_RELAY_ADDR);
             proxy_pair.addEventListener(Event.COMPLETE, function(e:Event):void {
                 proxy_pair.log("Complete.");

@@ -408,34 +408,34 @@
     {
         s_r = new Socket();

-        s_r.addEventListener(Event.CONNECT, tor_connected);
+        s_r.addEventListener(Event.CONNECT, relay_connected);
         s_r.addEventListener(Event.CLOSE, function (e:Event):void {
-            log("Tor: closed.");
+            log("Relay: closed.");
             if (s_c.connected)
                 s_c.close();
             dispatchEvent(new Event(Event.COMPLETE));
         });
         s_r.addEventListener(IOErrorEvent.IO_ERROR, function (e:IOErrorEvent):void {
-            log("Tor: I/O error: " + e.text + ".");
+            log("Relay: I/O error: " + e.text + ".");
             if (s_c.connected)
                 s_c.close();
             dispatchEvent(new Event(Event.COMPLETE));
         });
         s_r.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (e:SecurityErrorEvent):void {
-            log("Tor: security error: " + e.text + ".");
+            log("Relay: security error: " + e.text + ".");
             if (s_c.connected)
                 s_c.close();
             dispatchEvent(new Event(Event.COMPLETE));
         });
         s_r.addEventListener(ProgressEvent.SOCKET_DATA, relay_to_client);

-        log("Tor: connecting to " + addr_r.host + ":" + addr_r.port + ".");
+        log("Relay: connecting to " + addr_r.host + ":" + addr_r.port + ".");
         s_r.connect(addr_r.host, addr_r.port);
     }

-    private function tor_connected(e:Event):void
-    {
-        log("Tor: connected.");
+    private function relay_connected(e:Event):void
+    {
+        log("Relay: connected.");

         s_c = new Socket();

@@ -507,7 +507,7 @@
         while (!ui.rate_limit.is_limited() &&
                (r2c_schedule.length > 0 || c2r_schedule.length > 0)) {
             if (r2c_schedule.length > 0)
-                transfer_chunk(s_r, s_c, r2c_schedule.shift(), "Tor");
+                transfer_chunk(s_r, s_c, r2c_schedule.shift(), "Relay");
             if (c2r_schedule.length > 0)
                 transfer_chunk(s_c, s_r, c2r_schedule.shift(), "Client");
         }


Killed fromOrdinal().
Not available in Java, and generally a bad idea.
Pretend ordinal() doesn't exist, unless you're writing EnumSet, or something.

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

--- src/as/com/threerings/util/Enum.as
+++ src/as/com/threerings/util/Enum.as
@@ -35,7 +35,7 @@
  *     public static const TWO :Foo = new Foo("TWO");
  *     finishedEnumerating(Foo);
  *
- *     // {at}private
+ *     / **  {at}private * /
  *     public function Foo (name :String)
  *     {
  *         super(name);
@@ -144,18 +144,6 @@
     }

     /**
-     * Return the Enum of the given class with the given ordinal value.
-     */
-    public static function fromOrdinal (clazz :Class, ordinal :int) :Enum
-    {
-        var values :Array = values(clazz);
-        if (ordinal >= 0 && ordinal < values.length) {
-            return values[ordinal];
-        }
-        throw new ArgumentError("No such enum [class=" + clazz + ", ordinal=" + ordinal + "].");
-    }
-
-    /**
      * Turn a String name into an Enum constant.
      */
     public static function valueOf (clazz :Class, name :String) :Enum


added debug flag instead of having unreachable code

--- WeaveData/src/weave/utils/ColumnUtils.as
+++ WeaveData/src/weave/utils/ColumnUtils.as
@@ -49,6 +49,8 @@
 	 */
 	public class ColumnUtils
 	{
+		public static var debugKeyTypes:Boolean = false;
+
 		/**
 		 * This is a shortcut for column.getMetadata(ColumnMetadata.TITLE).
 		 * @param column A column to get the title of.
@@ -58,8 +60,7 @@
 		{
 			var title:String = column.getMetadata(ColumnMetadata.TITLE) || ProxyColumn.DATA_UNAVAILABLE;

-			// debug code
-			if (false)
+			if (debugKeyTypes)
 			{
 				var keyType:String = column.getMetadata(ColumnMetadata.KEY_TYPE);
 				if (keyType)


Reduce instantiation of Starling's Tween

--- krew-framework/krewfw/core/KrewActor.as
+++ krew-framework/krewfw/core/KrewActor.as
@@ -421,8 +421,15 @@
         }

         public function enchant(duration:Number, transition:String=Transitions.LINEAR):Tween {
-            var tween:Tween = new Tween(this, duration, transition);
-            addTween(tween);
+            if (!layer) {
+                krew.fwlog('[Error] [KrewActor::enchant] This actor does not belong to any layer.');
+                krew.fwlog('   - class: ' + getQualifiedClassName(this));
+                return null;
+            }
+
+            // * juggler.tween use object pooling internally
+            var tween:Tween = layer.juggler.tween(this, duration, {transition: transition}) as Tween;
+
             return tween;
         }


Switches now hard switches.

Switches now hard switches.

--- HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
+++ HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
@@ -754,8 +754,8 @@
 				return pber;
 			}

-			// Report stalls.
-			if (stalled)
+			// Report stalls and/or wait on timebase establishment.
+			if (stalled || _bestEffortDownloaderMonitor)
 			{
 				trace("Stalling -- quality[" + quality + "] lastQuality[" + lastQuality + "]");
 				return new HTTPStreamRequest(HTTPStreamRequestKind.LIVE_STALL);
@@ -768,7 +768,7 @@
 			quality = getWorkingQuality(quality);
 			//trace("Post GWQ " + quality);

-			var currentManifest:HLSManifestParser = getManifestForQuality ( quality );
+			var currentManifest:HLSManifestParser = getManifestForQuality ( origQuality );
 			var segments:Vector.<HLSManifestSegment> = currentManifest.segments;

 			// If no knowledge available, cue up a best effort fetch.
@@ -778,7 +778,7 @@
 				if(!_bestEffortDownloaderMonitor)
 				{
 					trace("Initiating best effort request");
-					return initiateBestEffortRequest(uint.MAX_VALUE, quality);
+					return initiateBestEffortRequest(uint.MAX_VALUE, origQuality);
 				}
 				else
 				{


Reformatted

Reformatted

--- sh/saqoo/as3mod/Bend.as
+++ sh/saqoo/as3mod/Bend.as
@@ -1,81 +1,121 @@
 /**
  * This version cannot change the mod axis.
  */
-package sh.saqoo.as3mod {
-
-	import com.as3dmod.IModifier;
-	import com.as3dmod.core.MeshProxy;
-	import com.as3dmod.core.Modifier;
-	import com.as3dmod.core.VertexProxy;
-	import com.as3dmod.util.ModConstant;
-
-	import flash.geom.Matrix;
-	import flash.geom.Point;
-
-	public class Bend extends Modifier implements IModifier {
-
-		protected var _min:Number;
-		protected var _height:Number;
-
-		protected var _force:Number = 0;
-		protected var _angle:Number = 0;
-
-		private var _m1:Matrix;
-		private var _m2:Matrix;
-
-		public function Bend() {
-		}
+package sh.saqoo.as3mod
+{
+    import com.as3dmod.IModifier;
+    import com.as3dmod.core.MeshProxy;
+    import com.as3dmod.core.Modifier;
+    import com.as3dmod.core.VertexProxy;
+    import com.as3dmod.util.ModConstant;

-		override public function setModifiable(mod:MeshProxy):void {
-			super.setModifiable(mod);
-			_min = mod.getMin(ModConstant.Y);
-			angle = 0;
-		}
+    import flash.geom.Matrix;
+    import flash.geom.Point;

-		public function set force(f:Number):void { _force = f; }
-		public function get force():Number { return _force; }
+	/**
+	 * @author Saqoosha
+	 */
+    public class Bend extends Modifier implements IModifier
+    {
+        protected var _min:Number;
+        protected var _height:Number;
+        protected var _force:Number = 0;
+        protected var _angle:Number = 0;
+        private var _m1:Matrix;
+        private var _m2:Matrix;

-		public function get angle():Number { return _angle; }
-		public function set angle(a:Number):void {
-			_angle = a;
-			_m1 = new Matrix();
-			_m1.rotate(_angle);
-			_m2 = new Matrix();
-			_m2.rotate(-_angle);
-		}
+		/**
+		 *
+		 */
+        public function Bend()
+        {
+        }

-		private var _tp:Point = new Point();
-		public function apply():void {
-			if (_force == 0) {
-				return;
-			}
-
-			var vs:Array = mod.getVertices();
-			var vc:int = vs.length;
-
-			var radius:Number = mod.height / Math.PI / _force;
-			var bendRad:Number = Math.PI * 2 * (mod.height / (radius * Math.PI * 2));
-
-			for (var i:int = 0; i < vc; i++) {
-				var v:VertexProxy = vs[i] as VertexProxy;
-
-				var p:Number = (v.y - _min) / mod.height;
-				_tp.x = v.x;
-				_tp.y = v.z;
-				_tp = _m1.transformPoint(_tp);
-
-				var fa:Number = (Math.PI / 2) + (bendRad * p);
-				var op:Number = Math.sin(fa) * (radius + _tp.x);
-				var ow:Number = Math.cos(fa) * (radius + _tp.x);
+		/**
+		 *
+		 */
+        override public function setModifiable(mod:MeshProxy):void
+        {
+            super.setModifiable(mod);
+            _min = mod.getMin(ModConstant.Y);
+            angle = 0;
+        }

-				_tp.x = op - radius;
-
-				_tp = _m2.transformPoint(_tp);
-
-				v.x = _tp.x;
-				v.y = _min - ow;
-				v.z = _tp.y;
-			}
-		}
-	}
+		/**
+		 *
+		 */
+        public function set force(f:Number):void
+        {
+            _force = f;
+        }
+
+		/**
+		 *
+		 */
+        public function get force():Number
+        {
+            return _force;
+        }
+
+		/**
+		 *
+		 */
+        public function get angle():Number
+        {
+            return _angle;
+        }
+
+		/**
+		 *
+		 */
+        public function set angle(a:Number):void
+        {
+            _angle = a;
+            _m1 = new Matrix();
+            _m1.rotate(_angle);
+            _m2 = new Matrix();
+            _m2.rotate(-_angle);
+        }
+
+        private var _tp:Point = new Point();
+
+		/**
+		 *
+		 */
+        public function apply():void
+        {
+            if (_force == 0)
+            {
+                return;
+            }
+
+            var vs:Array = mod.getVertices();
+            var vc:int = vs.length;
+
+            var radius:Number = mod.height / Math.PI / _force;
+            var bendRad:Number = Math.PI * 2 * (mod.height / (radius * Math.PI * 2));
+
+            for (var i:int = 0; i < vc; i++)
+            {
+                var v:VertexProxy = vs[i] as VertexProxy;
+
+                var p:Number = (v.y - _min) / mod.height;
+                _tp.x = v.x;
+                _tp.y = v.z;
+                _tp = _m1.transformPoint(_tp);
+
+                var fa:Number = (Math.PI / 2) + (bendRad * p);
+                var op:Number = Math.sin(fa) * (radius + _tp.x);
+                var ow:Number = Math.cos(fa) * (radius + _tp.x);
+
+                _tp.x = op - radius;
+
+                _tp = _m2.transformPoint(_tp);
+
+                v.x = _tp.x;
+                v.y = _min - ow;
+                v.z = _tp.y;
+            }
+        }
+    }
 }


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

--- frameworks/projects/framework/src/mx/core/FlexSprite.as
+++ frameworks/projects/framework/src/mx/core/FlexSprite.as
@@ -0,0 +1,98 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+import flash.display.Sprite;
+import mx.utils.NameUtil;
+
+/**
+ *  FlexSprite is a subclass of the Player's Sprite class
+ *  and the superclass of UIComponent.
+ *  It overrides the toString() method
+ *  to return a string indicating the location of the object
+ *  within the hierarchy of DisplayObjects in the application.
+ */
+public class FlexSprite extends Sprite
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+	 *
+	 *
Sets the name property to a string
+	 *  returned by the createUniqueName()
+	 *  method of the mx.utils.NameUtils class.

+	 *
+	 *
This string is the name of the object's class concatenated
+	 *  with an integer that is unique within the application,
+	 *  such as "Button17".

+	 *
+	 *  @see flash.display.DisplayObject#name
+	 *  @see mx.utils.NameUtil#createUniqueName()
+     */
+    public function FlexSprite()
+	{
+		super();
+
+		try
+		{
+			name = NameUtil.createUniqueName(this);
+		}
+		catch(e:Error)
+		{
+			// The name assignment above can cause the RTE
+			//   Error #2078: The name property of a Timeline-placed
+			//   object cannot be modified.
+			// if this class has been associated with an asset
+			// that was created in the Flash authoring tool.
+			// The only known case where this is a problem is when
+			// an asset has another asset PlaceObject'd onto it and
+			// both are embedded separately into a Flex application.
+			// In this case, we ignore the error and toString() will
+			// use the name assigned in the Flash authoring tool.
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  Returns a string indicating the location of this object
+	 *  within the hierarchy of DisplayObjects in the Application.
+	 *  This string, such as "MyApp0.HBox5.Button17",
+	 *  is built by the displayObjectToString() method
+	 *  of the mx.utils.NameUtils class from the name
+	 *  property of the object and its ancestors.
+	 *
+	 *  @return A String indicating the location of this object
+	 *  within the DisplayObject hierarchy.
+	 *
+	 *  @see flash.display.DisplayObject#name
+	 *  @see mx.utils.NameUtil#displayObjectToString()
+     */
+    override public function toString():String
+	{
+		return NameUtil.displayObjectToString(this);
+	}
+}
+
+}


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

--- frameworks/projects/framework/src/mx/logging/ILogger.as
+++ frameworks/projects/framework/src/mx/logging/ILogger.as
@@ -0,0 +1,283 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.logging
+{
+
+import flash.events.IEventDispatcher;
+
+/**
+ *  All loggers within the logging framework must implement this interface.
+ */
+public interface ILogger extends IEventDispatcher
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  category
+    //----------------------------------
+
+    /**
+     *  The category value for the logger.
+     *
+     *  @return String containing the category for this logger.
+     */
+    function get category():String;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Logs the specified data at the given level.
+     *
+     *
The String specified for logging can contain braces with an index
+     *  indicating which additional parameter should be inserted
+     *  into the String before it is logged.
+     *  For example "the first additional parameter was {0} the second was {1}"
+     *  is translated into "the first additional parameter was 10 the
+     *  second was 15" when called with 10 and 15 as parameters.

+     *
+     *  @param level The level this information should be logged at.
+     *  Valid values are:
+     *

+     *
LogEventLevel.FATAL designates events that are very
+     *    harmful and will eventually lead to application failure

+     *
+     *
LogEventLevel.ERROR designates error events
+     *    that might still allow the application to continue running.

+     *
+     *
LogEventLevel.WARN designates events that could be
+     *    harmful to the application operation

+     *
+     *
LogEventLevel.INFO designates informational messages
+     *    that highlight the progress of the application at
+     *    coarse-grained level.

+     *
+     *
LogEventLevel.DEBUG designates informational
+     *    level messages that are fine grained and most helpful when
+     *    debugging an application.

+     *
+     *
LogEventLevel.ALL intended to force a target to
+     *    process all messages.

+     *

+     *
+     *  @param message The information to log.
+     *  This String can contain special marker characters of the form {x},
+     *  where x is a zero based index that will be replaced with
+     *  the additional parameters found at that index if specified.
+     *
+     *  @param rest Additional parameters that can be subsituted in the str
+     *  parameter at each "{x}" location, where x
+     *  is an integer (zero based) index value into the Array of values
+     *  specified.
+     *
+     *  @example
+     *

+     *  // Get the logger for the mx.messaging.Channel "category"
+     *  // and send some data to it.
+     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
+     *  logger.log(LogEventLevel.DEBUG, "here is some channel info {0} and {1}", LogEventLevel.DEBUG, 15.4, true);
+     *
+     *  // This will log the following String as a DEBUG log message:
+     *  //   "here is some channel info 15.4 and true"
+     *

+     *
+     */
+    function log(level:int, message:String, ... rest):void;
+
+    /**
+     *  Logs the specified data using the LogEventLevel.DEBUG
+     *  level.
+     *  LogEventLevel.DEBUG designates informational level
+     *  messages that are fine grained and most helpful when debugging
+     *  an application.
+     *
+     *
The string specified for logging can contain braces with an index
+     *  indicating which additional parameter should be inserted
+     *  into the string before it is logged.
+     *  For example "the first additional parameter was {0} the second was {1}"
+     *  will be translated into "the first additional parameter was 10 the
+     *  second was 15" when called with 10 and 15 as parameters.

+     *
+     *  @param message The information to log.
+     *  This string can contain special marker characters of the form {x},
+     *  where x is a zero based index that will be replaced with
+     *  the additional parameters found at that index if specified.
+     *
+     *  @param rest Additional parameters that can be subsituted in the str
+     *  parameter at each "{x}" location, where x
+     *  is an integer (zero based) index value into the Array of values
+     *  specified.
+     *
+     *  @example
+     *

+     *  // Get the logger for the mx.messaging.Channel "category"
+     *  // and send some data to it.
+     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
+     *  logger.debug("here is some channel info {0} and {1}", 15.4, true);
+     *
+     *  // This will log the following String:
+     *  //   "here is some channel info 15.4 and true"
+     *

+     */
+    function debug(message:String, ... rest):void;
+
+    /**
+     *  Logs the specified data using the LogEventLevel.ERROR
+     *  level.
+     *  LogEventLevel.ERROR designates error events
+     *  that might still allow the application to continue running.
+     *
+     *
The string specified for logging can contain braces with an index
+     *  indicating which additional parameter should be inserted
+     *  into the string before it is logged.
+     *  For example "the first additional parameter was {0} the second was {1}"
+     *  will be translated into "the first additional parameter was 10 the
+     *  second was 15" when called with 10 and 15 as parameters.

+     *
+     *  @param message The information to log.
+     *  This String can contain special marker characters of the form {x},
+     *  where x is a zero based index that will be replaced with
+     *  the additional parameters found at that index if specified.
+     *
+     *  @param rest Additional parameters that can be subsituted in the str
+     *  parameter at each "{x}" location, where x
+     *  is an integer (zero based) index value into the Array of values
+     *  specified.
+     *
+     *  @example
+     *

+     *  // Get the logger for the mx.messaging.Channel "category"
+     *  // and send some data to it.
+     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
+     *  logger.error("here is some channel info {0} and {1}", 15.4, true);
+     *
+     *  // This will log the following String:
+     *  //   "here is some channel info 15.4 and true"
+     *

+     */
+    function error(message:String, ... rest):void;
+
+    /**
+     *  Logs the specified data using the LogEventLevel.FATAL
+     *  level.
+     *  LogEventLevel.FATAL designates events that are very
+     *  harmful and will eventually lead to application failure
+     *
+     *
The string specified for logging can contain braces with an index
+     *  indicating which additional parameter should be inserted
+     *  into the string before it is logged.
+     *  For example "the first additional parameter was {0} the second was {1}"
+     *  will be translated into "the first additional parameter was 10 the
+     *  second was 15" when called with 10 and 15 as parameters.

+     *
+     *  @param message The information to log.
+     *  This String can contain special marker characters of the form {x},
+     *  where x is a zero based index that will be replaced with
+     *  the additional parameters found at that index if specified.
+     *
+     *  @param rest Additional parameters that can be subsituted in the str
+     *  parameter at each "{x}" location, where x
+     *  is an integer (zero based) index value into the Array of values
+     *  specified.
+     *
+     *  @example
+     *

+     *  // Get the logger for the mx.messaging.Channel "category"
+     *  // and send some data to it.
+     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
+     *  logger.fatal("here is some channel info {0} and {1}", 15.4, true);
+     *
+     *  // This will log the following String:
+     *  //   "here is some channel info 15.4 and true"
+     *

+     */
+    function fatal(message:String, ... rest):void;
+
+    /**
+     *  Logs the specified data using the LogEvent.INFO level.
+     *  LogEventLevel.INFO designates informational messages that
+     *  highlight the progress of the application at coarse-grained level.
+     *
+     *
The string specified for logging can contain braces with an index
+     *  indicating which additional parameter should be inserted
+     *  into the string before it is logged.
+     *  For example "the first additional parameter was {0} the second was {1}"
+     *  will be translated into "the first additional parameter was 10 the
+     *  second was 15" when called with 10 and 15 as parameters.

+     *
+     *  @param message The information to log.
+     *  This String can contain special marker characters of the form {x},
+     *  where x is a zero based index that will be replaced with
+     *  the additional parameters found at that index if specified.
+     *
+     *  @param rest Additional parameters that can be subsituted in the str
+     *  parameter at each "{x}" location, where x
+     *  is an integer (zero based) index value into the Array of values
+     *  specified.
+     *
+     *  @example
+     *

+     *  // Get the logger for the mx.messaging.Channel "category"
+     *  // and send some data to it.
+     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
+     *  logger.info("here is some channel info {0} and {1}", 15.4, true);
+     *
+     *  // This will log the following String:
+     *  //   "here is some channel info 15.4 and true"
+     *

+     */
+    function info(message:String, ... rest):void;
+
+    /**
+     *  Logs the specified data using the LogEventLevel.WARN level.
+     *  LogEventLevel.WARN designates events that could be harmful
+     *  to the application operation.
+     *
+     *
The string specified for logging can contain braces with an index
+     *  indicating which additional parameter should be inserted
+     *  into the string before it is logged.
+     *  For example "the first additional parameter was {0} the second was {1}"
+     *  will be translated into "the first additional parameter was 10 the
+     *  second was 15" when called with 10 and 15 as parameters.

+     *
+     *  @param message The information to log.
+     *  This String can contain special marker characters of the form {x},
+     *  where x is a zero based index that will be replaced with
+     *  the additional parameters found at that index if specified.
+     *
+     *  @param rest Aadditional parameters that can be subsituted in the str
+     *  parameter at each "{x}" location, where x
+     *  is an integer (zero based) index value into the Array of values
+     *  specified.
+     *
+     *  @example
+     *

+     *  // Get the logger for the mx.messaging.Channel "category"
+     *  // and send some data to it.
+     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
+     *  logger.warn("here is some channel info {0} and {1}", 15.4, true);
+     *
+     *  // This will log the following String:
+     *  //   "here is some channel info 15.4 and true"
+     *

+     */
+    function warn(message:String, ... rest):void;
+}
+
+}


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

--- frameworks/projects/framework/src/mx/states/SetStyle.as
+++ frameworks/projects/framework/src/mx/states/SetStyle.as
@@ -1,15 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.
-//
-//  AdobePatentID="B770"
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.states
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 10203
Author:   klin@adobe.com
Date:     2009-09-12T23:14:39.753219Z

Log Message:
-----------
http://bugs.adobe.com/jira/browse/SDK-23113 - Bug where backgroundColor and backgroundAlpha would show up twice in the ASDocs.

I pulled out the two styles into separate style files that distinguish between having just the halo theme (some components) or both halo and spark (Container and container subclasses). Updated other components to include the right style files.

QE notes: None
Doc notes: Check to make sure duplicates are not there.
Bugs: SDK-23113
Reviewer: Glenn
Tests run: local asdoc
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BackgroundStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/mx/src/mx/core/ScrollControlBase.as
+++ frameworks/projects/mx/src/mx/core/ScrollControlBase.as
@@ -44,6 +44,7 @@
  */
 [Event(name="scroll", type="mx.events.ScrollEvent")]

+include "../styles/metadata/BackgroundStyles.as"
 include "../styles/metadata/BorderStyles.as"
 include "../styles/metadata/LeadingStyle.as"
 include "../styles/metadata/TextStyles.as"


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

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

 package mx.effects.easing
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3147
Author:   gosmith@adobe.com
Date:     2008-09-08T20:42:17.471267Z

Log Message:
-----------
You can now use CSS styles to set the text format for TextBox and the default text format for TextGraphic. These components no longer have any formatting properties.

Metadata for the styles that affect Gumbo text formatting is in six new include files in styles/metadata:

    BasicCharacterFormatTextStyles.as
    AdvancedContainerFormatTextStyles.as
    BasicParagraphFormatTextStyles.as
    AdvancedParagraphFormatTextStyles.as
    BasicContainerFormatTextStyles.as
    AdvancedContainerFormatTextStyles.as

TextBox supports the "basic" subset. TextGraphic supports all of them.

The 'global' selector now has the defaults for all of these styles. Five of them -- color, fontFamily, fontSize, kerning, and textAlign -- have default values which are, for now, the same as in Halo, but which may change later.

Reviewer: Glenn
Bugs: -
QA: Lots of new stuff to test!
Doc: No

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles/metadata/BasicParagraphFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextBox.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles/metadata/AdvancedContainerFormatTextStyles.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles/metadata/AdvancedParagraphFormatTextStyles.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles/metadata</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/flex4/src/flex/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles/metadata/BasicCharacterFormatTextStyles.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles/metadata/AdvancedCharacterFormatTextStyles.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/styles/metadata/BasicContainerFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -17,11 +17,20 @@
 import flash.geom.Rectangle;
 import flash.text.engine.ElementFormat;
 import flash.text.engine.FontDescription;
+import flash.text.engine.Kerning;

 import flex.graphics.graphicsClasses.TextBlockComposer;
 import flex.graphics.graphicsClasses.TextGraphicElement;

 [DefaultProperty("text")]
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+include "../styles/metadata/BasicContainerFormatTextStyles.as"
+include "../styles/metadata/BasicParagraphFormatTextStyles.as"
+include "../styles/metadata/BasicCharacterFormatTextStyles.as"

 /**
  *  Documentation is not currently available.
@@ -33,6 +42,38 @@

 	//--------------------------------------------------------------------------
 	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private static function getNumberOrPercentOf(value:Object,
+                                                 n:Number):Number
+    {
+        // If 'value' is a Number like 10.5, return it.
+        if (value is Number)
+            return Number(value);
+
+        // If 'value' is a percentage String like "10.5%",
+        // return that percentage of 'n'.
+        if (value is String)
+        {
+            var len:int = String(value).length;
+            if (len >= 1 && value.charAt(len - 1) == "%")
+            {
+                var percent:Number = Number(value.substring(0, len - 1));
+                return percent / 100 * n;
+            }
+        }
+
+        // Otherwise, return NaN.
+        return NaN;
+    }
+
+	//--------------------------------------------------------------------------
+	//
 	//  Constructor
 	//
 	//--------------------------------------------------------------------------
@@ -67,12 +108,14 @@
 	 */
     override protected function measure():void
     {
+        super.measure();
+
         var width:Number = !isNaN(explicitWidth) ? explicitWidth : Infinity;
         var height:Number = !isNaN(explicitHeight) ? explicitHeight : Infinity;
-		compose(width, height);
+        compose(width, height);

 		var r:Rectangle = textBlockComposer.actualBounds;
-		measuredWidth = Math.ceil(r.width);
+        measuredWidth = Math.ceil(r.width);
 		measuredHeight = Math.ceil(r.height);
 	}

@@ -99,32 +142,33 @@
 	private function compose(width:Number = Infinity,
 							 height:Number = Infinity):void
 	{
-		var fontDescription:FontDescription = new FontDescription();
-		fontDescription.fontName = fontFamily;
-		fontDescription.fontPosture = fontStyle;
-		fontDescription.fontWeight = fontWeight;
+        var fontDescription:FontDescription = new FontDescription();
+		fontDescription.cffHinting = getStyle("cffHinting");
+		fontDescription.fontLookup = getStyle("fontLookup");
+		fontDescription.fontName = getStyle("fontFamily");
+		fontDescription.fontPosture = getStyle("fontStyle");
+		fontDescription.fontWeight = getStyle("fontWeight");
+		fontDescription.renderingMode = getStyle("renderingMode");

 		var elementFormat:ElementFormat = new ElementFormat();
-		elementFormat.alpha = textAlpha;
-        elementFormat.color = color;
+		elementFormat.alignmentBaseline = getStyle("alignmentBaseline");
+		elementFormat.alpha = getStyle("textAlpha");
+        elementFormat.baselineShift = getStyle("baselineShift");
+        elementFormat.color = getStyle("color");
+        elementFormat.digitCase = getStyle("digitCase");
+        elementFormat.digitWidth = getStyle("digitWidth");
+        elementFormat.dominantBaseline = getStyle("dominantBaseline");
 		elementFormat.fontDescription = fontDescription;
-		elementFormat.fontSize = fontSize;
-		elementFormat.kerning = kerning;
-        if (tracking is Number)
-        {
-            elementFormat.trackingRight = Number(tracking);
-        }
-        else if (tracking is String)
-        {
-            var len:int = String(tracking).length;
-            if (tracking.charAt(len - 1) == "%")
-            {
-                var percent:Number = Number(tracking.substring(0, len - 1));
-                elementFormat.trackingRight = percent / 100 * fontSize;
-            }
-        }
-
-		textBlockComposer.removeTextLines(DisplayObjectContainer(displayObject));
+		elementFormat.fontSize = getStyle("fontSize");
+        setKerning(elementFormat);
+		elementFormat.ligatureLevel = getStyle("ligatureLevel");
+		elementFormat.locale = getStyle("locale");
+		elementFormat.textRotation = getStyle("textRotation");
+        setTracking(elementFormat);
+		elementFormat.typographicCase = getStyle("typographicCase");
+
+		textBlockComposer.removeTextLines(
+            DisplayObjectContainer(displayObject));

 		var bounds:Rectangle = textBlockComposer.requestedBounds;
 		bounds.x = 0;
@@ -132,18 +176,56 @@
 		bounds.width = width;
 		bounds.height = height;

-		textBlockComposer.lineHeight = lineHeight;
-		textBlockComposer.paddingLeft = paddingLeft;
-		textBlockComposer.paddingTop = paddingTop;
-		textBlockComposer.paddingRight = paddingRight;
-		textBlockComposer.paddingBottom = paddingBottom;
-		textBlockComposer.textAlign = textAlign;
-		textBlockComposer.verticalAlign = verticalAlign;
+		textBlockComposer.lineHeight = getStyle("lineHeight");
+		textBlockComposer.paddingBottom = getStyle("paddingBottom");
+		textBlockComposer.paddingLeft = getStyle("paddingLeft");
+		textBlockComposer.paddingRight = getStyle("paddingRight");
+		textBlockComposer.paddingTop = getStyle("paddingTop");
+		textBlockComposer.textAlign = getStyle("textAlign");
+		textBlockComposer.verticalAlign = getStyle("verticalAlign");

 		textBlockComposer.composeText(text, elementFormat);

 		textBlockComposer.addTextLines(DisplayObjectContainer(displayObject));
 	}
+
+	/**
+	 *  @private
+	 */
+    private function setKerning(elementFormat:ElementFormat):void
+    {
+        var kerning:Object = getStyle("kerning");
+
+        if (kerning === true)
+            kerning = Kerning.ON;
+        else if (kerning === false)
+            kerning = Kerning.OFF;
+
+        elementFormat.kerning = String(kerning);
+    }
+
+	/**
+	 *  @private
+	 */
+    private function setTracking(elementFormat:ElementFormat):void
+    {
+        var trackingLeft:Object = getStyle("trackingLeft");
+        var trackingRight:Object = getStyle("trackingRight");
+
+        if (trackingRight == null)
+            trackingRight = getStyle("tracking");
+
+        var value:Number;
+        var fontSize:Number = elementFormat.fontSize;
+
+        value = getNumberOrPercentOf(trackingLeft, fontSize);
+        if (!isNaN(value))
+            elementFormat.trackingLeft = value;
+
+        value = getNumberOrPercentOf(trackingRight, fontSize);
+        if (!isNaN(value))
+            elementFormat.trackingRight = value;
+    }
 }

 }


Fixed infobox/scroll interaction

Fixed infobox/scroll interaction

--- src/Displays/Infobox.as
+++ src/Displays/Infobox.as
@@ -63,7 +63,7 @@
 			super.update();
 			checkScroll();
 			checkControls();
-			if (bg.overlapsPoint(FlxG.mouse))
+			if (bg.overlapsPoint(FlxG.mouse, true))
 				U.buttonManager.moused = true;
 		}

@@ -97,7 +97,7 @@
 		}

 		protected function checkControls():void {
-			if (FlxG.mouse.justPressed() && !bg.overlapsPoint(FlxG.mouse)) // && tick?
+			if (FlxG.mouse.justPressed() && !bg.overlapsPoint(FlxG.mouse, true)) // && tick?
 				exists = false;
 			if (ControlSet.CANCEL_KEY.justPressed())
 				exists = false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

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:
--------------
663 paths were modified

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

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

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

@@ -143,6 +153,11 @@
  *
  *  @see mx.containers.GridRow
  *  @see mx.containers.GridItem
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class Grid extends Box
 {
@@ -156,6 +171,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function Grid()
     {
@@ -282,6 +302,11 @@
      *
      *
These properties correspond to the layout properties listed previously
      *  and, therefore, are not documented separately.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function measure():void
     {
@@ -584,6 +609,11 @@
      *  @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 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void


Update Lantern.as

Update Lantern.as


Transferred from the Adobe Open Source Subversion Repository

Revision: 8447
Author:   smgilson@adobe.com
Date:     2009-07-08T14:43:53.695916Z

Log Message:
-----------
Add ASDoc version info to IToggleButton.as and ITransientDeferredInstance.as.

Update ASDoc comments for IVisualElement.as and IVisualElementContainer.as

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITransientDeferredInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElementContainer.as</path>

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

--- frameworks/projects/framework/src/mx/core/IToggleButton.as
+++ frameworks/projects/framework/src/mx/core/IToggleButton.as
@@ -17,6 +17,11 @@
  *  component acts as a toggleable button.  It is used primarily as a filter
  *  by the framework's default button logic.  This interface is *only* used
  *  by legacy Halo components.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IToggleButton
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2464
Author:   jimurphy@adobe.com
Date:     2008-07-14T19:50:33.449468Z

Log Message:
-----------
add flex 4 to trunk

Modified Paths:
--------------
134 paths were modified

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

--- frameworks/projects/spark/src/spark/components/CheckBox.as
+++ frameworks/projects/spark/src/spark/components/CheckBox.as
@@ -0,0 +1,40 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.component
+{
+
+import flash.events.Event;
+import flash.events.MouseEvent;
+
+/**
+ *  Documentation is not currently available.
+ */
+public class CheckBox extends ToggleButton
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+	public function CheckBox()
+	{
+		super();
+	}
+}
+
+}


Fix RTE in focusInHandler when focusManager is null.

git-svn-id: 7d913817b0a978d84de757191e4bce372605a781@1416993 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -49,6 +49,7 @@
 import mx.events.FlexMouseEvent;
 import mx.events.PropertyChangeEvent;
 import mx.events.TouchInteractionEvent;
+import mx.managers.IFocusManager;
 import mx.managers.IFocusManagerComponent;
 import mx.styles.IStyleClient;

@@ -2143,10 +2144,12 @@
     {
         super.focusInHandler(event);

+		var fm:IFocusManager = focusManager;
+
         // When we gain focus, make sure the focused element is visible
-        if (viewport && ensureElementIsVisibleForSoftKeyboard)
-        {
-            var elt:IVisualElement = focusManager.getFocus() as IVisualElement;
+        if (fm && viewport && ensureElementIsVisibleForSoftKeyboard)
+        {
+            var elt:IVisualElement = fm.getFocus() as IVisualElement;
             lastFocusedElement = elt;
         }
     }


DataProvider wasn't cloned properly

DataProvider wasn't cloned properly

--- src/aerys/minko/type/data/DataProvider.as
+++ src/aerys/minko/type/data/DataProvider.as
@@ -177,7 +177,7 @@
 			{
 				case DataProviderUsage.EXCLUSIVE:
 				case DataProviderUsage.SHARED:
-					return new DataProvider(_propertyToNames, _name + '_cloned', _usage);
+					return new DataProvider(_nameToProperty, _name + '_cloned', _usage);

 				case DataProviderUsage.MANAGED:
 					throw new Error('This dataprovider is managed, and must not be cloned');


Sorry little buddy, you're not good enough.

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

--- src/as/com/threerings/util/ExpiringSet.as
+++ src/as/com/threerings/util/ExpiringSet.as
@@ -1,140 +0,0 @@
-//
-// $Id$
-
-package com.threerings.util {
-
-import flash.events.TimerEvent;
-import flash.utils.Timer;
-
-/**
- * Data structure that keeps its elements for a short time, and then removes them automatically.
- */
-public class ExpiringSet
-{
-    /**
-     * Initializes the expiring set.
-     *
-     * @param ttl Time to live value for set elements, in seconds.
-     * @param expirationHandler Optional function to be called when elements are forcibly
-     *            expired, due to exceeding their TTL. The function should be of the form:
-     *              <pre>  function (element :*) :void { }  </pre>
-     *            and it will be called with the element expired from the set.
-     */
-    public function ExpiringSet (ttl :Number, expirationHandler :Function)
-    {
-        _callback = expirationHandler;
-        _ttl = int(ttl * 1000);
-
-        _timer.addEventListener(TimerEvent.TIMER, expireElements);
-    }
-
-    public function empty () :Boolean
-    {
-        return _q.length == 0;
-    }
-
-    /** Returns true if the set already contains this element. */
-    public function contains (element :*) :Boolean
-    {
-        for each (var e :ExpiringElement in _q) {
-            if (e.equals(element)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /** If element is not present in the set, adds it and returns true; otherwise returns false. */
-    public function add (element :*) :Boolean
-    {
-        if (contains(element)) {
-            return false;
-        }
-
-        // push the item on the end of the queue. since each element has the same TTL,
-        // elements end up being ordered by their expiration time.
-        _q.push(new ExpiringElement(element, _ttl));
-        _timer.start();
-        return true;
-    }
-
-    /** If element is present in the set, removes it and returns true; otherwise returns false. */
-    public function remove (element :*) :Boolean
-    {
-        var result :Boolean = false;
-
-        // pull the item from anywhere in the queue
-        for (var ii :int = 0; ii < _q.length; ii++) {
-            var e :ExpiringElement = _q[ii] as ExpiringElement;
-            if (e.equals(element)) {
-                _q.splice(ii, 1);
-                result = true;
-                break;
-            }
-        }
-
-        if (empty()) {
-            _timer.stop(); // we ran out of elements. nothing left to expire.
-        }
-
-        return result;
-    }
-
-    /** Is the oldest element expired already? */
-    protected function headExpired () :Boolean
-    {
-        return empty() ? false : (_q[0] as ExpiringElement).expired();
-    }
-
-    /** Called on a timer, expires any elements that exceeded their time to live. */
-    protected function expireElements (event :TimerEvent) :void
-    {
-        while (headExpired()) {
-            // pop the head of the queue and send it to the custom callback
-            var head :ExpiringElement = _q.shift() as ExpiringElement;
-            if (_callback != null) {
-                _callback(head.element);
-            }
-        }
-
-        if (empty()) {
-            _timer.stop(); // nothing left to expire. let's wait until something is added again.
-        }
-    }
-
-    /** Array of ExpiringElement instances, sorted by expiration time. */
-    protected var _q :Array = new Array();
-
-    protected var _timer :Timer = new Timer(1000); // check every second
-    protected var _callback :Function;
-    protected var _ttl :int;
-}
-}
-
-
-import flash.utils.getTimer; // function import
-
-import com.threerings.util.Util;
-
-internal class ExpiringElement
-{
-    public var expirationTime :int;
-    public var element :*;
-
-    public function ExpiringElement (element :*, ttl :int)
-    {
-        this.element = element;
-        this.expirationTime = getTimer() + ttl;
-    }
-
-    public function expired () :Boolean
-    {
-        return expirationTime < getTimer();
-    }
-
-    public function equals (element :*) :Boolean
-    {
-        return Util.equals(element, this.element);
-    }
-}
-


Update textureResource to handle atf properly

--- src/aerys/minko/render/resource/texture/TextureResource.as
+++ src/aerys/minko/render/resource/texture/TextureResource.as
@@ -16,10 +16,11 @@
 	 */
 	public class TextureResource implements ITextureResource
 	{
-		private static const MAX_SIZE			: uint		= 2048;
-		private static const TMP_MATRIX			: Matrix	= new Matrix();
-		private static const FORMAT_BGRA		: String	= Context3DTextureFormat.BGRA
-		private static const FORMAT_COMPRESSED	: String	= Context3DTextureFormat.COMPRESSED;
+		private static const MAX_SIZE					: uint		= 2048;
+		private static const TMP_MATRIX					: Matrix	= new Matrix();
+		private static const FORMAT_BGRA				: String	= Context3DTextureFormat.BGRA
+		private static const FORMAT_COMPRESSED			: String	= Context3DTextureFormat.COMPRESSED;
+		private static const FORMAT_COMPRESSED_ALPHA 	: String 	= Context3DTextureFormat.COMPRESSED_ALPHA;

 		private var _texture	: Texture		= null;
 		private var _mipmap		: Boolean		= false;
@@ -124,7 +125,9 @@

 			atf.position 	= 6;

-			_atfFormat 		= atf.readUnsignedByte() & 3;
+			var formatByte 	: uint = atf.readUnsignedByte();
+
+			_atfFormat 		= formatByte & 7;
 			_width 			= 1 << atf.readUnsignedByte();
 			_height 		= 1 << atf.readUnsignedByte();
 			_mipmap 		= atf.readUnsignedByte() > 1;
@@ -141,10 +144,20 @@
 				if (_texture)
 					_texture.dispose();

+				var format : String = FORMAT_BGRA;
+
+				if (_atf)
+				{
+					if (_atfFormat == 5)
+						format = FORMAT_COMPRESSED_ALPHA;
+					else if (_atfFormat == 3)
+						format = FORMAT_COMPRESSED;
+				}
+
 				_texture = context.createTexture(
 					_width,
 					_height,
-					_atf && _atfFormat == 2 ? FORMAT_COMPRESSED : FORMAT_BGRA,
+					format,
 					_bitmapData == null && _atf == null
 				);

@@ -203,7 +216,7 @@
 			}
 			else if (_atf)
 			{
-				_texture.uploadCompressedTextureFromByteArray(_atf, 0, false);
+				_texture.uploadCompressedTextureFromByteArray(_atf, 0);
 			}
 		}


- change: renamed Vector to Vector2D, making reprise FP10-compatible (forgot to actually remove the old Vector class)

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

--- src/reprise/geom/Vector.as
+++ src/reprise/geom/Vector.as
@@ -1,170 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Fork unstable media GmbH
-//  Copyright 2006-2008 Fork unstable media GmbH
-//  All Rights Reserved.
-//
-//  NOTICE: Fork unstable media permits you to use, modify, and distribute this
-//  file in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package reprise.geom {
-	import reprise.utils.MathUtil;
-
-
-
-	public class Vector
-	{
-
-		public var x : Number;
-		public var y : Number;
-
-
-		public function Vector(x : Number, y : Number)
-		{
-			this.x = x;
-			this.y = y;
-		}
-
-		public function plus(v : Vector) : void
-		{
-			x += v.x;
-			y += v.y;
-		}
-
-		public function plusNew(v : Vector) : Vector
-		{
-			return new Vector(x + v.x, y + v.y);
-		}
-
-		public function minus(v : Vector) : void
-		{
-			x -= v.x;
-			y -= v.y;
-		}
-
-		public function minusNew(v : Vector) : Vector
-		{
-			return new Vector(x - v.x, y - v.y);
-		}
-
-		public function negate() : void
-		{
-			x = -x;
-			y = -y;
-		}
-
-		public function negateNew() : Vector
-		{
-			return new Vector(-x, -y);
-		}
-
-		public function scale(s : Number) : void
-		{
-			x *= s;
-			y *= s;
-		}
-
-		public function scaleNew(s : Number) : Vector
-		{
-			return new Vector(x * s, y * s);
-		}
-
-		public function getLength() : Number
-		{
-			return Math.sqrt(x * x + y * y);
-		}
-
-		public function setLength(len : Number) : void
-		{
-			var r : Number = getLength();
-			if (r) scale(len / r);
-			else x = len;
-		}
-
-		public function angle() : Number
-		{
-			return MathUtil.atan(x, y);
-		}
-
-		public function radians() : Number
-		{
-			return Math.atan2(y, x);
-		}
-
-		public function setAngle(angle : Number) : void
-		{
-			var r : Number = getLength();
-			x = r * MathUtil.cos(angle);
-			y = r * MathUtil.sin(angle);
-		}
-
-		public function rotate(angle : Number) : void
-		{
-			var ca : Number = MathUtil.cos(angle);
-			var sa : Number = MathUtil.sin(angle);
-			var rx : Number = x * ca - y * sa;
-			var ry : Number = x * sa + y * ca;
-			x = rx;
-			y = ry;
-		}
-
-		public function rotateNew(angle : Number) : Vector
-		{
-			var v : Vector = clone();
-			v.rotate(angle);
-			return v;
-		}
-
-		public function crossProduct(v : Vector) : Number
-		{
-			return (x * v.x + y * v.y);
-		}
-
-		public function normal() : Vector
-		{
-			return new Vector(-y, x);
-		}
-
-		public function isPerpTo(v : Vector) : Boolean
-		{
-			return (crossProduct(v) == 0);
-		}
-
-		public function angleBetween(v : Vector) : Number
-		{
-			var dp : Number = crossProduct(v);
-			var cosAngle : Number = dp / (getLength() * v.getLength());
-			return MathUtil.acos(cosAngle);
-		}
-
-		public function radiansBetween(v : Vector) : Number
-		{
-			var dp : Number = crossProduct(v);
-			var cosAngle : Number = dp / (getLength() * v.getLength());
-			return Math.acos(cosAngle);
-		}
-
-		public function equals(v : Vector) : Boolean
-		{
-			return (x == v.x && y == v.y);
-		}
-
-		public function clone() : Vector
-		{
-			return new Vector(x, y);
-		}
-
-		public function reset(x : Number, y : Number) : void
-		{
-			this.x = x;
-			this.y = y;
-		}
-
-		public function toString() : String
-		{
-			return "[class 'Vector' x:" + x + ", y:" + y + ", angle: " + angle() + "]";
-		}
-	}
-}


Tweak fix.

Tweak fix.

--- tamarin-central/thane/thane_core.as
+++ tamarin-central/thane/thane_core.as
@@ -21,8 +21,9 @@

 public class IllegalOperationError extends Error
 {
-    public function IllegalOperationError (str :String = null)
-    {
+    public function IllegalOperationError (message :String = null)
+    {
+        super(message);
     }
 }
 }


added Weave.prototype.requestObject()

added Weave.prototype.requestObject()

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -15,6 +15,7 @@
 	import weavejs.api.core.ISessionManager;
 	import weavejs.api.data.IAttributeColumn;
 	import weavejs.core.LinkableFunction;
+	import weavejs.core.LinkablePlaceholder;
 	import weavejs.core.SessionStateLog;
 	import weavejs.path.WeavePath;
 	import weavejs.path.WeavePathUI;
@@ -104,7 +105,42 @@
 			return Weave.followPath(root, path);
 		}

-
+		/**
+		 * Requests that an object be created if it doesn't already exist at the given path.
+		 * This function can also be used to assert that the object at the current path is of the type you expect it to be.
+		 * @param path The path
+		 * @param type The type
+		 * @return Either an instance of the requested type, a LinkablePlaceholder, or null if the object could not be created.
+		 */
+		public function requestObject(path:Array/*/<string|number>/*/, type:Class):ILinkableObject
+		{
+			// Get parent object first in case there is some backwards compatibility code that gets
+			// executed when it is accessed (registering deprecated class definitions, for example).
+			var parentPath:Array = path.concat();
+			var childName:Object = parentPath.pop();
+			var parent:ILinkableObject = Weave.followPath(root, parentPath);
+
+			// request the child object
+			var hashMap:ILinkableHashMap = parent as ILinkableHashMap;
+			var dynamicObject:ILinkableDynamicObject = parent as ILinkableDynamicObject;
+			var child:Object = null;
+			if (hashMap)
+			{
+				if (childName is Number)
+					childName = hashMap.getNames()[childName];
+				child = hashMap.requestObject(childName as String, type, false);
+			}
+			else if (dynamicObject)
+				child = dynamicObject.requestGlobalObject(childName as String, type, false);
+			else
+				child = Weave.followPath(root, path);
+
+			// check for exact match only
+			if (LinkablePlaceholder.getClass(child) == type)
+				return child as ILinkableObject;
+
+			return null;
+		}

 		//////////////////////////////////////////////////////////////////////////////////


registering ExternalTool replacement

registering ExternalTool replacement

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -55,6 +55,7 @@
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(IEditorManager, EditorManager);
 			WeaveAPI.ClassRegistry.registerSingletonImplementation(ICSVParser, CSVParser);
 			registerClass("FlexibleLayout", LinkableVariable);
+			registerClass("ExternalTool", LinkableHashMap);

 			// set this property for backwards compatibility
 			this['WeavePath'] = WeavePathUI;


Added flare.vis.controls.AnchorControl class
Updated MXML manifest in flare.vis
Added controls to flare.flex.FlareVis

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

--- flare.demos/flare/demos/Distortion.as
+++ flare.demos/flare/demos/Distortion.as
@@ -1,20 +1,22 @@
 package flare.demos
 {
+	import flare.util.Button;
+	import flare.util.GraphUtil;
+	import flare.vis.Visualization;
+	import flare.vis.controls.AnchorControl;
+	import flare.vis.operator.OperatorSwitch;
+	import flare.vis.operator.distortion.BifocalDistortion;
+	import flare.vis.operator.distortion.FisheyeDistortion;
+	import flare.vis.operator.encoder.PropertyEncoder;
+	import flare.vis.operator.layout.Layout;
+	import flare.vis.operator.layout.NodeLinkTreeLayout;
+
+	import flash.display.DisplayObject;
+	import flash.display.Sprite;
+	import flash.events.Event;
 	import flash.events.MouseEvent;
-	import flare.vis.operator.distortion.FisheyeDistortion;
 	import flash.geom.Point;
-	import flare.vis.Visualization;
-	import flare.util.GraphUtil;
-	import flare.vis.operator.layout.NodeLinkTreeLayout;
 	import flash.geom.Rectangle;
-	import flare.vis.operator.layout.Layout;
-	import flash.events.Event;
-	import flare.vis.operator.distortion.BifocalDistortion;
-	import flare.vis.operator.OperatorSwitch;
-	import flash.display.Sprite;
-	import flash.display.DisplayObject;
-	import flare.vis.operator.encoder.PropertyEncoder;
-	import flare.util.Button;

 	public class Distortion extends Demo
 	{
@@ -66,25 +68,15 @@
 		{
 			oswitch.index = idx;
 			distort = oswitch.getOperatorAt(idx) as Layout;
-		}
-
-		private function updateMouse(evt:Event):void
-		{
-			// get current anchor, run update if changed
-			var p1:Point = distort.layoutAnchor;
-			distort.layoutAnchor = new Point(vis.mouseX, vis.mouseY);
-			// distortion might snap the anchor to the layout bounds
-			// so we need to re-retrieve the point to get an accurate point
-			var p2:Point = distort.layoutAnchor;
-			if (p1.x != p2.x || p1.y != p2.y) vis.update();
+			stop(); play();
 		}

 		public override function play():void {
-			addEventListener(Event.ENTER_FRAME, updateMouse, false, 0, true);
+			vis.controls.add(new AnchorControl(null, distort));
 		}

 		public override function stop():void {
-			removeEventListener(Event.ENTER_FRAME, updateMouse);
+			vis.controls.clear();
 		}

 	}


fixed bug in populateColumns()

fixed bug in populateColumns()

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -608,7 +608,7 @@
 			{
 				var col:IAttributeColumn = item as IAttributeColumn;
 				if (col)
-					(col.keys ? def : undef).push(item);
+					(col.keys.length ? def : undef).push(item);
 			}
 			for (var i:int = 0; i < undef.length; i++)
 				copyState(def[i % def.length], undef[i]);


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

--- frameworks/projects/framework/src/mx/core/TextFieldAsset.as
+++ frameworks/projects/framework/src/mx/core/TextFieldAsset.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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: 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@1260330 13f79535-47bb-0310-9956-ffa450edef68

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

 package mx.effects
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19775
Author:   cframpto@adobe.com
Date:     2011-01-17T15:08:38.934946Z

Log Message:
-----------
Fix spelling errors in ASdoc which I noticed when updating the DG spec.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridSortEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>

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

--- frameworks/projects/spark/src/spark/events/GridSortEvent.as
+++ frameworks/projects/spark/src/spark/events/GridSortEvent.as
@@ -93,7 +93,7 @@
      *  the value of the type property of the event object for a
      *  sortChanging event, which indicates that a sort filter is about to be
      *  applied to the grid's dataProvider collection.
-     *  Call preventDefault() on this event to prevent the sort from occuring
+     *  Call preventDefault() on this event to prevent the sort from occurring
      *  or you modify columnIndices and newSortFields if you want to
      *  change the default behavior of the sort.
      *


KeyColumn now optionally filters by a keyType and displays it in its
title.

Change-Id: I620aa1423264bd19307e478ca81a2ad6c73c9b1a

--- WeaveData/src/weave/data/AttributeColumns/KeyColumn.as
+++ WeaveData/src/weave/data/AttributeColumns/KeyColumn.as
@@ -18,22 +18,47 @@
 */
 package weave.data.AttributeColumns
 {
+	import weave.api.data.ColumnMetadata;
 	import weave.api.data.IQualifiedKey;
+	import weave.api.newLinkableChild;
+	import weave.core.LinkableString;
 	import weave.utils.EquationColumnLib;

 	public class KeyColumn extends AbstractAttributeColumn
 	{
 		public function KeyColumn(metadata:XML=null)
 		{
-			if(metadata == null)
-				metadata = <attribute title="Key"/>;
 			super(metadata);
 		}

+		override public function getMetadata(propertyName:String):String
+		{
+			if (propertyName == ColumnMetadata.TITLE)
+			{
+				var kt:String = keyType.value;
+				if (kt)
+					return lang("Key ({0})", kt);
+				return lang("Key");
+			}
+			if (propertyName == ColumnMetadata.KEY_TYPE)
+				return keyType.value;
+
+			return super.getMetadata(propertyName);
+		}
+
+		public const keyType:LinkableString = newLinkableChild(this, LinkableString);
+
 		override public function getValueFromKey(key:IQualifiedKey, dataType:Class=null):*
 		{
+			var kt:String = keyType.value;
+			if (kt && key.keyType != kt)
+				return EquationColumnLib.cast(undefined, dataType);
+
 			if (dataType == String)
 				return key.localName;
+
+			if (dataType == IQualifiedKey)
+				return key;

 			return EquationColumnLib.cast(key, dataType);
 		}


Make role and affiliation bindings-aware. CS-4050, r=Armando

--- src/org/jivesoftware/xiff/conference/Room.as
+++ src/org/jivesoftware/xiff/conference/Room.as
@@ -23,6 +23,8 @@

 package org.jivesoftware.xiff.conference
 {
+	import flash.events.Event;
+
 	import mx.collections.ArrayCollection;

 	import org.jivesoftware.xiff.core.JID;
@@ -556,6 +558,7 @@
 		 *
 		 * @return The user's role
 		 */
+		[Bindable(event=roleSet)]
 		public function get role():String
 		{
 			return myRole;
@@ -568,6 +571,7 @@
 		 *
 		 * @return The user's affiliation
 		 */
+		[Bindable(event=affiliationSet)]
 		public function get affiliation():String
 		{
 			return myAffiliation;
@@ -1069,7 +1073,9 @@
 			if ( isThisUser( aPresence.from ) )
 			{
 				myAffiliation = item.affiliation;
+				dispatchEvent(new Event("affiliationSet")); //update bindings
 				myRole = item.role;
+				dispatchEvent(new Event("roleSet")); //update bindings

 				if (!isActive && aPresence.type != Presence.UNAVAILABLE_TYPE)
 				{


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

--- frameworks/projects/framework/src/mx/core/SpriteAsset.as
+++ frameworks/projects/framework/src/mx/core/SpriteAsset.as
@@ -0,0 +1,197 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+
+/**
+ *  SpriteAsset is a subclass of the flash.display.Sprite class which
+ *  represents vector graphic images that you embed in a Flex application.
+ *  It implements the IFlexDisplayObject interface, which makes it
+ *  possible for an embedded vector graphic image to be displayed in an Image
+ *  control, or to be used as a container background or a component skin.
+ *
+ *
The vector graphic image that you're embedding can be in an SVG file.
+ *  You can also embed a sprite symbol that is in a SWF file produced
+ *  by Flash.
+ *  In both cases, the MXML compiler autogenerates a class that extends
+ *  SpriteAsset to represent the embedded vector graphic image.

+ *
+ *
You don't generally have to use the SpriteAsset class directly
+ *  when you write a Flex application.
+ *  For example, you can embed a sprite symbol from a SWF file and display
+ *  it in an Image control by writing the following:

+ *
+ *

+ *  <mx:Image id="logo" source="@Embed(source='Assets.swf', symbol='Logo')"/>

+ *
+ *
Or use it as the application's background image in CSS syntax
+ *  by writing the following:

+ *
+ *

+ *  <mx:Style>
+ *      Application
+ *      {
+ *          backgroundImage: Embed(source="Assets.swf", symbol='Logo')
+ *      }
+ *  <mx:Style/>

+ *
+ *
without having to understand that the MXML compiler has created
+ *  a subclass of BitmapAsset for you.

+ *
+ *
However, it may be useful to understand what is happening
+ *  at the ActionScript level.
+ *  To embed a vector graphic image in ActionScript, you declare a variable
+ *  of type Class, and put [Embed] metadata on it.
+ *  For example, you embed a sprite symbol from a SWF file like this:

+ *
+ *

+ *  [Bindable]
+ *  [Embed(source="Assets.swf", symbol="Logo")]
+ *  private var logoClass:Class;

+ *
+ *
The MXML compiler notices that the Logo symbol in Assets.swf
+ *  is a sprite, autogenerates a subclass of the SpriteAsset class
+ *  to represent it, and sets your variable to be a reference to this
+ *  autogenerated class.
+ *  You can then use this class reference to create instances of the
+ *  SpriteAsset using the new operator, and use APIs
+ *  of the Sprite class on them:

+ *
+ *

+ *  var logo:SpriteAsset = SpriteAsset(new logoClass());
+ *  logo.rotation=45;

+ *
+ *
However, you rarely need to create SpriteAsset instances yourself
+ *  because image-related properties and styles can simply be set to an
+ *  image-producing class, and components will create image instances
+ *  as necessary.
+ *  For example, to display this vector graphic image in an Image control,
+ *  you can set the Image's source property to
+ *  logoClass.
+ *  In MXML you could do this as follows:

+ *
+ *

+ *  <mx:Image id="logo" source="{logoClass}"/>

+ */
+public class SpriteAsset extends FlexSprite
+                         implements IFlexAsset, IFlexDisplayObject, IBorder
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function SpriteAsset()
+    {
+        super();
+
+        // Remember initial size as our measured size.
+        _measuredWidth = width;
+        _measuredHeight = height;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  measuredHeight
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the measuredHeight property.
+     */
+    private var _measuredHeight:Number;
+
+    /**
+     *  @inheritDoc
+     */
+    public function get measuredHeight():Number
+    {
+        return _measuredHeight;
+    }
+
+    //----------------------------------
+    //  measuredWidth
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the measuredWidth property.
+     */
+    private var _measuredWidth:Number;
+
+    /**
+     *  @inheritDoc
+     */
+    public function get measuredWidth():Number
+    {
+        return _measuredWidth;
+    }
+
+    //----------------------------------
+    //  borderMetrics
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     */
+    public function get borderMetrics():EdgeMetrics
+    {
+        if (scale9Grid == null)
+        {
+            return EdgeMetrics.EMPTY;
+        }
+        else
+        {
+            return new EdgeMetrics(scale9Grid.left,
+                                   scale9Grid.top,
+                                   Math.ceil(measuredWidth - scale9Grid.right),
+                                   Math.ceil(measuredHeight - scale9Grid.bottom));
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     */
+    public function move(x:Number, y:Number):void
+    {
+        this.x = x;
+        this.y = y;
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function setActualSize(newWidth:Number, newHeight:Number):void
+    {
+        width = newWidth;
+        height = newHeight;
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16973
Author:   aharui@adobe.com
Date:     2010-07-19T18:32:42.783536Z

Log Message:
-----------
Revert 16970 until we're allowed to check in again

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -4025,30 +4025,23 @@

             updateCallbacks();

-			value ++;
-		}
-		else if (value == 0)
-			_nestLevel = value = 0;
-		else
-			value ++;
-
-		var childList:IChildList = (this is IRawChildrenContainer) ?
-			IRawChildrenContainer(this).rawChildren : IChildList(this);
-
-        var n:int = childList.numChildren;
-        for (var i:int = 0; i < n; i++)
-        {
-            var ui:ILayoutManagerClient  = childList.getChildAt(i) as ILayoutManagerClient;
-            if (ui)
+            var childList:IChildList = (this is IRawChildrenContainer) ?
+                IRawChildrenContainer(this).rawChildren : IChildList(this);
+            var n:int = childList.numChildren;
+            for (var i:int = 0; i < n; i++)
             {
-                ui.nestLevel = value;
-            }
-            else
-            {
-                var textField:IUITextField = childList.getChildAt(i) as IUITextField;
-
-                if (textField)
-                    textField.nestLevel = value;
+                var ui:ILayoutManagerClient  = childList.getChildAt(i) as ILayoutManagerClient;
+                if (ui)
+                {
+                    ui.nestLevel = value + 1;
+                }
+                else
+                {
+                    var textField:IUITextField = childList.getChildAt(i) as IUITextField;
+
+                    if (textField)
+                        textField.nestLevel = value + 1;
+                }
             }
         }
     }
@@ -7191,7 +7184,7 @@
         if (!p)
         {
             _parent = null;
-            nestLevel = 0;
+            _nestLevel = 0;
         }
         else if (p is IStyleClient)
         {
@@ -7588,7 +7581,7 @@
         {
             invalidatePropertiesFlag = true;

-            if (nestLevel && UIComponentGlobals.layoutManager)
+            if (parent && UIComponentGlobals.layoutManager)
                 UIComponentGlobals.layoutManager.invalidateProperties(this);
         }
     }
@@ -7621,7 +7614,7 @@
         {
             invalidateSizeFlag = true;

-            if (nestLevel && UIComponentGlobals.layoutManager)
+            if (parent && UIComponentGlobals.layoutManager)
                 UIComponentGlobals.layoutManager.invalidateSize(this);
         }
     }
@@ -7676,7 +7669,7 @@
         {
             invalidateDisplayListFlag = true;

-            if (nestLevel && UIComponentGlobals.layoutManager)
+            if (isOnDisplayList() && UIComponentGlobals.layoutManager)
                 UIComponentGlobals.layoutManager.invalidateDisplayList(this);
         }
     }
@@ -7686,7 +7679,7 @@
         if (_layoutFeatures && _layoutFeatures.updatePending == false)
         {
             _layoutFeatures.updatePending = true;
-            if (nestLevel && UIComponentGlobals.layoutManager &&
+            if (isOnDisplayList() && UIComponentGlobals.layoutManager &&
                 invalidateDisplayListFlag == false)
             {
                 UIComponentGlobals.layoutManager.invalidateDisplayList(this);
@@ -7760,6 +7753,22 @@
         invalidateTransform();
     }

+    private function isOnDisplayList():Boolean
+    {
+        var p:DisplayObjectContainer;
+
+        try
+        {
+            p = _parent ? _parent : super.parent;
+        }
+        catch (e:SecurityError)
+        {
+            // trace("UIComponent.isOnDisplayList(): " + e);
+            return true;        // we are on the display list but the parent is in another sandbox
+        }
+
+        return p ? true : false;
+    }

     /**
      *  Flex calls the stylesInitialized() method when


Transferred from the Adobe Open Source Subversion Repository

Revision: 12997
Author:   smgilson@adobe.com
Date:     2009-12-16T18:16:41.810158Z

Log Message:
-----------
remove @private form UIComponent.styleManager

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

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -3756,9 +3756,7 @@
     //----------------------------------

     /**
-     *  @private
-     *
-     *  Returns the style manager used by this component.
+     *  Returns the StyleManager instance used by this component.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 4357
Author:   egreenfi@adobe.com
Date:     2008-12-18T23:52:27.017290Z

Log Message:
-----------
UIComponent now implements ILayoutElement directly

ILayoutElement was moved to mx.core.ILayoutElement, as it is now a core interface required by UIComponent.

Further phases to follow:
1) IVlisualElement to extend ILayoutElement, pending resolution of a compiler bug.
2) remove LayoutElementUIC, pending UIMovieclip implementing ILayoutElement
3) remove LayoutElementFactory, once all IVisualElements implement ILayoutElement directly.
4) remove ITransformable, moving transform properties onto IVisualElement.

Reviewer: Evtim
QA: yes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/utils/MatrixUtil.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutElement.as" copyfrom-rev="4249" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -82,6 +82,7 @@
 import mx.styles.StyleProtoChain;
 import mx.utils.ColorUtil;
 import mx.utils.GraphicsUtil;
+import mx.utils.MatrixUtil;
 import mx.utils.NameUtil;
 import mx.utils.StringUtil;
 import mx.validators.IValidatorListener;
@@ -876,7 +877,7 @@
     IDeferredInstantiationUIComponent, IFlexDisplayObject, IFlexModule,
     IInvalidating, ILayoutManagerClient, IPropertyChangeNotifier,
     IRepeaterClient, IStateClient, IAdvancedStyleClient, IToolTipManagerClient,
-    IUIComponent, IValidatorListener, IVisualElement
+    IUIComponent, IValidatorListener, IVisualElement, ILayoutElement
 {
     include "../core/Version.as";

@@ -1383,6 +1384,13 @@
      * storage for advanced layout and transform properties.
      */
     private var _layoutFeatures:AdvancedLayoutFeatures;
+
+    /**
+     * @private
+     *
+     * when true, the transform on this component consists only of translation.  Otherwise, it may be arbitrarily complex.
+     */
+    protected var hasDeltaIdentityTransform:Boolean = true;

     /**
      * @private
@@ -1673,6 +1681,7 @@
         if (rotation == value)
             return;

+   		hasDeltaIdentityTransform = false;
         if(_layoutFeatures == null)
         {
             // clamp the rotation value between -180 and 180.  This is what
@@ -2012,6 +2021,8 @@
             if (prevValue == value)
                 return;

+    		hasDeltaIdentityTransform = false;
+
             // trace("set scaleX:" + this + "value = " + value);
             if(_layoutFeatures == null)
                 super.scaleX = value;
@@ -2088,6 +2099,7 @@
             if (prevValue == value)
                 return;

+    		hasDeltaIdentityTransform = false;
             if(_layoutFeatures == null)
                 super.scaleY = value;
             else
@@ -9742,6 +9754,8 @@
     {
         var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();

+   		hasDeltaIdentityTransform = false;
+
         features.layoutScaleX = scaleX;
         features.layoutScaleY = scaleY;
         features.layoutScaleZ = scaleZ;
@@ -9927,6 +9941,7 @@
      */
     public function set layoutMatrix(value:Matrix):void
     {
+   		hasDeltaIdentityTransform = false;
         if(_layoutFeatures == null)
         {
         	// flash will make a copy of this on assignment.
@@ -9949,6 +9964,7 @@
      */
     public function setLayoutMatrix(value:Matrix):void
     {
+       	hasDeltaIdentityTransform = false;
         if (_layoutFeatures == null)
         {
             super.transform.matrix = value;
@@ -10105,6 +10121,145 @@
         }
     }

+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  ILayoutElement
+    //
+    //--------------------------------------------------------------------------
+
+
+    /**
+     *  @inheritDoc
+     */
+    public function getPreferredBoundsWidth(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getPreferredBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getPreferredBoundsHeight(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getPreferredBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getMinBoundsWidth(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getMinBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getMinBoundsHeight(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getMinBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getMaxBoundsWidth(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getMaxBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getMaxBoundsHeight(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getMaxBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutBoundsWidth(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getLayoutBoundsWidth(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getLayoutBoundsHeight(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getLayoutBoundsHeight(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutBoundsX(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getLayoutBoundsX(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    public function getLayoutBoundsY(postTransform:Boolean=true):Number
+    {
+    	return LayoutElementUIComponentUtils.getLayoutBoundsY(this,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function setLayoutBoundsPosition(x:Number, y:Number, postTransform:Boolean=true):void
+    {
+    	LayoutElementUIComponentUtils.setLayoutBoundsPosition(this,x,y,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function setLayoutBoundsSize(width:Number = Number.NaN,
+                                  height:Number = Number.NaN,
+                                  postTransform:Boolean=true):void
+    {
+    	LayoutElementUIComponentUtils.setLayoutBoundsSize(this,width,height,postTransform? nonDeltaLayoutMatrix():null);
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutMatrix():Matrix
+    {
+		return layoutMatrix;
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getLayoutMatrix3D():Matrix3D
+    {
+    	return layoutMatrix3D;
+    }
+
+    protected function nonDeltaLayoutMatrix():Matrix
+    {
+        // TODO EGeorgie: move this to the Group, when we implement ILayoutElement directly
+        // in the base class.
+/*        if (obj is Group &&
+            Group(obj).resizeMode == ResizeMode.SCALE)
+        {
+            // Lose scale and skew:
+            return MatrixUtil.composeMatrix(obj.x, obj.y, 1, 1, obj.rotation,
+                        UIComponent(obj).transformX, UIComponent(obj).transformY);
+        }
+*/
+        if(hasDeltaIdentityTransform)
+        	return null;
+        if(_layoutFeatures != null)
+        {
+            return _layoutFeatures.layoutMatrix;
+        }
+        else
+        {
+            return super.transform.matrix;
+        }
+
+    }
+
 }

 }