Transferred from the Adobe Open Source Subversion Repository

Revision: 6122
Author:   chaase@adobe.com
Date:     2009-04-10T14:30:17.762458Z

Log Message:
-----------
Various refactorings/renamings/changes from effects PARB review.

QE Notes: mx/effects and spark/effects currently broken (and disabled) due to these API changes. Matt is fixing.
Doc Notes: None
Bugs:
Reviewer: Hans
tests: checkintests, mustella tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EffectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/NumberArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransform.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransform.as
@@ -16,7 +16,6 @@

 import mx.core.mx_internal;
 import mx.effects.Effect;
-import spark.effects.Animate;
 import mx.effects.IEffectInstance;
 import mx.events.EffectEvent;
 import mx.styles.IStyleClient;
@@ -168,6 +167,13 @@
     private static var rotation:Vector3D = new Vector3D();
     private static var position:Vector3D = new Vector3D();

+    /**
+     * @private
+     * This flag is set when any of the translationXYZ, rotationXYZ, scaleXYZ
+     * motion path properties are set directly
+     */
+    private var transformPropertiesSet:Boolean = false;
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -265,6 +271,246 @@
      */
     public var transformZ:Number;

+    //----------------------------------
+    //  translationX
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the translationX property
+     */
+    private var _translationX:MotionPath;
+    /**
+     * The MotionPath describing the change in x during the effect
+     */
+    public function get translationX():MotionPath
+    {
+        return _translationX;
+    }
+    public function set translationX(value:MotionPath):void
+    {
+        _translationX = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _translationX.property = "translationX";
+        }
+    }
+
+    //----------------------------------
+    //  translationY
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the translationY property
+     */
+    private var _translationY:MotionPath;
+    /**
+     * The MotionPath describing the change in y during the effect
+     */
+    public function get translationY():MotionPath
+    {
+        return _translationY;
+    }
+    public function set translationY(value:MotionPath):void
+    {
+        _translationY = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _translationY.property = "translationY";
+        }
+    }
+
+    //----------------------------------
+    //  translationX
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the translationZ property
+     */
+    private var _translationZ:MotionPath;
+    /**
+     * The MotionPath describing the change in z during the effect
+     */
+    public function get translationZ():MotionPath
+    {
+        return _translationZ;
+    }
+    public function set translationZ(value:MotionPath):void
+    {
+        _translationZ = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _translationZ.property = "translationZ";
+        }
+    }
+
+    //----------------------------------
+    //  rotationX
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the rotationX property
+     */
+    private var _rotationX:MotionPath;
+    /**
+     * The MotionPath describing the change in rotation around the x
+     * axis during the effect
+     */
+    public function get rotationX():MotionPath
+    {
+        return _rotationX;
+    }
+    public function set rotationX(value:MotionPath):void
+    {
+        _rotationX = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _rotationX.property = "rotationX";
+        }
+    }
+
+    //----------------------------------
+    //  rotationY
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the rotationY property
+     */
+    private var _rotationY:MotionPath;
+    /**
+     * The MotionPath describing the change in rotation around the y
+     * axis during the effect
+     */
+    public function get rotationY():MotionPath
+    {
+        return _rotationY;
+    }
+    public function set rotationY(value:MotionPath):void
+    {
+        _rotationY = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _rotationY.property = "rotationY";
+        }
+    }
+
+    //----------------------------------
+    //  rotationZ
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the rotationZ property
+     */
+    private var _rotationZ:MotionPath;
+    /**
+     * The MotionPath describing the change in rotation around the z
+     * axis during the effect
+     */
+    public function get rotationZ():MotionPath
+    {
+        return _rotationZ;
+    }
+    public function set rotationZ(value:MotionPath):void
+    {
+        _rotationZ = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _rotationZ.property = "rotationZ";
+        }
+    }
+
+    //----------------------------------
+    //  scaleX
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the scaleX property
+     */
+    private var _scaleX:MotionPath;
+    /**
+     * The MotionPath describing the change in scale in the x direction
+     * during the effect
+     */
+    public function get scaleX():MotionPath
+    {
+        return _scaleX;
+    }
+    public function set scaleX(value:MotionPath):void
+    {
+        _scaleX = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _scaleX.property = "scaleX";
+        }
+    }
+
+    //----------------------------------
+    //  scaleY
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the scaleY property
+     */
+    private var _scaleY:MotionPath;
+    /**
+     * The MotionPath describing the change in scale in the y direction
+     * during the effect
+     */
+    public function get scaleY():MotionPath
+    {
+        return _scaleY;
+    }
+    public function set scaleY(value:MotionPath):void
+    {
+        _scaleY = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _scaleY.property = "scaleY";
+        }
+    }
+
+    //----------------------------------
+    //  scaleZ
+    //----------------------------------
+
+    /**
+     * @private
+     * Storage for the scaleZ property
+     */
+    private var _scaleZ:MotionPath;
+    /**
+     * The MotionPath describing the change in scale in the z direction
+     * during the effect
+     */
+    public function get scaleZ():MotionPath
+    {
+        return _scaleZ;
+    }
+    public function set scaleZ(value:MotionPath):void
+    {
+        _scaleZ = value;
+        if (value)
+        {
+            transformPropertiesSet = true;
+            _scaleZ.property = "scaleZ";
+        }
+    }
+
     //--------------------------------------------------------------------------
     //
     // Methods
@@ -622,12 +868,12 @@

         // Finally, integrate this MotionPath in with the existing
         // MotionPath objects, if there are any
-        if (animationProperties)
-        {
-            var n:int = animationProperties.length;
+        if (motionPaths)
+        {
+            var n:int = motionPaths.length;
             for (var i:int = 0; i < n; i++)
             {
-                var prop:MotionPath = MotionPath(animationProperties[i]);
+                var prop:MotionPath = MotionPath(motionPaths[i]);
                 if (prop.property == mp.property)
                 {
                     for (var j:int = 0; j < mp.keyframes.length; j++)
@@ -640,9 +886,9 @@
         }
         else
         {
-            animationProperties = [];
-        }
-        animationProperties.push(mp);
+            motionPaths = [];
+        }
+        motionPaths.push(mp);
     }

     // TODO (chaase): This function appears in multiple places. Maybe
@@ -676,20 +922,43 @@
         var transformInstance:AnimateTransformInstance =
             AnimateTransformInstance(instance);

+        if (transformPropertiesSet)
+        {
+            if (!motionPaths)
+                motionPaths = [];
+            if (translationX)
+                motionPaths.push(translationX);
+            if (translationY)
+                motionPaths.push(translationY);
+            if (translationZ)
+                motionPaths.push(translationZ);
+            if (rotationX)
+                motionPaths.push(rotationX);
+            if (rotationY)
+                motionPaths.push(rotationY);
+            if (rotationZ)
+                motionPaths.push(rotationZ);
+            if (scaleX)
+                motionPaths.push(scaleX);
+            if (scaleY)
+                motionPaths.push(scaleY);
+            if (scaleZ)
+                motionPaths.push(scaleZ);
+        }
         // Feed startDelay directly into keyframe times
-        if (animationProperties)
+        if (motionPaths)
         {
             var instanceAnimProps:Array = [];
-            for (i = 0; i < animationProperties.length; ++i)
+            for (i = 0; i < motionPaths.length; ++i)
             {
-                instanceAnimProps[i] = animationProperties[i].clone();
+                instanceAnimProps[i] = motionPaths[i].clone();
                 var mp:MotionPath = MotionPath(instanceAnimProps[i]);
                 if (mp.keyframes)
                 {
                     for (var j:int = 0; j < mp.keyframes.length; ++j)
                     {
                         var kf:KeyFrame = KeyFrame(mp.keyframes[j]);
-                        // NaN for the time is used by AnimationProperty as a
+                        // NaN for the time is used by SimpleMotionPath as a
                         // placeholder for the end time of the effect
                         if (isNaN(kf.time))
                             kf.time = duration;
@@ -716,11 +985,11 @@
         // so that they are still available for reuse upon re-playing the effect
         var tmpStartDelay:Number = startDelay;
         startDelay = 0;
-        var tmpAnimProps:Array = animationProperties;
-        animationProperties = null;
+        var tmpAnimProps:Array = motionPaths;
+        motionPaths = null;
         super.initInstance(instance);
         startDelay = tmpStartDelay;
-        animationProperties = tmpAnimProps;
+        motionPaths = tmpAnimProps;
     }

     /**


"Geometry Collections" list now displays table name when it differs from the geometry column name.

--- WeaveData/src/weave/data/DataSources/WeaveDataSource.as
+++ WeaveData/src/weave/data/DataSources/WeaveDataSource.as
@@ -633,6 +633,7 @@
 import weave.api.data.EntityType;
 import weave.api.data.IWeaveTreeNode;
 import weave.api.getCallbackCollection;
+import weave.api.services.beans.Entity;
 import weave.api.services.beans.EntityHierarchyInfo;
 import weave.data.AttributeColumns.ProxyColumn;
 import weave.data.DataSources.WeaveDataSource;
@@ -708,7 +709,6 @@
 	{
 		geomList.children = null;
 	}
-	public function getSource():Object { return source; }
 	public function equals(other:IWeaveTreeNode):Boolean { return other == this; }
 	public function getLabel():String
 	{
@@ -741,7 +741,6 @@
 	{
 		this.source = source;
 	}
-	public function getSource():Object { return source; }
 	public function equals(other:IWeaveTreeNode):Boolean { return other == this; }
 	public function getLabel():String
 	{
@@ -773,10 +772,32 @@

 		for each (var info:EntityHierarchyInfo in event.result)
 		{
-			var node:EntityNode = new EntityNode(source.entityCache);
+			var node:EntityNode = new GeomColumnNode(source.entityCache);
 			node.id = info.id;
 			children.push(node);
 		}
 		getCallbackCollection(source).triggerCallbacks();
 	}
+}
+
+internal class GeomColumnNode extends EntityNode
+{
+	public function GeomColumnNode(cache:EntityCache)
+	{
+		super(cache);
+	}
+
+	override public function getLabel():String
+	{
+		var title:String = super.getLabel();
+		var cache:EntityCache = getEntityCache();
+		var entity:Entity = getEntity();
+		for each (var parentId:int in entity.parentIds)
+		{
+			var info:EntityHierarchyInfo = cache.getBranchInfo(parentId);
+			if (info && info.title && info.title != title)
+				return title + " (" + info.title + ")";
+		}
+		return title;
+	}
 }


PlotTask no longer calls debugId on toString() if debug=false.

--- WeaveUISpark/src/weave/visualization/layers/PlotTask.as
+++ WeaveUISpark/src/weave/visualization/layers/PlotTask.as
@@ -19,12 +19,15 @@

 package weave.visualization.layers
 {
+	import avmplus.getQualifiedClassName;
+
 	import flash.display.Bitmap;
 	import flash.display.BitmapData;
 	import flash.utils.Dictionary;
 	import flash.utils.getTimer;

 	import mx.utils.ObjectUtil;
+	import mx.utils.StringUtil;

 	import weave.api.WeaveAPI;
 	import weave.api.core.IDisposableObject;
@@ -57,7 +60,7 @@
 	 */
 	public class PlotTask implements IPlotTask, ILinkableObject, IDisposableObject
 	{
-		public static var debugBusy:Boolean = false;
+		public static var debug:Boolean = false;
 		public static var debugMouseDownPause:Boolean = false;
 		public static var debugIgnoreSpatialIndex:Boolean = false;

@@ -65,22 +68,26 @@

 		private function debugTrace(...args):void
 		{
-			args.unshift(toString());
+			args.unshift(debugId(_plotter),debugId(this),toString());
 			$debugTrace.apply(null, args);
 		}

 		public function toString():String
 		{
-			var str:String = [
-				debugId(_plotter),
-				debugId(this),
-				['subset','selection','probe'][_taskType]
-			].join('-');
-
-			if (debugBusy && linkableObjectIsBusy(this))
-				str += '(busy)';
-
-			return str;
+			var type:String = ['subset','selection','probe'][_taskType];
+			if (debug)
+			{
+				var str:String = [
+					debugId(_plotter),
+					debugId(this),
+					type
+				].join('-');
+
+				if (debug && linkableObjectIsBusy(this))
+					str += '(busy)';
+				return str;
+			}
+			return StringUtil.substitute('PlotTask({0}, {1})', type, getQualifiedClassName(_plotter).split(':').pop());
 		}

 		public static const TASK_TYPE_SUBSET:int = 0;


update version 3.8.9

update version 3.8.9

--- kdp3Lib/src/com/kaltura/kdpfl/ApplicationFacade.as
+++ kdp3Lib/src/com/kaltura/kdpfl/ApplicationFacade.as
@@ -32,7 +32,7 @@
 		/**
 		 * The current version of the KDP.
 		 */
-		public var kdpVersion : String = "v3.8.9.rc1";
+		public var kdpVersion : String = "v3.8.9";

 		/**


:bug: RST

:bug: RST

--- index.as
+++ index.as
@@ -93,10 +93,10 @@
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/04-op r,imm.gb");
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/05-op rp.gb");
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/06-ld r,r.gb");
-  // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/07-jr,jp,call,ret,rst.gb");
+  open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/07-jr,jp,call,ret,rst.gb");
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/08-misc instrs.gb");
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/09-op r,r.gb");
-  open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/10-bit ops.gb");
+  // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/10-bit ops.gb");
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/11-op a,(hl).gb");

   reset();
@@ -2596,7 +2596,7 @@

 // [C7] RST $00
 def op_C7() {
-  om_jp(0x00);
+  om_call(0x00);
 }

 // [C8] RET Z
@@ -2660,7 +2660,7 @@

 // [CF] RST $08
 def op_CF() {
-  om_jp(0x08);
+  om_call(0x08);
 }

 // [D0] RET NC
@@ -2706,7 +2706,7 @@

 // [D7] RST $10
 def op_D7() {
-  om_jp(0x10);
+  om_call(0x10);
 }

 // [D8] RET C
@@ -2748,7 +2748,7 @@

 // [DF] RST $18
 def op_DF() {
-  om_jp(0x18);
+  om_call(0x18);
 }

 // [E0] LD ($FF00 + n), A
@@ -2778,7 +2778,7 @@

 // [E7] RST $20
 def op_E7() {
-  om_jp(0x20);
+  om_call(0x20);
 }

 // [E8] ADD SP, i8
@@ -2811,7 +2811,7 @@

 // [EF] RST $28
 def op_EF() {
-  om_jp(0x28);
+  om_call(0x28);
 }

 // [F0] LD A, ($FF00 + n)
@@ -2850,7 +2850,7 @@

 // [F7] RST 30H
 def op_F7() {
-  om_jp(0x30);
+  om_call(0x30);
 }

 // [F8] LD HL, SP + i8
@@ -2888,7 +2888,7 @@

 // [FF] RST $38
 def op_FF() {
-  om_jp(0x38);
+  om_call(0x38);
 }

 // [CB 00] RLC B


Adding TLS Support.

Adding TLS Support.

--- AS3WebSocket/src/com/worlize/websocket/WebSocket.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocket.as
@@ -3,6 +3,10 @@
 	import com.adobe.crypto.SHA1;
 	import com.adobe.net.URI;
 	import com.adobe.net.URIEncodingBitmap;
+	import com.hurlant.crypto.tls.TLSConfig;
+	import com.hurlant.crypto.tls.TLSEngine;
+	import com.hurlant.crypto.tls.TLSSecurityParameters;
+	import com.hurlant.crypto.tls.TLSSocket;
 	import com.wirelust.as3zlib.Deflate;
 	import com.wirelust.as3zlib.Inflate;
 	import com.wirelust.as3zlib.JZlib;
@@ -46,6 +50,7 @@
 		private var _secure:Boolean;
 		private var _origin:String;

+		private var rawSocket:Socket;
 		private var socket:Socket;
 		private var timeout:uint;

@@ -72,6 +77,9 @@
 		private var incomingBuffer:ByteArray;
 		private var outgoingBuffer:ByteArray;

+		private var tlsConfig:TLSConfig;
+		private var tlsSocket:TLSSocket;
+
 		private var URIpathExcludedBitmap:URIEncodingBitmap =
 			new URIEncodingBitmap(URI.URIpathEscape);

@@ -83,7 +91,7 @@
 			logger(text);
 		};

-		public function WebSocket(uri:String, origin:String, protocol:String = null, timeout:uint = 10000, socket:Socket = null)
+		public function WebSocket(uri:String, origin:String, protocol:String = null, timeout:uint = 10000)
 		{
 			super(null);
 			_uri = new URI(uri);
@@ -91,30 +99,36 @@
 			_origin = origin;
 			this.timeout = timeout;
 			this.handshakeTimeout = timeout;
-			if (socket) {
-				this.socket = socket;
-			}
-			else {
-				this.socket = new Socket();
-			}
 			init();
 		}

 		private function init():void {
 			parseUrl();
-			this.socket.timeout = timeout;
-			this.socket.endian = Endian.BIG_ENDIAN;
-			this.socket.addEventListener(Event.CONNECT, handleSocketConnect);
-			this.socket.addEventListener(Event.CLOSE, handleSocketClose);
-			this.socket.addEventListener(ProgressEvent.SOCKET_DATA, handleSocketData);
-			this.socket.addEventListener(IOErrorEvent.IO_ERROR, handleSocketIOError);
-			this.socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSocketSecurityError);
-
+
 			closeTimer = new Timer(closeTimeout, 1);
 			closeTimer.addEventListener(TimerEvent.TIMER, handleCloseTimer);

 			handshakeTimer = new Timer(handshakeTimeout, 1);
 			handshakeTimer.addEventListener(TimerEvent.TIMER, handleHandshakeTimer);
+
+			rawSocket = socket = new Socket();
+			socket.timeout = timeout;
+
+			if (secure) {
+				tlsConfig = new TLSConfig(TLSEngine.CLIENT,
+										  null, null, null, null, null,
+										  TLSSecurityParameters.PROTOCOL_VERSION);
+				tlsConfig.trustAllCertificates = true;
+				tlsConfig.ignoreCommonNameMismatch = true;
+				socket = tlsSocket = new TLSSocket();
+			}
+
+			rawSocket.addEventListener(Event.CONNECT, handleSocketConnect);
+			rawSocket.addEventListener(Event.CLOSE, handleSocketClose);
+			rawSocket.addEventListener(IOErrorEvent.IO_ERROR, handleSocketIOError);
+			rawSocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSocketSecurityError);
+
+			socket.addEventListener(ProgressEvent.SOCKET_DATA, handleSocketData);

 			_readyState = WebSocketState.INIT;
 		}
@@ -125,7 +139,7 @@
 				generateNonce();
 				handshakeBytesReceived = 0;

-				socket.connect(_host, _port);
+				rawSocket.connect(_host, _port);
 				if (debug) {
 					logger("Connecting to " + _host + " on port " + _port);
 				}
@@ -281,11 +295,13 @@
 				}
 				zstreamOut.next_out.position = 0;
 				socket.writeBytes(zstreamOut.next_out, 0, zstreamOut.next_out.length);
+				socket.flush();
 				zstreamOut.next_in.clear();
 				zstreamOut.next_out.clear();
 			}
 			else {
 				socket.writeBytes(data, 0, data.bytesAvailable);
+				socket.flush();
 				data.clear();
 			}
 		}
@@ -326,6 +342,13 @@
 			if (debug) {
 				logger("Socket Connected");
 			}
+			if (secure) {
+				if (debug) {
+					logger("starting SSL/TLS");
+				}
+				tlsSocket.startTLS(rawSocket, _host, tlsConfig);
+			}
+			socket.endian = Endian.BIG_ENDIAN;
 			sendHandshake();
 		}

@@ -598,6 +621,9 @@

 				headersTerminatorIndex = serverHandshakeResponse.search(/\r?\n\r?\n/);
 			}
+			if (headersTerminatorIndex === -1) {
+				return;
+			}

 			if (debug) {
 				logger("Server Response Headers:\n" + serverHandshakeResponse);


fix the padding length

fix the padding length

--- src/printf.as
+++ src/printf.as
@@ -264,5 +264,5 @@
 {
     if(paddingChar == null) return str;

-    return new Array(paddingNum + 1).join(paddingChar).concat(str);
+    return new Array(paddingNum).join(paddingChar).substr(0,paddingNum-str.length).concat(str);
 }


--- as3/com/netease/protobuf/SimpleWebRPC.as
+++ as3/com/netease/protobuf/SimpleWebRPC.as
@@ -39,7 +39,7 @@
 			loader.addEventListener(
 					SecurityErrorEvent.SECURITY_ERROR, errorEventHandler)
 			const request:URLRequest = new URLRequest(
-				urlPrefix + qualifiedMethodName.replace(/\./, "/"))
+				urlPrefix + qualifiedMethodName.replace(/\./g, "/"))
 			request.method = URLRequestMethod.POST
 			const requestContent:ByteArray = new ByteArray
 			input.writeExternal(requestContent)


Updated batch object clone script

Updated batch object clone script

--- RunPath/Scripts/BatchClone.as
+++ RunPath/Scripts/BatchClone.as
@@ -5,6 +5,10 @@
 LineEdit@ xEdit = null;
 LineEdit@ yEdit = null;
 LineEdit@ zEdit = null;
+LineEdit@ rotXEdit = null;
+LineEdit@ rotYEdit = null;
+LineEdit@ rotZEdit = null;
+LineEdit@ rotAmmount = null;
 LineEdit@ cloneCountEdit = null;
 Button@ okBtn = null;
 Button@ cancelBtn = null;
@@ -12,8 +16,8 @@
 bool finished = false;

 Vector3 offset(0, 0, 0);
-Vector3 rotation(0, 1, 0);
-float rot = 0;
+Vector3 rotationAxis(0, 1, 0);
+float degrees = 0;
 int cloneCount = 5;
 int oldCloneCount = -1;
 EditorVector list;
@@ -29,6 +33,23 @@

 	dlg.accept();
 	finished = true;
+}
+
+void updateClones()
+{
+	for(int i = 0; i < (cloneCount); i++)
+	{
+		BaseEditor @newObj = list[i];
+
+		Quaternion q;
+		q.FromAngleAxis(degrees * (i + 1), rotationAxis);
+		newObj.setDerivedPosition(b.getDerivedPosition() + offset * (i + 1));
+		newObj.setDerivedOrientation(q);
+
+		EditorVector v;
+		v.push_back(b);
+		m.set(v);
+	}
 }

 void onUpdateClick()
@@ -40,6 +61,16 @@
 	temp = zEdit.getText();
 	offset.z = parseFloat(temp);

+	temp = rotXEdit.getText();
+	rotationAxis.x = parseFloat(temp);
+	temp = rotYEdit.getText();
+	rotationAxis.y = parseFloat(temp);
+	temp = rotZEdit.getText();
+	rotationAxis.z = parseFloat(temp);
+	temp = rotAmmount.getText();
+	degrees = parseFloat(temp) * 0.0174532925f;
+
+
 	temp = cloneCountEdit.getText();
 	cloneCount = parseInt(temp);

@@ -52,70 +83,107 @@
 			for(int i = 1; i < (cloneCount + 1); i++)
 			{
 				BaseEditor @newObj = root.cloneObject(b);
-				newObj.setDerivedPosition(b.getDerivedPosition() + offset * i);
 				list.push_back(newObj);
 			}
+			updateClones();
+
+			if(oldCloneCount == -1)
+			{
+				oldCloneCount = cloneCount;
+			}
+
+			EditorVector v;
+			v.push_back(b);
+			m.set(v);
 		}
-		EditorVector v;
-		v.push_back(b);
-		m.set(v);
 	}
 	else
 	{
 		if(oldCloneCount != cloneCount)
 		{
-			// TODO: update here
+			if(cloneCount > list.size())
+			{
+				// add more editors
+				while(list.size() != cloneCount)
+				{
+					BaseEditor @newObj = root.cloneObject(b);
+					list.push_back(newObj);
+				}
+			}
+			else
+			{
+				// remove editors
+				while(list.size() != cloneCount)
+				{
+					BaseEditor @ed = list[list.size()-1];
+					root.destroyObject(ed, true, false);
+					list.pop_back();
+				}
+			}

 			oldCloneCount = cloneCount;
 		}
-		else
-		{
-			for(int i = 0; i < (cloneCount); i++)
-			{
-				BaseEditor @newObj = list[i];
-				newObj.setDerivedPosition(b.getDerivedPosition() + offset * (i + 1));
-
-				EditorVector v;
-				v.push_back(b);
-				m.set(v);
-			}
-		}
+
+		updateClones();
 	}
 }

 void onCancelClick()
 {
+	for(int i = 0; i < list.size(); i++)
+	{
+		BaseEditor @ed = list[i];
+		root.destroyObject(ed, true, false);
+	}
+	list.clear();
 	dlg.reject();
 	finished = true;
 }

 void createGUI(string objectName)
 {
-	@dlg = gui.createDialog(295, 160);
+	@dlg = gui.createDialog(295, 200);
 	dlg.setWindowTitle("Batch clone object");
 	@dlgLayout = gui.createGridLayout();
 	@mainLayout = gui.createGridLayout();

+	mainLayout.addWidget(gui.createLabel("Selected object:"), 0, 0, 1, 1, AlignLeft);
+	@objNameLabel = gui.createLabel(objectName);
+	mainLayout.addWidget(objNameLabel, 0, 1, 1, 1, AlignLeft);
+
+	// translation
+	mainLayout.addWidget(gui.createLabel("Offset X"), 1, 0, 1, 1, AlignCenter);
 	@xEdit = gui.createLineEdit("0");
-	mainLayout.addWidget(xEdit, 1, 1, 1, 1, AlignNone);
-
+	mainLayout.addWidget(xEdit, 2, 0, 1, 1, AlignNone);
+
+	mainLayout.addWidget(gui.createLabel("Offset Y"), 1, 1, 1, 1, AlignCenter);
 	@yEdit = gui.createLineEdit("0");
 	mainLayout.addWidget(yEdit, 2, 1, 1, 1, AlignNone);
-
+
+	mainLayout.addWidget(gui.createLabel("Offset Z"), 1, 2, 1, 1, AlignCenter);
 	@zEdit = gui.createLineEdit("0");
-	mainLayout.addWidget(zEdit, 3, 1, 1, 1, AlignNone);
-
+	mainLayout.addWidget(zEdit, 2, 2, 1, 1, AlignNone);
+
+	// rotation
+	mainLayout.addWidget(gui.createLabel("rot X"), 3, 0, 1, 1, AlignCenter);
+	@rotXEdit = gui.createLineEdit("0");
+	mainLayout.addWidget(rotXEdit, 4, 0, 1, 1, AlignNone);
+
+	mainLayout.addWidget(gui.createLabel("rot Y"), 3, 1, 1, 1, AlignCenter);
+	@rotYEdit = gui.createLineEdit("0");
+	mainLayout.addWidget(rotYEdit, 4, 1, 1, 1, AlignNone);
+
+	mainLayout.addWidget(gui.createLabel("rot Z"), 3, 2, 1, 1, AlignCenter);
+	@rotZEdit = gui.createLineEdit("0");
+	mainLayout.addWidget(rotZEdit, 4, 2, 1, 1, AlignNone);
+
+	mainLayout.addWidget(gui.createLabel("Degrees"), 5, 0, 1, 1, AlignRight);
+	@rotAmmount = gui.createLineEdit("0");
+	mainLayout.addWidget(rotAmmount, 5, 1, 1, 1, AlignNone);
+
+	mainLayout.addWidget(gui.createLabel("Clone count"), 6, 0, 1, 1, AlignRight);
 	@cloneCountEdit = gui.createLineEdit("1");
-	mainLayout.addWidget(cloneCountEdit, 4, 1, 1, 1, AlignNone);
-
-	@objNameLabel = gui.createLabel(objectName);
-	mainLayout.addWidget(objNameLabel, 0, 1, 1, 1, AlignCenter);
-
-	mainLayout.addWidget(gui.createLabel("Selected object:"), 0, 0, 1, 1, AlignRight);
-	mainLayout.addWidget(gui.createLabel("Offset X"), 1, 0, 1, 1, AlignRight);
-	mainLayout.addWidget(gui.createLabel("Offset Y"), 2, 0, 1, 1, AlignRight);
-	mainLayout.addWidget(gui.createLabel("Offset Z"), 3, 0, 1, 1, AlignRight);
-	mainLayout.addWidget(gui.createLabel("Clone count"), 4, 0, 1, 1, AlignRight);
+	mainLayout.addWidget(cloneCountEdit, 6, 1, 1, 1, AlignNone);

 	@okBtn = gui.createButton("OK");
     dlgLayout.addWidget(okBtn, 1, 0, 1, 1, AlignNone);
@@ -156,5 +224,6 @@
 		gui.processEvents();
 	}

+	list.clear();
     dlg.destroy();
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22561
Author:   smgilson@adobe.com
Date:     2011-09-14T19:12:37.612519Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/events/ModuleEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/advancedgrids/src/mx/events/AdvancedDataGridEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>

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

--- frameworks/projects/framework/src/mx/events/RSLEvent.as
+++ frameworks/projects/framework/src/mx/events/RSLEvent.as
@@ -33,11 +33,11 @@
 {
     include "../core/Version.as";

-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------

     /**
      *  The RSLEvent.RSL_ADD_PRELOADED constant defines the value of the
@@ -72,14 +72,14 @@
      */
     public static const RSL_ADD_PRELOADED:String = "rslAddPreloaded";

-	/**
-	 *  Dispatched when the RSL has finished downloading.
-	 *  The RSLEvent.RSL_COMPLETE constant defines the value of the
-	 *  type property of the event object for a rslComplete event.
-     *
-	 *
The properties of the event object have the following values:

-	 *

-	 *
Property	Value

+    /**
+     *  Dispatched when the RSL has finished downloading.
+     *  The RSLEvent.RSL_COMPLETE constant defines the value of the
+     *  type property of the event object for a rslComplete event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

      *
bubbles	false

      *
bytesLoaded	The number of bytes loaded.

      *
bytesTotal	The total number of bytes to load.

@@ -90,7 +90,7 @@
      *       myButton is the value of the currentTarget.

      *
errorText	Empty

      *
isResourceModule	True if we loaded a resourceModule
-	 *        instead of an RSL

+     *        instead of an RSL

      *
rslIndex	The index number of the RSL
      *       currently being downloaded.

      *
rslTotal	The total number of RSLs
@@ -101,25 +101,25 @@
      *       Object listening for the event.

      *
url	The URLRequest object that represents
      *       the location of the RSL being downloaded.

-	 *

-	 *
+     *

+     *
      *  @eventType rslComplete
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public static const RSL_COMPLETE:String = "rslComplete";
-
-	/**
-	 *  Dispatched when there is an error downloading the RSL.
-	 *  The RSLEvent.RSL_ERROR constant defines the value of the
-	 *  type property of the event object for a rslError event.
-     *
-	 *
The properties of the event object have the following values:

-	 *

-	 *
Property	Value

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const RSL_COMPLETE:String = "rslComplete";
+
+    /**
+     *  Dispatched when there is an error downloading the RSL.
+     *  The RSLEvent.RSL_ERROR constant defines the value of the
+     *  type property of the event object for a rslError event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

      *
bubbles	false

      *
bytesLoaded	Empty

      *
bytesTotal	Empty

@@ -130,7 +130,7 @@
      *       myButton is the value of the currentTarget.

      *
errorText	An error message.

      *
isResourceModule	True if we loaded a resourceModule
-	 *        instead of an RSL

+     *        instead of an RSL

      *
rslIndex	The index number of the RSL
      *       currently being downloaded.

      *
rslTotal	The total number of RSLs
@@ -141,25 +141,25 @@
      *       Object listening for the event.

      *
url	The URLRequest object that represents
      *       the location of the RSL being downloaded.

-	 *

-	 *
+     *

+     *
      *  @eventType rslError
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public static const RSL_ERROR:String = "rslError";
-
-	/**
-	 *  Dispatched when the RSL is downloading.
-	 *  The RSLEvent.RSL_PROGRESS constant defines the value of the
-	 *  type property of the event object for a rslProgress event.
-     *
-	 *
The properties of the event object have the following values:

-	 *

-	 *
Property	Value

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const RSL_ERROR:String = "rslError";
+
+    /**
+     *  Dispatched when the RSL is downloading.
+     *  The RSLEvent.RSL_PROGRESS constant defines the value of the
+     *  type property of the event object for a rslProgress event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

      *
bubbles	false

      *
bytesLoaded	The number of bytes loaded.

      *
bytesTotal	The total number of bytes to load.

@@ -170,7 +170,7 @@
      *       myButton is the value of the currentTarget.

      *
errorText	Empty

      *
isResourceModule	True if we loaded a resourceModule
-	 *        instead of an RSL

+     *        instead of an RSL

      *
rslIndex	The index number of the RSL
      *       currently being downloaded.

      *
rslTotal	The total number of RSLs
@@ -181,175 +181,177 @@
      *       Object listening for the event.

      *
url	The URLRequest object that represents
      *       the location of the RSL being downloaded.

-	 *

-	 *
+     *

+     *
      *  @eventType rslProgress
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public static const RSL_PROGRESS:String = "rslProgress";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The type of the event. Possible values are:
-	 *

-	 *
"rslProgress" (RSLEvent.RSL_PROGRESS);

-	 *
"rslComplete" (RSLEvent.RSL_COMPLETE);

-	 *
"rslError" (RSLEvent.RSL_ERROR);

-	 *

-	 *
-	 *  @param bubbles  Determines whether the Event object participates in the bubbling stage of the event flow.
-	 *
-	 *  @param cancelable Determines whether the Event object can be cancelled.
-	 *
-	 *  @param bytesLoaded The number of bytes loaded at the time the listener processes the event.
-	 *
-	 *  @param bytesTotal The total number of bytes that will ultimately be loaded if the loading process succeeds.
-	 *
-	 *  @param rslIndex The index number of the RSL relative to the total. This should be a value between 0 and total - 1.
-	 *
-	 *  @param rslTotal The total number of RSLs being loaded.
-	 *
-	 *  @param url The location of the RSL.
-	 *
-	 *  @param errorText The error message of the error when type is RSLEvent.RSL_ERROR.
-	 *
-	 *  @param isResourceModule True if the event occurred when loading a ResourceModule.
-	 *
-	 *  @tiptext Constructor for RSLEvent objects.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function RSLEvent(type:String,  bubbles:Boolean = false,
-							 cancelable:Boolean = false,
-							 bytesLoaded:int = -1, bytesTotal:int = -1,
-							 rslIndex:int = -1, rslTotal:int = -1,
-							 url:URLRequest = null, errorText:String = null,
-							 isResourceModule:Boolean = false,
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const RSL_PROGRESS:String = "rslProgress";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param type The type of the event. Possible values are:
+     *

+     *
"rslProgress" (RSLEvent.RSL_PROGRESS);

+     *
"rslComplete" (RSLEvent.RSL_COMPLETE);

+     *
"rslError" (RSLEvent.RSL_ERROR);

+     *

+     *
+     *  @param bubbles  Determines whether the Event object participates in the bubbling stage of the event flow.
+     *
+     *  @param cancelable Determines whether the Event object can be cancelled.
+     *
+     *  @param bytesLoaded The number of bytes loaded at the time the listener processes the event.
+     *
+     *  @param bytesTotal The total number of bytes that will ultimately be loaded if the loading process succeeds.
+     *
+     *  @param rslIndex The index number of the RSL relative to the total. This should be a value between 0 and total - 1.
+     *
+     *  @param rslTotal The total number of RSLs being loaded.
+     *
+     *  @param url The location of the RSL.
+     *
+     *  @param errorText The error message of the error when type is RSLEvent.RSL_ERROR.
+     *
+     *  @param isResourceModule True if the event occurred when loading a ResourceModule.
+     *
+     *  @param loaderInfo The LoaderInfo object associated with this event.
+     *
+     *  @tiptext Constructor for RSLEvent objects.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function RSLEvent(type:String,  bubbles:Boolean = false,
+                             cancelable:Boolean = false,
+                             bytesLoaded:int = -1, bytesTotal:int = -1,
+                             rslIndex:int = -1, rslTotal:int = -1,
+                             url:URLRequest = null, errorText:String = null,
+                             isResourceModule:Boolean = false,
                              loaderInfo:LoaderInfo = null)
-	{
-		super(type, bubbles, cancelable, bytesLoaded, bytesTotal);
-
-		this.rslIndex = rslIndex;
-		this.rslTotal = rslTotal;
-		this.url = url;
-		this.errorText = errorText;
-		this.isResourceModule = isResourceModule;
+    {
+        super(type, bubbles, cancelable, bytesLoaded, bytesTotal);
+
+        this.rslIndex = rslIndex;
+        this.rslTotal = rslTotal;
+        this.url = url;
+        this.errorText = errorText;
+        this.isResourceModule = isResourceModule;
         this.loaderInfo = loaderInfo;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
-
-	//----------------------------------
-	//  errorText
-	//----------------------------------
-
-	/**
-	 *  The error message if the type is RSL_ERROR; otherwise, it is null;
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public var errorText:String;
-
-    //----------------------------------
-	//  isResourceModule
-	//----------------------------------
-
-	/**
-	 *  True if the event is for loading a resourceModule instead of an RSL
-	 */
-	public var isResourceModule:Boolean;
-
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  errorText
+    //----------------------------------
+
+    /**
+     *  The error message if the type is RSL_ERROR; otherwise, it is null;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var errorText:String;
+
+    //----------------------------------
+    //  isResourceModule
+    //----------------------------------
+
+    /**
+     *  True if the event is for loading a resourceModule instead of an RSL
+     */
+    public var isResourceModule:Boolean;
+
     //----------------------------------
     //  loaderInfo
     //----------------------------------

     /**
-     *  The loaderInfo associated with this event. This is only set in the
+     *  The LoaderInfo object associated with this event. This is only set in the
      *  RSLEvent.RSL_COMPLETE event. Otherwise loaderInfo will be null.
      */
     public var loaderInfo:LoaderInfo;

     //----------------------------------
-	//  rslIndex
-	//----------------------------------
-
-	/**
-	 *  The index number of the RSL currently being downloaded.
-	 *  This is a number between 0 and rslTotal - 1.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public var rslIndex:int;
-
-	//----------------------------------
-	//  rslTotal
-	//----------------------------------
-
-	/**
-	 *  The total number of RSLs being downloaded by the preloader
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public var rslTotal:int;
-
-	//----------------------------------
-	//  url
-	//----------------------------------
-
-	/**
-	 *  The URLRequest object that represents the location
-	 *  of the RSL being downloaded.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public var url:URLRequest;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden properties: Event
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	override public function clone():Event
-	{
-		return new RSLEvent(type, bubbles, cancelable,
-							bytesLoaded, bytesTotal, rslIndex,
-							rslTotal, url, errorText, isResourceModule,
+    //  rslIndex
+    //----------------------------------
+
+    /**
+     *  The index number of the RSL currently being downloaded.
+     *  This is a number between 0 and rslTotal - 1.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var rslIndex:int;
+
+    //----------------------------------
+    //  rslTotal
+    //----------------------------------
+
+    /**
+     *  The total number of RSLs being downloaded by the preloader
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var rslTotal:int;
+
+    //----------------------------------
+    //  url
+    //----------------------------------
+
+    /**
+     *  The URLRequest object that represents the location
+     *  of the RSL being downloaded.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var url:URLRequest;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: Event
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function clone():Event
+    {
+        return new RSLEvent(type, bubbles, cancelable,
+                            bytesLoaded, bytesTotal, rslIndex,
+                            rslTotal, url, errorText, isResourceModule,
                             loaderInfo);
-	}
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/mx/src/mx/effects/AddChildAction.as
+++ frameworks/projects/mx/src/mx/effects/AddChildAction.as
@@ -16,6 +16,8 @@
 import mx.core.mx_internal;
 import mx.effects.effectClasses.AddChildActionInstance;
 import mx.effects.effectClasses.PropertyChanges;
+
+use namespace mx_internal;

 //--------------------------------------
 //  Excluded APIs
@@ -222,9 +224,9 @@
 		if (!targets)
 			targets = this.targets;

-		if (targets && mx_internal::propertyChangesArray)
+		if (targets && propertyChangesArray)
 		{
-			localPropertyChanges = mx_internal::propertyChangesArray;
+			localPropertyChanges = propertyChangesArray;
 			targets.sort(targetSortHandler);
 		}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 20931
Author:   cframpto@adobe.com
Date:     2011-03-21T14:21:57.979092Z

Log Message:
-----------
ASdoc changes that missed Flex 4.5 - mostly the mxml syntax sections for the new DataGrid and Image components but also some other errors I noticed in various classes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/GridColumnHeaderGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -203,7 +203,7 @@
  *    ligatureLevel="common"
  *    lineBreak="toFit"
  *    lineHeight="120%"
- *    lineThrough="false%"
+ *    lineThrough="false"
  *    locale="en"
  *    paddingBottom="0"
  *    paddingLeft="0"


accessibility methods Signed-off-by:delfi <delfi@segonquart.localhost>

accessibility methods
Signed-off-by:delfi <7a08856f93580430fa9b7f49ec8380a13169718b@segonquart.localhost>

--- main.as
+++ main.as
@@ -1,4 +1,4 @@
-import System.Objects. * ;
+import System.Objects. * ;
         import mx.events.EventDispatcher;
         import mx.utils.Delegate;
         import flash.filters.GlowFilter;
@@ -21,9 +21,9 @@
 {

 if (_accProps == undefined)
-        {
-        eshop._accProps = new Object();
-                }
+{
+eshop._accProps = new Object();
+}

 eshop._accProps.name = "Talking Wear";
@@ -33,7 +33,7 @@
         // TODO next items

         Accessibility.updateProperties();
-        }
+}

 //-------------------------------
@@ -41,24 +41,24 @@
 //-------------------------------

 function initTWApp ():Void
-        {
-        if (MovieClip (root).currentFrame == 1)
-                {
-                #include "as/main/frame1.as"
-                        }
-        if (MovieClip (root).currentFrame == 2)
-                {
-                #include "as/main/frame2.as"
-                        }
-        if (MovieClip (root).currentFrame == 3)
-                {
-                #include "as/main/frame3.as"
-                        }
-        if (MovieClip (root).currentFrame == 4)
-                {
-                #include "as/main/frame4.as"
-                        }
-        }
+{
+if (MovieClip (root).currentFrame == 1)
+{
+#include "as/main/frame1.as"
+}
+if (MovieClip (root).currentFrame == 2)
+{
+#include "as/main/frame2.as"
+}
+if (MovieClip (root).currentFrame == 3)
+{
+#include "as/main/frame3.as"
+}
+if (MovieClip (root).currentFrame == 4)
+{
+#include "as/main/frame4.as"
+}
+}

 initTWApp ();


Transferred from the Adobe Open Source Subversion Repository

Revision: 6367
Author:   dsubrama@adobe.com
Date:     2009-04-29T02:10:06.370325Z

Log Message:
-----------
Turn "on" multiple selection support in List.

Most of the behavior is the same as in Halo except for the following caveats:

-When a multiple selection change occurs, only the selectionChanged event is dispatched with no index information, the multipleSelectionChange flag is true though.

-In Halo when selection was toggled from multiple to single, the view did not update. In Spark, I clear out selection but we can change that if its not desireable (perhaps we should keep the last selected item as the currently selected single item?)

-Binding works for all the selection related properties

-Works programmatically and with the mouse, keyboard hookup will come in a subsequent checkin.

QA: Yes!
Reviewer: Ryan
Checkintests: PASS

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/IndexChangedEvent.as</path>

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

--- frameworks/projects/framework/src/mx/events/IndexChangedEvent.as
+++ frameworks/projects/framework/src/mx/events/IndexChangedEvent.as
@@ -264,6 +264,10 @@
      *  @param newIndex The zero-based index after the change.
      *
      *  @param triggerEvent The event that triggered this event.
+     *
+     *  @param multipleSelectionChange Whether or not the selection change was from a
+     *  change in multiple selection.
+     *
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -275,7 +279,8 @@
                                       relatedObject:DisplayObject = null,
                                       oldIndex:Number = -1,
                                       newIndex:Number = -1,
-                                      triggerEvent:Event = null)
+                                      triggerEvent:Event = null,
+                                      multipleSelectionChange:Boolean = false)
     {
         super(type, bubbles, cancelable);

@@ -283,6 +288,7 @@
         this.oldIndex = oldIndex;
         this.newIndex = newIndex;
         this.triggerEvent = triggerEvent;
+        this.multipleSelectionChange = multipleSelectionChange;
     }

     //--------------------------------------------------------------------------
@@ -359,6 +365,21 @@
      */
     public var triggerEvent:Event;

+    //----------------------------------
+    //  multipleSelectionChange
+    //----------------------------------
+
+    /**
+     *  Whether or not the change in selection was from a multiple selection
+     *  change or not. If true, the newIndex and oldIndex parameters are -1.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public var multipleSelectionChange:Boolean;
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods: Event
@@ -372,7 +393,7 @@
     {
         return new IndexChangedEvent(type, bubbles, cancelable,
                                      relatedObject, oldIndex, newIndex,
-                                     triggerEvent);
+                                     triggerEvent, multipleSelectionChange);
     }
 }


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

--- frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
+++ frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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 spark.filters
 {


Remove old atlases before publishing.

Remove old atlases before publishing.

Previously, if a movie was changed to use fewer atlases and re-exported, old
atlases would still be around.

--- exporter/src/main/as/flump/export/Publisher.as
+++ exporter/src/main/as/flump/export/Publisher.as
@@ -53,6 +53,11 @@
         const destDir :File = _exportDir.resolvePath(lib.location);
         destDir.createDirectory();

+        // Ensure any previously generated atlases don't linger
+        for each (var file :File in destDir.getDirectoryListing()) {
+            if (file.name.match(/atlas.*\.png/)) file.deleteFile();
+        }
+
         for each (var packer :Packer in packers) {
             for each (var atlas :Atlas in packer.atlases) {
                 atlas.publish(_exportDir);


Added the new classes to FlexJSUIClasses.as

--- frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
+++ frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
@@ -117,6 +117,10 @@
 	import org.apache.flex.utils.Timer; Timer;
 	import org.apache.flex.utils.UIUtils; UIUtils;
     import org.apache.flex.core.SimpleStatesImpl; SimpleStatesImpl;
+	import org.apache.flex.core.graphics.GraphicShape; GraphicShape;
+	import org.apache.flex.core.graphics.Rect; Rect;
+	import org.apache.flex.core.graphics.SolidColor; SolidColor;
+	import org.apache.flex.core.graphics.SolidColorStroke; SolidColorStroke;

 	import mx.core.ClassFactory; ClassFactory;
     import mx.states.AddItems; AddItems;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19635
Author:   aharui@adobe.com
Date:     2011-01-07T00:25:18.039632Z

Log Message:
-----------
revert the layout changes from svn 18635.  Management feels that there isn't enough time to thoroughly test the changes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<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/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/airframework/src/mx/core/Window.as
+++ frameworks/projects/airframework/src/mx/core/Window.as
@@ -32,7 +32,6 @@
 import mx.controls.Button;
 import mx.controls.FlexNativeMenu;
 import mx.core.FlexGlobals;
-import mx.core.FlexVersion;
 import mx.core.windowClasses.StatusBar;
 import mx.core.windowClasses.TitleBar;
 import mx.events.AIREvent;
@@ -2770,22 +2769,6 @@
         return result;
     }

-    /**
-     *  @private
-     *  Applications set estimated sizes for their children
-     */
-    override public function setActualSize(w:Number, h:Number):void
-    {
-        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-        {
-            setEstimatedSize(w, h, false);
-            invalidateEstimatedSizesOfChildren();
-            validateEstimatedSizesOfChildren();
-        }
-
-        super.setActualSize(w, h);
-    }
-
     //--------------------------------------------------------------------------
     //
     //  Methods


Transferred from the Adobe Open Source Subversion Repository

Revision: 2878
Author:   gosmith@adobe.com
Date:     2008-08-19T01:47:49.628691Z

Log Message:
-----------
Added an ObjectUtil.getUnqualifiedClassName() utility method for use in the className getter in four classes, which previously had copy-and-paste code.

Moved the STYLE_UNINITIALIZED constant from StyleManager to StyleProtoChain, since it indicates an uninitialized style proto chain.

Reviewer: Jono
Bugs: -
QA: No
Doc: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.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/flex/graphics/graphicsClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/framework/src/mx/effects/Effect.as
+++ frameworks/projects/framework/src/mx/effects/Effect.as
@@ -24,6 +24,7 @@
 import mx.events.EffectEvent;
 import mx.managers.LayoutManager;
 import mx.styles.IStyleClient;
+import mx.utils.ObjectUtil;

 use namespace mx_internal;

@@ -248,14 +249,7 @@
      */
     public function get className():String
     {
-        var name:String = getQualifiedClassName(this);
-
-        // If there is a package name, strip it off.
-        var index:int = name.indexOf("::");
-        if (index != -1)
-            name = name.substr(index + 2);
-
-        return name;
+        return ObjectUtil.getUnqualifiedClassName(this);
     }

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


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

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

 package spark.components
 {


didn't really want a background here

didn't really want a background here


added backwards compatibility code

added backwards compatibility code

--- WeaveUISpark/src/weave/visualization/plotters/AxisLabelPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/AxisLabelPlotter.as
@@ -172,5 +172,6 @@

 		// backwards compatibility
 		[Deprecated] public function set start(value:Number):void { begin.value = offset.value = value; }
+		[Deprecated] public function set horizontal(value:Boolean):void { alongXAxis.value = value; }
 	}
 }


More factorizing in CubicBezier.tangent

More factorizing in CubicBezier.tangent


Transferred from the Adobe Open Source Subversion Repository

Revision: 5367
Author:   rfrishbe@adobe.com
Date:     2009-03-17T22:26:35.014500Z

Log Message:
-----------
The changes here are mostly fixing some sizing issues.

For the FlashContainerPlaceholder, the first child is now MyFlexContentHolder, which extends mx.flash.FlexContentHolder but meets the invariant that it has 1 child and that child is  FlexContentHolderThumbnail, which I’ve added as a swc to the project.  I changed this by accident last time to refer to mx.flash.FlexContentHolder, when it should've referred to a concrete instance created by Flash from a swc.  I also added a chrome of 151x151 to match the FlexContentHolderThumbnail since otherwise the container itself would have no chrome at all, and this let’s it size correctly.

Also, for sizing, in a container, rather than sizing to the size of the chrome, I now size to the size of the FlexContentHolder thumbnail that all FlexContentHolder’s have.  This means in ContainerMovieClip, I don’t need to override bounds anymore.

ContainerMovieClip now implements IVisualElementContainer.

Also, I fixed a resizing event bug in UIMovieClip where the resize event was getting dispatched more than once.

QE Notes: -
Doc Notes: -
Bugs: SDK-19271, SDK-19788, SDK-19789
Reviewer: Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashComponentPlaceholder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashContainerPlaceholder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/utilities/libs/FlexContentHolderThumbnail.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/utilities/src/MyFlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/utilities/libs</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -1629,6 +1629,7 @@
     public function set includeInLayout(value:Boolean):void
     {
         _includeInLayout = value;
+        invalidateParentSizeAndDisplayList();
     }

     //----------------------------------
@@ -2217,6 +2218,14 @@
     {
         return super.scaleX;
     }
+
+    /**
+     *  @private
+     */
+    mx_internal function set $scaleX(value:Number):void
+    {
+        super.scaleX = value;
+    }

     //----------------------------------
     //  scaleY
@@ -2288,8 +2297,16 @@
     {
         return super.scaleY;
     }
-
-   //----------------------------------
+
+    /**
+     *  @private
+     */
+    mx_internal function set $scaleY(value:Number):void
+    {
+        super.scaleY = value;
+    }
+
+    //----------------------------------
     //  scaleZ
     //----------------------------------

@@ -3515,7 +3532,6 @@

     public function set currentState(value:String):void
     {
-        // TODO: revisit states
         if (value == _currentState)
             return;

@@ -3935,9 +3951,6 @@
      */
     public function setActualSize(newWidth:Number, newHeight:Number):void
     {
-        if (sizeChanged(_width, newWidth) || sizeChanged(_height, newHeight))
-            dispatchResizeEvent();
-
         // Remember our new actual size so we can report it later in the
         // width/height getters.
         _width = newWidth;
@@ -3947,6 +3960,9 @@
         // on our measured size, which can be different than our actual size.
         super.scaleX = scaleX*(newWidth / measuredWidth);
         super.scaleY = scaleY*(newHeight / measuredHeight);
+
+        if (sizeChanged(width, oldWidth) || sizeChanged(height, oldHeight))
+            dispatchResizeEvent();
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 11436
Author:   dloverin@adobe.com
Date:     2009-11-04T18:27:10.565800Z

Log Message:
-----------
Unload style fix.

projects/framework/src/mx/managers/IPopUpManager.as
projects/framework/src/mx/managers/PopUpManager.as
projects/framework/src/mx/managers/PopUpManagerImpl.as
    Add moduleFactory parameter to PopUpManager.addPopUp() so the moduleFactory can be controlled separately from the parent.

projects/framework/src/mx/styles/CSSStyleDeclaration.as
    Test if overrides[styleProp] is undefined instead of non-zero.

QE notes: None.
Doc notes: None.
Bugs: SDK-23030
Reviewer: Alex
Tests run: checkintests, Managers/StyleManager, Managers/PopUpManager
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IPopUpManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
@@ -35,6 +35,7 @@
 import mx.core.IChildList;
 import mx.core.IFlexDisplayObject;
 import mx.core.IFlexModule;
+import mx.core.IFlexModuleFactory;
 import mx.core.IInvalidating;
 import mx.core.ISWFLoader;
 import mx.core.IUIComponent;
@@ -267,6 +268,9 @@
      *  PopUpManagerChildList.POPUP,
      *  or PopUpManagerChildList.PARENT (default).
      *
+     *  @param moduleFactory The moduleFactory where this pop-up should look for
+     *  its embedded fonts and style manager.
+     *
      *  @see PopUpManagerChildList
      *
      *  @langversion 3.0
@@ -277,7 +281,8 @@
     public function addPopUp(window:IFlexDisplayObject,
                              parent:DisplayObject,
                              modal:Boolean = false,
-                             childList:String = null):void
+                             childList:String = null,
+                             moduleFactory:IFlexModuleFactory = null):void
     {
         // trace("POPUP: window is " + window);
         // All popups go on the local root.
@@ -290,10 +295,14 @@
               IUIComponent(window).document == null)
               IUIComponent(window).document = IUIComponent(parent).document;

-        if (parent is IUIComponent && IUIComponent(parent).document is IFlexModule &&
-              window is UIComponent && UIComponent(window).moduleFactory == null)
-              UIComponent(window).moduleFactory = IFlexModule(IUIComponent(parent).document).moduleFactory;
-
+        if (window is IFlexModule && IFlexModule(window).moduleFactory == null)
+        {
+            if (moduleFactory)
+                IFlexModule(window).moduleFactory = moduleFactory;
+            else if (parent is IUIComponent && IUIComponent(parent).document is IFlexModule)
+                IFlexModule(window).moduleFactory = IFlexModule(IUIComponent(parent).document).moduleFactory;
+        }
+
         var sm:ISystemManager = getTopLevelSystemManager(parent);
         var children:IChildList;
         var topMost:Boolean;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


add rudimentary support for mouse eheel events in Input system

--- net/flashpunk/utils/Input.as
+++ net/flashpunk/utils/Input.as
@@ -38,6 +38,25 @@
 		public static var mouseReleased:Boolean = false;

 		/**
+		 * If the mouse wheel was moved this frame.
+		 */
+		public static var mouseWheel:Boolean = false;
+
+		/**
+		 * If the mouse wheel was moved this frame, this was the delta.
+		 */
+		public static function get mouseWheelDelta():int
+		{
+		    if (mouseWheel)
+		    {
+		        mouseWheel = false;
+		        return _mouseWheelDelta;
+		    } else {
+		        return 0;
+		    }
+		}
+
+		/**
 		 * X position of the mouse on the screen.
 		 */
 		public static function get mouseX():int
@@ -147,6 +166,7 @@
 				FP.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
 				FP.stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
 				FP.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
+				FP.stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
 				_enabled = true;
 			}
 		}
@@ -220,6 +240,13 @@
 			mouseUp = true;
 			mousePressed = false;
 			mouseReleased = true;
+		}
+
+		/** @private Event handler for mouse wheel events */
+		private static function onMouseWheel(e:MouseEvent):void
+		{
+		    mouseWheel = true;
+		    _mouseWheelDelta = e.delta;
 		}

 		// Max amount of characters stored by the keystring.
@@ -234,5 +261,6 @@
 		/** @private */ private static var _pressNum:int = 0;
 		/** @private */ private static var _releaseNum:int = 0;
 		/** @private */ private static var _control:Array = [];
+		/** @private */ private static var _mouseWheelDelta:int = 0;
 	}
 }


Update src/justpinegames/Logi/ConsoleItemRenderer.as

Removed Signals dependency bringing this library in line with Feathers

--- src/justpinegames/Logi/ConsoleItemRenderer.as
+++ src/justpinegames/Logi/ConsoleItemRenderer.as
@@ -5,8 +5,6 @@
     import feathers.controls.text.BitmapFontTextRenderer;
     import feathers.core.FeathersControl;
 	import feathers.text.BitmapFontTextFormat;
-	import org.osflash.signals.ISignal;
-	import org.osflash.signals.Signal;
 	import starling.events.Event;
 	import starling.text.BitmapFont;
 	import starling.textures.TextureSmoothing;
@@ -16,14 +14,14 @@
 		private static var _format:BitmapFontTextFormat = null;
 		private static var _formatHighlight:BitmapFontTextFormat = null;

-		private var _onChange:Signal = new Signal(ConsoleItemRenderer);
-
 		private var _data:Object;
 		private var _index:int;
 		private var _owner:List;
 		private var _isSelected:Boolean;

 		private var _label:BitmapFontTextRenderer;
+
+		[Event(name="change",type="starling.events.Event")]

 		public function ConsoleItemRenderer(labelColor:int, labelColorHighlight:int)
 		{
@@ -96,12 +94,8 @@
 			}

 			_isSelected = value;
-			_onChange.dispatch(this);
+			dispatchEventWith(Event.CHANGE);
 		}

-		public function get onChange():ISignal
-		{
-			return this._onChange;
-		}
 	}
 }


A Ceil method in ShaderTemplatePart

A Ceil method in ShaderTemplatePart

--- src/aerys/minko/render/shader/ShaderTemplatePart.as
+++ src/aerys/minko/render/shader/ShaderTemplatePart.as
@@ -479,6 +479,14 @@
 			return subtract(value, fractional(value));
 		}

+		protected final function ceil(value : Object) : SValue
+		{
+			var frac		: SValue = fractional(value);
+			var isNotWhole	: SValue = greaterEqual(frac, 0);
+
+			return add(isNotWhole, subtract(value, frac));
+		}
+
 		protected final function tan(angle : Object) : SValue
 		{
 			return divide(sin(angle), cos(angle));


Naming/comments

Naming/comments

--- src/org/zozuar/volumetrics/EffectContainer.as
+++ src/org/zozuar/volumetrics/EffectContainer.as
@@ -32,7 +32,7 @@
 		protected var _halve:ColorTransform = new ColorTransform(0.5, 0.5, 0.5);
 		protected var _occlusionBmd:BitmapData;
 		protected var _occlusionBmp:Bitmap;
-		protected var _buffBmd:BitmapData;
+		protected var _bufferBmd:BitmapData;
 		protected var _lightBmp:Bitmap = new Bitmap;
 		protected var _bufferSize:uint = 0x8000;
 		protected var _bufferWidth:uint;
@@ -49,7 +49,8 @@
 			addChild(_lightBmp);
 		}

-		// Sets the container's size (in pixels).
+		// Sets the container's size (in pixels). This method recreates internal buffers (slow), do not
+		// call this on every frame.
 		public function setViewportSize(width:uint, height:uint):void {
 			_viewportWidth = width;
 			_viewportHeight = height;
@@ -58,7 +59,8 @@
 		}

 		// Sets the approximate size (in pixels) of the effect's internal buffers. Smaller number means lower
-		// quality and better performance.
+		// quality and better performance. This method recreates internal buffers (slow), do not call this on
+		// every frame.
 		public function setBufferSize(size:uint):void {
 			_bufferSize = size;
 			_updateBuffers();
@@ -70,7 +72,7 @@
 			_bufferWidth  = Math.max(1, _bufferHeight * aspect);
 			dispose();
 			_emissionBmd  = new BitmapData(_bufferWidth, _bufferHeight, false, 0);
-			_buffBmd      = new BitmapData(_bufferWidth, _bufferHeight, false, 0);
+			_bufferBmd    = new BitmapData(_bufferWidth, _bufferHeight, false, 0);
 			_occlusionBmd = new BitmapData(_bufferWidth, _bufferHeight, true, 0);
 			_occlusionBmp = new Bitmap(_occlusionBmd);
 		}
@@ -99,7 +101,7 @@
 			m.translate(-tx, -ty);
 			m.scale(s, s);
 			m.translate(tx, ty);
-			_lightBmp.bitmapData = _applyEffect(_emissionBmd, _buffBmd, m, passes);
+			_lightBmp.bitmapData = _applyEffect(_emissionBmd, _bufferBmd, m, passes);
 			_lightBmp.width = _viewportWidth;
 			_lightBmp.height = _viewportHeight;
 			_lightBmp.smoothing = smoothing;
@@ -116,17 +118,17 @@
 			removeEventListener(Event.ENTER_FRAME, render);
 		}

-		// Low-level workhorse, applies the lighting effect to a bitmap. This function modifies the src and buff
-		// bitmaps. src and buff must be the same size. The bitmap with final output (either src or buff) is
+		// Low-level workhorse, applies the lighting effect to a bitmap. This function modifies the src and buffer
+		// bitmaps. src and buffer must be the same size. The bitmap with final output (either src or buffer) is
 		// returned.
-		protected function _applyEffect(src:BitmapData, buff:BitmapData, mtx:Matrix, passes:uint):BitmapData {
+		protected function _applyEffect(src:BitmapData, buffer:BitmapData, mtx:Matrix, passes:uint):BitmapData {
 			var tmp:BitmapData;
 			while(passes--) {
 				if(colorIntegrity) src.colorTransform(src.rect, _halve);
-				buff.copyPixels(src, src.rect, src.rect.topLeft);
-				buff.draw(src, mtx, null, BlendMode.ADD, null, true);
+				buffer.copyPixels(src, src.rect, src.rect.topLeft);
+				buffer.draw(src, mtx, null, BlendMode.ADD, null, true);
 				mtx.concat(mtx);
-				tmp = src; src = buff; buff = tmp;
+				tmp = src; src = buffer; buffer = tmp;
 			}
 			if(colorIntegrity) src.colorTransform(src.rect, _ct);
 			if(blur) src.applyFilter(src, src.rect, src.rect.topLeft, _blurFilter);
@@ -137,8 +139,8 @@
 		public function dispose():void {
 			if(_emissionBmd) _emissionBmd.dispose();
 			if(_occlusionBmd) _occlusionBmd.dispose();
-			if(_buffBmd) _buffBmd.dispose();
-			_emissionBmd = _occlusionBmd = _buffBmd = _lightBmp.bitmapData = null;
+			if(_bufferBmd) _bufferBmd.dispose();
+			_emissionBmd = _occlusionBmd = _bufferBmd = _lightBmp.bitmapData = null;
 		}
     }
 }


using array[array.length] = item instead of array.push(item)

--- WeaveCore/src/weave/core/SessionManager.as
+++ WeaveCore/src/weave/core/SessionManager.as
@@ -835,7 +835,7 @@
 		{
 			var busy:Boolean = false;

-			_aBusyTraversal.push(linkableObject);
+			_aBusyTraversal[_aBusyTraversal.length] = linkableObject; // push
 			_dBusyTraversal[linkableObject] = true;

 			outerLoop: for (var i:int = 0; i < _aBusyTraversal.length; i++)
@@ -872,7 +872,7 @@
 					// queue all the children that haven't been queued yet
 					if (!_dBusyTraversal[child])
 					{
-						_aBusyTraversal.push(child);
+						_aBusyTraversal[_aBusyTraversal.length] = child; // push
 						_dBusyTraversal[child] = true;
 					}
 				}


export text data

export text data

--- Exporter/src/harayoki/app/bitmapfont/export/TextFntFileMaker.as
+++ Exporter/src/harayoki/app/bitmapfont/export/TextFntFileMaker.as
@@ -3,9 +3,26 @@
 	import flash.display.BitmapData;

 	import harayoki.app.data.FontData;
+	import harayoki.app.data.LetterData;

 	public class TextFntFileMaker implements IFntFileMaker
 	{
+		private static const INFO_TEMPLATE:String =
+			'info face="${face}" size=${size} bold=${bold} italic=${italic} charset="${charset}" unicode=${unicode} ' +
+			'stretchH=${stretchH} smooth=${smooth} aa=${aa} padding=${padding} spacing=${spacing} outline=${outline}';
+
+		private static const COMMON_TEMPLATE:String =
+			'common lineHeight=${lineHeight} base=${base} scaleW=${scaleW} scaleH=${scaleH} pages=${pages} packed=${packed}'+
+			' alphaChnl=${alphaChnl} redChnl=${redChnl} greenChnl=${greenChnl} blueChnl=${blueChnl}';
+
+		private static const PAGE_TEMPLATE:String =
+			'page id=${id} file="${file}"\n' +
+			'chars count=${count}';
+
+		private static const CHAR_TEMPLATE:String =
+			'char id=${id} x=${x}    y=${y}   width=${width}    height=${height}'+
+			'    xoffset=${xoffset}     yoffset=${yoffset}    xadvance=${xadvance}    page=${page}  chnl=${chnl}';
+
 		private static const instance:TextFntFileMaker = new TextFntFileMaker();
 		public static function getInstance():TextFntFileMaker
 		{
@@ -18,7 +35,56 @@

 		public function makeFntFile(fontData:FontData, bitmapData:BitmapData):String
 		{
-			return null;
+			var str:String = "";
+			str += _template(INFO_TEMPLATE,fontData) + "\n";
+			str += _template(COMMON_TEMPLATE,fontData) + "\n";
+			str += _template(PAGE_TEMPLATE,fontData,{count:fontData.letters.length}) + "\n";
+			var i:int;
+			for(i=0;i<fontData.letters.length;i++)
+			{
+				var letter:LetterData = fontData.letters[i];
+				str += _template(CHAR_TEMPLATE,letter) + "\n";
+			}
+			return str;
+		}
+
+		private function _template(tmpl:String,data:*,data2:*=null):String
+		{
+			var reg1:RegExp = /\${.+?}/g;
+			var reg2:RegExp = /\${(.+?)}/;
+			var str:String = tmpl;
+			var matchedList:Array = tmpl.match(reg1);
+			for(var i:int=0;i<matchedList.length;i++)
+			{
+				var matched:String = matchedList[i];
+				var key:String = matched.slice(2,-1);
+				if(data.hasOwnProperty(key))
+				{
+					str = str.replace("${"+key+"}",data[key]+"");
+				}
+				else if(data2 && data2.hasOwnProperty(key))
+				{
+					str = str.replace("${"+key+"}",data2[key]+"");
+				}
+			}
+			return str;
 		}
 	}
-}+}
+
+/*
+
+sample
+
+info face="小塚明朝 Pro R" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
+common lineHeight=32 base=25 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
+page id=0 file="test_0.png"
+chars count=91
+char id=12353 x=73    y=131   width=15    height=17    xoffset=4     yoffset=10    xadvance=24    page=0  chnl=15
+char id=12354 x=22    y=25    width=20    height=22    xoffset=2     yoffset=5     xadvance=24    page=0  chnl=15
+:
+:
+:
+
+
+*/