Added playerSpeedCollision getter to RT system.

--- src/engine/tetragon/systems/racetrack/RacetrackSystem.as
+++ src/engine/tetragon/systems/racetrack/RacetrackSystem.as
@@ -118,8 +118,9 @@
 		private var _startPosition:Number;
 		private var _position:Number;			// current camera Z position (add playerZ to get player's absolute Z position)
 		private var _prevPosition:Number;
-		private var _speed:Number;				// current speed
-		private var _speedPercent:Number;
+		private var _playerSpeed:Number;				// current speed
+		private var _playerSpeedPercent:Number;
+		private var _playerSpeedCollision:Number;

 		private var _progress:int;
 		private var _progressTotal:int;
@@ -254,7 +255,8 @@
 			_startPosition = 0;
 			_position = 0;
 			_prevPosition = -1;
-			_speed = 0;
+			_playerSpeed = 0;
+			_playerSpeedCollision = 0;
 			_widthHalf = _width * 0.5;
 			_heightHalf = _height * 0.5;
 			_bgScrollOffset = 0.0;
@@ -355,9 +357,9 @@

 			var i:int, playerSegment:RTSegment = findSegment(_position + _playerZ);

-			_speedPercent = _speed / _maxSpeed;
+			_playerSpeedPercent = _playerSpeed / _maxSpeed;
 			_startPosition = _position;
-			_position = increase(_position, _dt * _speed, _trackLength);
+			_position = increase(_position, _dt * _playerSpeed, _trackLength);

 			updateCars(playerSegment, _playerWidth);

@@ -380,21 +382,21 @@
 			}

 			/* Slow down if player drives onto off-road area. */
-			if ((_playerX < -1 || _playerX > 1) && _speed > _offRoadLimit)
-			{
-				_speed = accel(_speed, _offRoadDecel);
+			if ((_playerX < -1 || _playerX > 1) && _playerSpeed > _offRoadLimit)
+			{
+				_playerSpeed = accel(_playerSpeed, _offRoadDecel);
 			}

 			/* Check player collision with other cars. */
 			for (i = 0; i < playerSegment.cars.length; i++)
 			{
 				var car:RTCar = playerSegment.cars[i];
-				if (_speed > car.speed)
+				if (_playerSpeed > car.speed)
 				{
 					var carWidth:Number = car.entity.width * (_objectScale * car.entity.scale);
 					if (overlap(_playerX, _playerWidth, car.offset, carWidth, 0.8))
 					{
-						_speed = car.speed * (car.speed / _speed);
+						_playerSpeed = car.speed * (car.speed / _playerSpeed);
 						_position = increase(car.z, -_playerZ, _trackLength);
 						break;
 					}
@@ -402,7 +404,7 @@
 			}

 			_playerX = limit(_playerX, -3, 3);		// Don't ever let it go too far out of bounds
-			_speed = limit(_speed, 0, _maxSpeed);	// or exceed maxSpeed.
+			_playerSpeed = limit(_playerSpeed, 0, _maxSpeed);	// or exceed maxSpeed.

 			/* Increase move counter only if the player is moving. */
 			if (_prevSegment != playerSegment)
@@ -526,7 +528,7 @@
 				if (seg == playerSegment)
 				{
 					/* Calculate player sprite bouncing depending on speed percentage. */
-					var jitter:Number = _racetrack.playerJitter ? (1.5 * Math.random() * (_speed / _maxSpeed) * _resolution) * randomChoice([-1, 1]) : 0.0;
+					var jitter:Number = _racetrack.playerJitter ? (1.5 * Math.random() * (_playerSpeed / _maxSpeed) * _resolution) * randomChoice([-1, 1]) : 0.0;
 					renderEntity(_racetrack.player,
 						_cameraDepth / _playerZ,
 						_widthHalf,
@@ -543,8 +545,8 @@

 		public function jump():void
 		{
-			if (!_enableControls || !_playerEnabled || _isJump || _speed == 0) return;
-			_playerJumpHeight = -(_speedPercent * 1.8);
+			if (!_enableControls || !_playerEnabled || _isJump || _playerSpeed == 0) return;
+			_playerJumpHeight = -(_playerSpeedPercent * 1.8);
 			_isFall = false;
 			_isJump = true;
 		}
@@ -853,7 +855,16 @@
 		 */
 		public function get playerSpeed():Number
 		{
-			return _speed;
+			return _playerSpeed;
+		}
+
+
+		/**
+		 * The speed of the player at the last collision occurence.
+		 */
+		public function get playerSpeedCollision():Number
+		{
+			return _playerSpeedCollision;
 		}

@@ -1012,14 +1023,14 @@
 				segment = _segments[(carSegment.index + i) % _segments.length];

 				/* Car drive-around player AI */
-				if ((segment === playerSegment) && (car.speed > _speed) && (overlap(_playerX, playerW, car.offset, carW, 1.2)))
+				if ((segment === playerSegment) && (car.speed > _playerSpeed) && (overlap(_playerX, playerW, car.offset, carW, 1.2)))
 				{
 					if (_playerX > 0.5) dir = -1;
 					else if (_playerX < -0.5) dir = 1;
 					else dir = (car.offset > _playerX) ? 1 : -1;
 					// The closer the cars (smaller i) and the greater the speed ratio,
 					// the larger the offset.
-					return dir * 1 / i * (car.speed - _speed) / _maxSpeed;
+					return dir * 1 / i * (car.speed - _playerSpeed) / _maxSpeed;
 				}

 				/* Car drive-around other car AI */
@@ -1061,7 +1072,7 @@
 				else
 				{
 					playerStateID = RTPlayerDefaultStateNames.JUMP;
-					_playerOffsetY -= (1.1 - _speedPercent) * 0.36;
+					_playerOffsetY -= (1.1 - _playerSpeedPercent) * 0.36;
 				}
 			}
 			else if (_isFall)
@@ -1069,7 +1080,7 @@
 				if (_playerOffsetY < -1.0)
 				{
 					playerStateID = RTPlayerDefaultStateNames.FALL;
-					_playerOffsetY += (1.1 - _speedPercent) * 0.36;
+					_playerOffsetY += (1.1 - _playerSpeedPercent) * 0.36;
 				}
 				else
 				{
@@ -1079,7 +1090,7 @@
 			}
 			else
 			{
-				var dx:Number = _dt * 2 * _speedPercent;
+				var dx:Number = _dt * 2 * _playerSpeedPercent;
 				var updown:Number = segment.point2.world.y - segment.point1.world.y - 20;

 				/* Update left/right steering. */
@@ -1104,25 +1115,25 @@
 						: RTPlayerDefaultStateNames.MOVE_FORWARD;
 				}

-				_playerX = _playerX - (dx * _speedPercent * segment.curve * _centrifugal);
+				_playerX = _playerX - (dx * _playerSpeedPercent * segment.curve * _centrifugal);

 				/* Update acceleration & decceleration. */
 				if (_isAccelerating)
 				{
 					_idleAfterCollision = false;
-					_speed = accel(_speed, _acceleration);
+					_playerSpeed = accel(_playerSpeed, _acceleration);
 				}
 				else if (_isBraking)
 				{
-					_speed = accel(_speed, _braking);
+					_playerSpeed = accel(_playerSpeed, _braking);
 				}
 				else
 				{
-					_speed = accel(_speed, _deceleration);
-				}
-			}
-
-			if (_speed <= 0 || _idleAfterCollision)
+					_playerSpeed = accel(_playerSpeed, _deceleration);
+				}
+			}
+
+			if (_playerSpeed <= 0 || _idleAfterCollision)
 			{
 				playerStateID = RTPlayerDefaultStateNames.IDLE;
 			}
@@ -1132,7 +1143,7 @@
 				_racetrack.player.object.switchToState(playerStateID);
 				if (_racetrack.playerAnimDynamicFPS)
 				{
-					_playerFPS = (_speed * 0.6) / 300;
+					_playerFPS = (_playerSpeed * 0.6) / 300;
 					if (_playerFPS < 6) _playerFPS = 6;
 					else if (_playerFPS > 20) _playerFPS = 20;
 					_racetrack.player.object.changeAnimFramerate(_playerFPS);
@@ -1176,6 +1187,7 @@
 				if (overlap(_playerX, _playerWidth, x2, w2))
 				{
 					_racetrack.player.isColliding = e.isColliding = true;
+					_playerSpeedCollision = _playerSpeed;

 					/* Check the collided entity's triggers. */
 					if (e.object.triggersNum > 0)
@@ -1194,7 +1206,7 @@
 					 * player is actually off-road! */
 					if (e.type == RTObjectTypes.OFFROAD && (_playerX < -1 || _playerX > 1))
 					{
-						_speed = _maxSpeed / 5;
+						_playerSpeed = _maxSpeed / 5;
 						/* Stop in front of sprite (at front of segment). */
 						_position = increase(segment.point1.world.z, -_playerZ, _trackLength);
 						break;
@@ -1207,12 +1219,12 @@
 						{
 							hardness = e.object.properties[RTObjectPropertyNames.OBSTACLE_HARDNESS];
 						}
-						_speed = _maxSpeed / hardness;
+						_playerSpeed = _maxSpeed / hardness;
 						/* Stop in front of sprite (at front of segment). */
 						if (hardness >= 100)
 						{
 							/* Determines how quick player can steer away from obstacle after being stopped. */
-							_speed = _maxSpeed / 5;
+							_playerSpeed = _maxSpeed / 5;
 							_position = increase(segment.point1.world.z, -_playerZ, _trackLength);
 							_idleAfterCollision = true;
 						}


added missing code

added missing code

--- WeaveJS/src/weavejs/data/column/StringColumn.as
+++ WeaveJS/src/weavejs/data/column/StringColumn.as
@@ -38,6 +38,7 @@

 			dataTask = new ColumnDataTask(this, filterStringValue, handleDataTaskComplete);
 			dataCache = new Dictionary2D();
+			Weave.getCallbacks(_asyncSort).addImmediateCallback(this, handleSortComplete);
 		}

 		override public function getMetadata(propertyName:String):String


修改: AnimationLayerRenderer 使用第一帧的 box 属性作为帧大小

--- age/src/age/renderers/AnimationLayerRenderer.as
+++ age/src/age/renderers/AnimationLayerRenderer.as
@@ -31,7 +31,6 @@
 		{
 			super();
 			uniqueIndex += ZIndexHelper.ANIMATION_OFFSET;
-			// filter = new SolidColorFilter();
 		}

 		private var _currentFrame:int;
@@ -171,17 +170,16 @@
 		[Inline]
 		final protected function adjustSize():void
 		{
-			var frame:Rectangle = _info.textures[0].frame;
-			var width:Number = frame ? frame.width : texture.width;
-			var height:Number = frame ? frame.height : texture.height;
+			// 调整原点
+			const box:Box = _info.frames[0].box;
+			const width:int = box.width;
+			const height:int = box.height;
+			pivotX = width * (box.pivot.x);
+			pivotY = height * (1 - box.pivot.y); // 坐标系不同，需要颠倒的 pivot.y
 			mVertexData.setPosition(0, 0.0, 0.0);
 			mVertexData.setPosition(1, width, 0.0);
 			mVertexData.setPosition(2, 0.0, height);
 			mVertexData.setPosition(3, width, height);
-			// 调整原点
-			const box:Box = _info.frames[0].box;
-			pivotX = box.width * (box.pivot.x);
-			pivotY = box.height * (1 - box.pivot.y); // 坐标系不同，需要颠倒的 pivot.y
 			onVertexDataChanged();
 		}


add begin and end of splinepath coloring

--- bin/Data/Scripts/Editor/EditorViewDebugIcons.as
+++ bin/Data/Scripts/Editor/EditorViewDebugIcons.as
@@ -13,7 +13,7 @@

 Node@ debugIconsNode = null;

-int stepDebugIconsUpdate = 30; //ms
+int stepDebugIconsUpdate = 40; //ms
 int timeToNextDebugIconsUpdate = 0;
 const int splinePathResolution = 16;
 bool debugIconsShow = true;
@@ -341,7 +341,22 @@
                         Billboard@ bb = debugIconsSetSplinesPoints.billboards[index];
                         bb.position = splinePoint;
                         bb.size = debugIconsSizeSmall * distance;
-                        //bb.color = Color(1,1,0);
+
+                        if (step == 0)
+                        {
+                            bb.color = Color(1,1,0);
+                            bb.size = debugIconsSize * distance;
+                        }
+                        else if ((step+1) >= (splinePathResolution - splineStep))
+                        {
+                            bb.color = Color(0,1,0);
+                            bb.size = debugIconsSize * distance;
+                        }
+                        else
+                        {
+                            bb.color = Color(1,1,1);
+                            bb.size = debugIconsSizeSmall * distance;
+                        }
                         bb.enabled = sp.enabled;
                     }
                 }


Modified the AirQualityMapLayer plotter so that all points beyond the orange thresholds will be plotted regardless of geographic overlap tolerance.

--- src/components/AirQualityMapLayer.as
+++ src/components/AirQualityMapLayer.as
@@ -13,6 +13,7 @@
 	import etc.AirQualityConstants;
 	import etc.DirtyFlag;
 	import etc.PointRenderer;
+	import etc.AirQualityColors;

 	import events.DataPointEvent;

@@ -52,10 +53,12 @@

 		protected var _prevMaxPtNums:Object = {}; 	//last point number drawn by the last append pass (indexed by dataURI)
 		protected var _prevPos:Object = {} 			//position of the last point drawn (indexed by dataURI)
+		protected var _prevVal:Object = {}			//value of the last point drawn (indexed by dataURI)

 		protected function get map():Map{ return _map;}

 		public var pointOverlapTolerance:Number = 11;
+		//public var pointValueTolerance:Number; // This might be needed to deal with seeing-spikes problem
 		public var zoomTolerance:Number = 5;
 		public var pointDiameter:Number = 15;
 		public var numMouseOverAdjacents:uint = 15;
@@ -209,11 +212,13 @@
 		        else {
 		            plotBitmapData.fillRect(new Rectangle(0,0,plotBitmapData.width,plotBitmapData.height),0x00000000);
 		        }
-		        _prevPos = {};
+		        _prevPos = {};
+		        _prevVal = {};
 			}

 			//prep the renderer we'll use to draw points
 			var renderer:PointRenderer = new PointRenderer(plotBitmapData,pointDiameter,pointOverlapTolerance);
+

 			plotBitmapData.lock();

@@ -247,7 +252,10 @@
 					//skip if position not different different from last plotted point
 					if(!selections.isSelected(point) && _prevPos[ds.dataURI]
 							&& Math.abs(_prevPos[ds.dataURI].x - dPt.x) < pointOverlapTolerance
-							&& Math.abs(_prevPos[ds.dataURI].y - dPt.y) < pointOverlapTolerance){
+							&& Math.abs(_prevPos[ds.dataURI].y - dPt.y) < pointOverlapTolerance
+							&& !(point.value > AirQualityColors.POLLUTANT_INDEX[ds.pollutant][2])){
+							// could add a && _prevVal[ds.dataURI] == point.value here as additional check to see if previous value is sufficiently different
+							// for now we deal with the "making spikes obvious" problem by just showing anything that looks red or worse.
 						continue;
 					}

@@ -261,6 +269,7 @@
 					//plot the point to the current bitmapdata
 					renderer.plotPoint(point,dPt,ds.pollutant,selections.isSelected(point));
 					_prevPos[ds.dataURI] = dPt;
+					_prevVal[ds.dataURI] = point.value;
 				}
 				_prevMaxPtNums[ds.dataURI] = Math.max(i - 1,0);
 			}


Addendum to 605640: remove print function from shell.as as that will prevent some tests from compiling (r=cpeyer)

--- test/acceptance/shell.as
+++ test/acceptance/shell.as
@@ -1060,10 +1060,6 @@
 //  trace(s);
 }

-function print(s) {
-    trace(s);
-}
-
 // workaround for Debugger vm where error contains more details
 function parseError(error,len) {
   if (error.length>len) {


Finished implementation of the ADC Instruction

--- src/net/johnmercer/nes/system/CPU.as
+++ src/net/johnmercer/nes/system/CPU.as
@@ -545,43 +545,67 @@

 		private function instrADC(addressingMode:uint, param1:uint, param2:uint, paramWord:uint):void
 		{
-			var value:int = 0;
-			var result:int = 0;
+			var value:uint = 0;
+			var result:uint = 0;
 			switch (addressingMode)
 			{
 				case IMM:
 					value = param1;
 					break;
 				case ZPG:
-					value = _mem.readUnsignedByte(param1);
+					value = readUnsignedByte(param1);
 					break;
 				case ZPX:
-					value = _mem.readUnsignedByte((param1 + X) & 0xFF);
+					value = readUnsignedByte(param1);
+					value += X;
+					value = readUnsignedByte(value & 0xFF);
 					break;
 				case ABS:
 					value = readUnsignedByte(paramWord);
 					break;
 				case ABX:
 					value = readUnsignedByte(paramWord + X);
+					// Calculate cycle by checking paramWord + X & 0xFF < paramWord & 0xFF(or param1?)
 					break;
 				case ABY:
 					value = readUnsignedByte(paramWord + Y);
 					break;
 				case INX:
-					value = _mem((param1 + X) & 0xFF);
+					value = readUnsignedByte(param1);
+					value = (value + X) & 0xFF;
+					if (value == 0xFF)
+						value = readUnsignedByte(0xFF) | (readUnsignedByte(0) << 8);
+					else
+						value = readUnsignedWord(value);
+
+					value = readUnsignedByte(value);
 					break;
 				case INY:
-					value = _mem((param1 + Y) & 0xFF);
-					break;
+					if (param1 == 0xFF)
+						value = readUnsignedByte(0xFF) | (readUnsignedByte(0) << 8);
+					else
+						value = readUnsignedWord(param1);
+					value += Y;
+					value = readUnsignedByte(value);
+					break;
 				default:
 					_emulator.log("Invalid addressing mode " + ADDR_NAME[addressingMode] + " for Instruction: ADC");
 					break;
 			}
 			result = A + value;
-
-
-		}
-
+			P &= ~(NEGATIVE_FLAG | CARRY_FLAG | OVERFLOW_FLAG);
+			if (result & 0x80)
+				P |= NEGATIVE_FLAG;
+			if (result & 0x100)
+				P |= CARRY_FLAG;
+			var sign:uint = 0;
+			// Overflow if A and Value have the same sign, but result is a different sign
+			if (((sign = A & 0x80) == (value & 0x80)) && (sign != (result & 0x80)))
+				P |= OVERFLOW_FLAG;
+
+			A = result & 0xFF;
+		}
+
 		private function instrAND(addressingMode:uint, param1:uint, param2:uint, paramWord:uint):void
 		{
 			switch (addressingMode)


Transferred from the Adobe Open Source Subversion Repository

Revision: 20208
Author:   smgilson@adobe.com
Date:     2011-02-08T21:40:02.122057Z

Log Message:
-----------
Several ASDoc bug fixes

QE notes:
Doc notes:
Bugs: FLEXDOCS-1342, FLEXDOCS-1330, FLEXDOCS-1323
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/EmbeddedFont.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/spark/asdoc/en_US/spark/components/examples/ScrollerExample.mxml</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/primitives/RectangularDropShadow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/skins/spark/windowChrome/MacTitleBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.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/framework/src/mx/managers/IFocusManagerComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/ObjectUtil.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/framework/src/mx/core/DeferredInstanceFromClass.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DeferredInstanceFromFunction.as</path>

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 12052
Author:   clucier@adobe.com
Date:     2009-11-20T18:38:19.094091Z

Log Message:
-----------
We now issue runtime warnings for incompatible embedded fonts as we detect their use.

QE notes: You might want to create a couple tests around this.
Doc notes: None.
Bugs: SDK-23920.
Reviewer: Alex, Darrell
Tests run: Checkin
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/bundles/en_US/core.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/TextUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.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/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>

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

--- frameworks/projects/framework/src/mx/core/UITextFormat.as
+++ frameworks/projects/framework/src/mx/core/UITextFormat.as
@@ -535,7 +535,7 @@
         var fontModuleFactory:IFlexModuleFactory = (noEmbeddedFonts || !embeddedFontRegistry) ?
 			null :
             embeddedFontRegistry.getAssociatedModuleFactory(
-                font, bold, italic, this, moduleFactory);
+                font, bold, italic, this, moduleFactory, systemManager, useFTE);

         embeddedFont = (fontModuleFactory != null);
         if (fontModuleFactory == null)
@@ -559,17 +559,8 @@

         // Make the measurement TextField use this TextFormat.
         measurementTextField.defaultTextFormat = this;
-        if (font)
-        {
-            measurementTextField.embedFonts = embeddedFont ||
-                                              (systemManager != null &&
-                                              systemManager.isFontFaceEmbedded(this));
-        }
-        else
-        {
-            measurementTextField.embedFonts = false;
-        }
-
+        measurementTextField.embedFonts = embeddedFont;
+
         // Set other properties based on CSS styles.
         if (!useFTE)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 21536
Author:   jasonsj@adobe.com
Date:     2011-07-11T23:14:34.905781Z

Log Message:
-----------
Initial checkin for Callout/CalloutButton and mobile check-in tests.

* Refactored pop up transformations from PopUpAnchor.applyPopUpTransform() to mx.utils.PopUpUtil.applyPopUpTransform()
* CalloutPosition.AUTO not yet implemented
* Visuals are not the final XD design.

QE notes:
Doc notes:
Bugs:
Reviewer: chiedozi
Tests run: checkintests, checkintests-mobile
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.flexLibProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/views/TestCalloutButton.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.actionScriptProperties</path>
<path kind="file" action="A">/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/mobiletheme/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/utils/PopUpUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.actionScriptProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/scripts/CalloutButtonTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-app.xml</path>

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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -26,6 +26,8 @@
 import spark.skins.mobile.BeveledBackButtonSkin; BeveledBackButtonSkin;
 import spark.skins.mobile.ButtonBarSkin; spark.skins.mobile.ButtonBarSkin;
 import spark.skins.mobile.ButtonSkin; spark.skins.mobile.ButtonSkin;
+import spark.skins.mobile.CalloutSkin; spark.skins.mobile.CalloutSkin;
+import spark.skins.mobile.CalloutButtonSkin; spark.skins.mobile.CalloutButtonSkin;
 import spark.skins.mobile.CheckBoxSkin; spark.skins.mobile.CheckBoxSkin;
 import spark.skins.mobile.DefaultButtonSkin; spark.skins.mobile.DefaultButtonSkin;
 import spark.skins.mobile.HScrollBarSkin; spark.skins.mobile.HScrollBarSkin;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18046
Author:   jasonsj@adobe.com
Date:     2010-10-06T23:00:53.128377Z

Log Message:
-----------
Style changes for ActionBar including: new 67px height, title shadow up, light-look and chromeColor support in ActionBar buttons.
Added inheriting MobileTextFieldTextStyles to ActionBar.
Added inheriting container styles to ActionBar: accentColor, contentBackgroundAlpha, contentBackgroundColor, focusColor.
Added skin states to ActionBar

QE notes:
Doc notes:
Bugs:
SDK-27684 Several ActionBar style metadata tags are missing
SDK-28006 ActionBar TitleContent is not replacing Title when set in AS
SDK-27948 unable to style components inside actionContent and navigationContent via individual component's css rule
SDK-27684 Several ActionBar style metadata tags are missing
Reviewer: rfrishbe
Tests run: checkintests
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/NavigationButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/ActionButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/ActionBarBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/NavigationButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/ActionButton_up.fxg</path>

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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -21,6 +21,7 @@
  *  beyond those that are found by dependecy analysis starting
  *  from the classes specified in manifest.xml.
  */
+import spark.skins.mobile.ActionBarButtonSkinBase; ActionBarButtonSkinBase;
 import spark.skins.mobile.ActionBarSkin; ActionBarSkin;
 import spark.skins.mobile.ActionButtonSkin; ActionButtonSkin;
 import spark.skins.mobile.NavigationButtonSkin; NavigationButtonSkin;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8207
Author:   smgilson@adobe.com
Date:     2009-06-24T22:55:28.494485Z

Log Message:
-----------
Fix ASDoc version tags

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RectangularDropShadow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/DropDownEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/TrackBaseEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/VideoElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Ellipse.as
+++ frameworks/projects/spark/src/spark/primitives/Ellipse.as
@@ -93,8 +93,8 @@
                                                         postLayoutTransform:Boolean = true):Number
     {
         if (postLayoutTransform && hasComplexLayoutMatrix)
-        	width = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2,
-        											 layoutFeatures.layoutMatrix).width;
+            width = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2,
+                                                     layoutFeatures.layoutMatrix).width;

         // Take stroke into account
         return width + getStrokeExtents().x;
@@ -108,8 +108,8 @@
                                                          postLayoutTransform:Boolean = true):Number
     {
         if (postLayoutTransform && hasComplexLayoutMatrix)
-			height = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2,
-													  layoutFeatures.layoutMatrix).height;
+            height = MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2,
+                                                      layoutFeatures.layoutMatrix).height;

         // Take stroke into account
         return height + getStrokeExtents().y;
@@ -119,9 +119,9 @@
      *  @inheritDoc
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override public function getBoundsXAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
     {
@@ -152,9 +152,9 @@
      *  @inheritDoc
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override public function getBoundsYAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
     {
@@ -190,7 +190,7 @@

         if (postLayoutTransform && hasComplexLayoutMatrix)
             return stroke + MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2,
-            												 layoutFeatures.layoutMatrix).x;
+                                                             layoutFeatures.layoutMatrix).x;

         return stroke + this.x;
     }
@@ -204,7 +204,7 @@

         if (postLayoutTransform && hasComplexLayoutMatrix)
                 return stroke + MatrixUtil.getEllipseBoundingBox(width / 2, height / 2, width / 2, height / 2,
-                												 layoutFeatures.layoutMatrix).y;
+                                                                 layoutFeatures.layoutMatrix).y;

         return stroke + this.y;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19795
Author:   rfrishbe@adobe.com
Date:     2011-01-18T19:15:14.349353Z

Log Message:
-----------
Bunch of small, mostly ASDoc cleanups:

1) Cleaning up ASDoc around alternatingItemColors (after SVN 19684) and mis-spelling "Destroy"

2) Cleaning up an un-needed style in defaults.css since it's set in Scroller.

3) In Spark ListBase, removing an un-needed FIXME, but fixing up the documentation since we were actually doing it correctly before, but the documentation was just wrong.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Menu.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/mobilecomponents/src/spark/components/ViewMenu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/List.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/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Menu.as
+++ frameworks/projects/mx/src/mx/controls/Menu.as
@@ -146,7 +146,7 @@

 /**
  *  The colors used for menu or submenu menu items in an alternating pattern.
- *  The value can be an Array of two or more colors.
+ *  The value can be an Array of one or more colors.
  *  This style is only used if backgroundColor is not specified.
  *
  *  @default "undefined"


fix HLSEvent.FRAGMENT_PLAYING not triggered for first fragment after seek

--- src/org/mangui/hls/stream/HLSNetStream.as
+++ src/org/mangui/hls/stream/HLSNetStream.as
@@ -329,7 +329,6 @@
                 // same continuity than previously, update its max PTS
                 _buffer_cur_max_pts = max_pts;
             }
-
             /* detect if we are switching to a new fragment. in that case inject a metadata tag
              * Netstream will notify the metadata back when starting playback of this fragment
              */
@@ -503,7 +502,7 @@
             _seek_position_real = Number.NEGATIVE_INFINITY;
             _seek_in_progress = true;
             _reached_vod_end = false;
-            _cur_level = _cur_sn = NaN;
+            _cur_level = _cur_sn = -1;
             if (HLSSettings.minBufferLength == -1) {
                 _buffer_threshold = _autoBufferManager.minBufferLength;
             } else {


flashlsFlowPlayer.swf: fire START event once related to #148

--- src/org/mangui/flowplayer/HLSStreamProvider.as
+++ src/org/mangui/flowplayer/HLSStreamProvider.as
@@ -1,7 +1,7 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- package org.mangui.flowplayer {
+package org.mangui.flowplayer {
     import org.mangui.hls.event.HLSEvent;
     import org.mangui.hls.utils.Params2Settings;

@@ -13,7 +13,6 @@

     import org.mangui.hls.HLS;
     import org.mangui.hls.constant.HLSPlayStates;
-
     import org.flowplayer.model.Plugin;
     import org.flowplayer.model.PluginModel;
     import org.flowplayer.view.Flowplayer;
@@ -26,11 +25,10 @@
     import org.flowplayer.model.ClipEventType;
     import org.flowplayer.model.Playlist;
     import org.flowplayer.view.StageVideoWrapper;
-
+
     CONFIG::LOGGING {
-    import org.mangui.hls.utils.Log;
+        import org.mangui.hls.utils.Log;
     }
-
     public class HLSStreamProvider  implements StreamProvider,Plugin {
         private var _volumecontroller : VolumeController;
         private var _playlist : Playlist;
@@ -57,14 +55,14 @@

         public function onConfig(model : PluginModel) : void {
             CONFIG::LOGGING {
-            Log.info("onConfig()");
+                Log.info("onConfig()");
             }
             _model = model;
         }

         public function onLoad(player : Flowplayer) : void {
             CONFIG::LOGGING {
-            Log.info("onLoad()");
+                Log.info("onLoad()");
             }
             _player = player;
             _hls = new HLS();
@@ -90,6 +88,7 @@
         private function _completeHandler(event : HLSEvent) : void {
             // dispatch a before event because the finish has default behavior that can be prevented by listeners
             _clip.dispatchBeforeEvent(new ClipEvent(ClipEventType.FINISH));
+            _clip.startDispatched = false;
         };

         private function _errorHandler(event : HLSEvent) : void {
@@ -129,7 +128,7 @@
             // _seekable = true;
             // }
             _hls.stream.play();
-            _clip.dispatch(ClipEventType.SEEK,0);
+            _clip.dispatch(ClipEventType.SEEK, 0);
             if (_pauseAfterStart) {
                 pause(new ClipEvent(ClipEventType.PAUSE));
             }
@@ -146,13 +145,16 @@
                 var changed : Boolean = _videoWidth != videoWidth || _videoHeight != videoHeight;
                 if (changed) {
                     CONFIG::LOGGING {
-                    Log.info("video size changed to " + videoWidth + "/" + videoHeight);
+                        Log.info("video size changed to " + videoWidth + "/" + videoHeight);
                     }
                     _videoWidth = videoWidth;
                     _videoHeight = videoHeight;
                     _clip.originalWidth = videoWidth;
                     _clip.originalHeight = videoHeight;
-                    _clip.dispatch(ClipEventType.START);
+                    if (!_clip.startDispatched) {
+                        _clip.dispatch(ClipEventType.START);
+                        _clip.startDispatched = true;
+                    }
                     _clip.dispatch(ClipEventType.METADATA_CHANGED);
                 }
             }
@@ -193,7 +195,7 @@
         public function load(event : ClipEvent, clip : Clip, pauseAfterStart : Boolean = true) : void {
             _clip = clip;
             CONFIG::LOGGING {
-            Log.info("load()" + clip.completeUrl);
+                Log.info("load()" + clip.completeUrl);
             }
             _hls.load(clip.completeUrl);
             _pauseAfterStart = pauseAfterStart;
@@ -211,12 +213,12 @@
          */
         public function getVideo(clip : Clip) : DisplayObject {
             CONFIG::LOGGING {
-            Log.debug("getVideo()");
+                Log.debug("getVideo()");
             }
             if (_video == null) {
                 if (clip.useStageVideo) {
                     CONFIG::LOGGING {
-                    Log.debug("useStageVideo");
+                        Log.debug("useStageVideo");
                     }
                     _video = new StageVideoWrapper(clip);
                 } else {
@@ -234,7 +236,7 @@
          */
         public function attachStream(video : DisplayObject) : void {
             CONFIG::LOGGING {
-            Log.debug("attachStream()");
+                Log.debug("attachStream()");
             }
             Video(video).attachNetStream(_hls.stream);
             return;
@@ -246,7 +248,7 @@
          */
         public function pause(event : ClipEvent) : void {
             CONFIG::LOGGING {
-            Log.info("pause()");
+                Log.info("pause()");
             }
             _hls.stream.pause();
             if (event) {
@@ -261,7 +263,7 @@
          */
         public function resume(event : ClipEvent) : void {
             CONFIG::LOGGING {
-            Log.info("resume()");
+                Log.info("resume()");
             }
             _hls.stream.resume();
             _clip.dispatch(ClipEventType.RESUME);
@@ -274,7 +276,7 @@
          */
         public function stop(event : ClipEvent, closeStream : Boolean = false) : void {
             CONFIG::LOGGING {
-            Log.info("stop()");
+                Log.info("stop()");
             }
             _hls.stream.close();
             return;
@@ -287,7 +289,7 @@
          */
         public function seek(event : ClipEvent, seconds : Number) : void {
             CONFIG::LOGGING {
-            Log.info("seek()");
+                Log.info("seek()");
             }
             _hls.stream.seek(seconds);
             _position = seconds;
@@ -350,7 +352,7 @@
          */
         public function get stopping() : Boolean {
             CONFIG::LOGGING {
-            Log.info("stopping()");
+                Log.info("stopping()");
             }
             return false;
         }
@@ -368,7 +370,7 @@

         public function get playlist() : Playlist {
             CONFIG::LOGGING {
-            Log.debug("get playlist()");
+                Log.debug("get playlist()");
             }
             return _playlist;
         }
@@ -383,7 +385,7 @@
          */
         public function addConnectionCallback(name : String, listener : Function) : void {
             CONFIG::LOGGING {
-            Log.debug("addConnectionCallback()");
+                Log.debug("addConnectionCallback()");
             }
             return;
         }
@@ -399,7 +401,7 @@
          */
         public function addStreamCallback(name : String, listener : Function) : void {
             CONFIG::LOGGING {
-            Log.debug("addStreamCallback()");
+                Log.debug("addStreamCallback()");
             }
             return;
         }
@@ -410,7 +412,7 @@
          */
         public function get streamCallbacks() : Dictionary {
             CONFIG::LOGGING {
-            Log.debug("get streamCallbacks()");
+                Log.debug("get streamCallbacks()");
             }
             return null;
         }
@@ -421,7 +423,7 @@
          */
         public function get netStream() : NetStream {
             CONFIG::LOGGING {
-            Log.debug("get netStream()");
+                Log.debug("get netStream()");
             }
             return _hls.stream;
         }
@@ -432,7 +434,7 @@
          */
         public function get netConnection() : NetConnection {
             CONFIG::LOGGING {
-            Log.debug("get netConnection()");
+                Log.debug("get netConnection()");
             }
             return null;
         }
@@ -445,7 +447,7 @@
          */
         public function set timeProvider(timeProvider : TimeProvider) : void {
             CONFIG::LOGGING {
-            Log.debug("set timeProvider()");
+                Log.debug("set timeProvider()");
             }
             _timeProvider = timeProvider;
             return;
@@ -467,7 +469,7 @@
          */
         public function switchStream(event : ClipEvent, clip : Clip, netStreamPlayOptions : Object = null) : void {
             CONFIG::LOGGING {
-            Log.info("switchStream()");
+                Log.info("switchStream()");
             }
             return;
         }


Add a getParserByExtension method in LoaderGroup


Updated regex for parsing db url, hyphens were not accounted for and hyphens and all following characters were stripped from the db

- Doug Arthur

--- driver/src/org/postgresql/PgURL.as
+++ driver/src/org/postgresql/PgURL.as
@@ -35,7 +35,7 @@
             var urlParts:Array = url.split('?');
             var root:String = urlParts[0];
             var args:String = urlParts.length > 1 ? urlParts[1] : null;
-            var rootElems:Array = new RegExp("asdbc:postgresql://([\\w\\.]+)(?::(\\d+))?/(\\w+)").exec(root);
+            var rootElems:Array = new RegExp("asdbc:postgresql://([\\w\\.]+)(?::(\\d+))?/([\\w\\-]+)").exec(root);
             var argElems:Array = args ? args.split("&") : [];
             if (!rootElems) {
                 throw new ArgumentError("Invalid url: " + url);
@@ -91,4 +91,4 @@
         }

     }
-}+}


Fix Editor to not use the sm3Support variable any more.

--- bin/Data/Scripts/Editor.as
+++ bin/Data/Scripts/Editor.as
@@ -20,9 +20,6 @@

 String configFileName;

-bool instancingSetting = true;
-int shadowQualitySetting = 2;
-
 void Start()
 {
     // Assign the value ASAP because configFileName is needed on exit, including exit on error
@@ -222,10 +219,10 @@
         if (renderingElem.HasAttribute("texturequality")) renderer.textureQuality = renderingElem.GetInt("texturequality");
         if (renderingElem.HasAttribute("materialquality")) renderer.materialQuality = renderingElem.GetInt("materialquality");
         if (renderingElem.HasAttribute("shadowresolution")) SetShadowResolution(renderingElem.GetInt("shadowresolution"));
-        if (renderingElem.HasAttribute("shadowquality")) renderer.shadowQuality = shadowQualitySetting = renderingElem.GetInt("shadowquality");
+        if (renderingElem.HasAttribute("shadowquality")) renderer.shadowQuality = renderingElem.GetInt("shadowquality");
         if (renderingElem.HasAttribute("maxoccludertriangles")) renderer.maxOccluderTriangles = renderingElem.GetInt("maxoccludertriangles");
         if (renderingElem.HasAttribute("specularlighting")) renderer.specularLighting = renderingElem.GetBool("specularlighting");
-        if (renderingElem.HasAttribute("dynamicinstancing")) renderer.dynamicInstancing = instancingSetting = renderingElem.GetBool("dynamicinstancing");
+        if (renderingElem.HasAttribute("dynamicinstancing")) renderer.dynamicInstancing = renderingElem.GetBool("dynamicinstancing");
         if (renderingElem.HasAttribute("framelimiter")) engine.maxFps = renderingElem.GetBool("framelimiter") ? 200 : 0;
     }

@@ -331,9 +328,8 @@
         renderingElem.SetInt("shadowresolution", GetShadowResolution());
         renderingElem.SetInt("maxoccludertriangles", renderer.maxOccluderTriangles);
         renderingElem.SetBool("specularlighting", renderer.specularLighting);
-        // If Shader Model 3 is not supported, save the remembered instancing & quality settings instead of reduced settings
-        renderingElem.SetInt("shadowquality", graphics.sm3Support ? renderer.shadowQuality : shadowQualitySetting);
-        renderingElem.SetBool("dynamicinstancing", graphics.sm3Support ? renderer.dynamicInstancing : instancingSetting);
+        renderingElem.SetInt("shadowquality", renderer.shadowQuality);
+        renderingElem.SetBool("dynamicinstancing", renderer.dynamicInstancing);
     }

     renderingElem.SetBool("framelimiter", engine.maxFps > 0);


Added clickKiller code from Button to UIBase.

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as
@@ -20,9 +20,23 @@
 {
 	import flash.display.DisplayObject;
 	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.events.MouseEvent;

 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
+
+	/**
+	 *  Set a different class for click events so that
+	 *  there aren't dependencies on the flash classes
+	 *  on the JS side.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	[Event(name="click", type="org.apache.flex.events.Event")]

     /**
      *  The UIBase class is the base class for most composite user interface
@@ -48,6 +62,17 @@
 		public function UIBase()
 		{
 			super();
+
+			addEventListener(MouseEvent.CLICK, clickKiller, false, 9999);
+		}
+
+		private function clickKiller(event:flash.events.Event):void
+		{
+			if (event is MouseEvent)
+			{
+				event.stopImmediatePropagation();
+				dispatchEvent(new org.apache.flex.events.Event("click"));
+			}
 		}

 		private var _explicitWidth:Number;
@@ -80,7 +105,7 @@

 			_explicitWidth = value;

-			dispatchEvent(new Event("explicitWidthChanged"));
+			dispatchEvent(new org.apache.flex.events.Event("explicitWidthChanged"));
 		}

 		private var _explicitHeight:Number;
@@ -113,7 +138,7 @@

 			_explicitHeight = value;

-			dispatchEvent(new Event("explicitHeightChanged"));
+			dispatchEvent(new org.apache.flex.events.Event("explicitHeightChanged"));
 		}

 		private var _percentWidth:Number;
@@ -148,7 +173,7 @@

 			_percentWidth = value;

-			dispatchEvent(new Event("percentWidthChanged"));
+			dispatchEvent(new org.apache.flex.events.Event("percentWidthChanged"));
 		}

         private var _percentHeight:Number;
@@ -183,7 +208,7 @@

 			_percentHeight = value;

-			dispatchEvent(new Event("percentHeightChanged"));
+			dispatchEvent(new org.apache.flex.events.Event("percentHeightChanged"));
 		}

 		private var _width:Number;
@@ -224,7 +249,7 @@
 			if (_width != value)
 			{
 				_width = value;
-				dispatchEvent(new Event("widthChanged"));
+				dispatchEvent(new org.apache.flex.events.Event("widthChanged"));
 			}
 		}

@@ -279,7 +304,7 @@
 			if (_height != value)
 			{
 				_height = value;
-				dispatchEvent(new Event("heightChanged"));
+				dispatchEvent(new org.apache.flex.events.Event("heightChanged"));
 			}
 		}

@@ -324,7 +349,7 @@
 			if (_model != value)
 			{
 				addBead(value as IBead);
-				dispatchEvent(new Event("modelChanged"));
+				dispatchEvent(new org.apache.flex.events.Event("modelChanged"));
 			}
 		}

@@ -351,7 +376,7 @@
 			if (_id != value)
 			{
 				_id = value;
-				dispatchEvent(new Event("idChanged"));
+				dispatchEvent(new org.apache.flex.events.Event("idChanged"));
 			}
 		}

@@ -379,7 +404,7 @@
 			if (_className != value)
 			{
 				_className = value;
-				dispatchEvent(new Event("classNameChanged"));
+				dispatchEvent(new org.apache.flex.events.Event("classNameChanged"));
 			}
 		}

@@ -426,7 +451,7 @@
 			bead.strand = this;

 			if (bead is IBeadView) {
-				IEventDispatcher(this).dispatchEvent(new Event("viewChanged"));
+				IEventDispatcher(this).dispatchEvent(new org.apache.flex.events.Event("viewChanged"));
 			}
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 153
Author:   proberts@adobe.com
Date:     2008-01-10T20:22:23.867658Z

Log Message:
-----------
Severity: ignore
Description: docs update -- added @productVersion tag to Flex AIR classes' class descriptions.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/airframework/src/mx/controls/FileSystemTree.as
+++ frameworks/projects/airframework/src/mx/controls/FileSystemTree.as
@@ -152,6 +152,8 @@
  *  </pre>
  *
  *  @see flash.filesystem.File
+ *
+ *  @productversion Apollo 1.0
  */
 public class FileSystemTree extends Tree
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4330
Author:   preilly@adobe.com
Date:     2008-12-16T21:45:10.745617Z

Log Message:
-----------
* Reduced code generation for Bindable, added weak reference support
  to BindingUtils and added support for binding to private Statics.

tests Passed: checkintests, mxunit databinding (with and without AST generation)

Needs QA: YES

Needs DOC: NO

Bug fixes: SDK-14891

API Change: Yes, see BindingUtils and IWatcherSetupUtil2.

Reviewer: Corey

Code-level description of changes:

  frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as

    Added useWeakReference arg to watch().

    Added useWeakReference variable.

    Modified reset() to use useWeakReference.

  frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as

    Added useWeakReference arg to bindProperty() and bindSetter().

  frameworks/projects/framework/src/mx/binding/BindingManager.as

    Added set() function.

  frameworks/projects/framework/src/mx/binding/IWatcherSetupUtil2.as

    Initial checkin.

  modules/compiler/src/java/flex2/compiler/as3/genext/GenerativeSecondPassEvaluator.java

    Renamed ensureNonPublic() to ensurePublic() and reversed the logic.

    Renamed makeAttrListPrivate() to makeAttrListPublic() and modified
    to use ensurePublic().

  modules/compiler/src/java/flex2/compiler/as3/binding/DataBindingExtension.java

    Updated AST generation to mirror changes to WatcherSetupUtil.vm.

  modules/compiler/src/java/flex2/compiler/as3/binding/BindableProperty.vm

    Modified setter code generation to use BindingManager.set() to
    reduce code size.

  modules/compiler/src/java/flex2/compiler/as3/binding/WatcherSetupUtil.vm

    Added support for staticPropertyGetter.

  modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java

    Updated WatcherSetupUtil imports.

  modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm

    Added static property getter arg to WatcherSetupUtil setup() call.

    Updated template to use IWatcherSetupUtil2.

  modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java

    Updated AST generation to mirror changes to ClassDefLib.vm.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/SignatureEvaluator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/PropertyWatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/WatcherSetupUtil.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/BindingManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/genext/GenerativeSecondPassEvaluator.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/IWatcherSetupUtil2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/DataBindingExtension.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/NameFormatter.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/StaticPropertyWatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableProperty.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>

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

--- frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as
+++ frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as
@@ -84,16 +84,22 @@
      *  Typically these tags are used to indicate fine-grained value changes,
      *  such as modifications in a text field prior to confirmation.
      *
+     *  @param useWeakReference (default = false) Determines whether
+     *  the reference to the host is strong or weak. A strong
+     *  reference (the default) prevents the host from being
+     *  garbage-collected. A weak reference does not.
+     *
      *  @return A ChangeWatcher instance, if at least one property name has
      *  been specified to the chain argument; null otherwise.
      */
     public static function bindProperty(
                                 site:Object, prop:String,
                                 host:Object, chain:Object,
-                                commitOnly:Boolean = false):ChangeWatcher
+                                commitOnly:Boolean = false,
+                                useWeakReference:Boolean = false):ChangeWatcher
     {
         var w:ChangeWatcher =
-            ChangeWatcher.watch(host, chain, null, commitOnly);
+            ChangeWatcher.watch(host, chain, null, commitOnly, useWeakReference);

         if (w != null)
         {
@@ -128,15 +134,21 @@
      *  called only on committing change events.
      *  See the bindProperty() method for more information.
      *
+     *  @param useWeakReference (default = false) Determines whether
+     *  the reference to the host is strong or weak. A strong
+     *  reference (the default) prevents the host from being
+     *  garbage-collected. A weak reference does not.
+     *
      *  @return A ChangeWatcher instance, if at least one property name
      *  has been  specified to the chain argument; null otherwise.
      */
     public static function bindSetter(setter:Function, host:Object,
                                       chain:Object,
-                                      commitOnly:Boolean = false):ChangeWatcher
+                                      commitOnly:Boolean = false,
+                                      useWeakReference:Boolean = false):ChangeWatcher
     {
         var w:ChangeWatcher =
-            ChangeWatcher.watch(host, chain, null, commitOnly);
+            ChangeWatcher.watch(host, chain, null, commitOnly, useWeakReference);

         if (w != null)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5797
Author:   jimurphy@adobe.com
Date:     2009-03-31T15:35:34.544076Z

Log Message:
-----------
Merged revisions 3.x 5505,5526-5527,5535,5540,5542,5572,5616-5617,5656-5657,5671,5674,5683,5687-5688,5690,5698,5708-5709,5713-5716,5719-5723,5726,5728-5729,5736,5752,5754,5761,5774,5780,5784 -> trunk

most of these are user submitted patches! very cool.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/IResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToggleButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.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/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressIndeterminateSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/compiler/FlexCompilerShell-license.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/DividedBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/PhoneNumberValidator.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as" copyfrom-rev="5784" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/NumberValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/CurrencyValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Form.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/CalendarLayoutChangeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/DataGridEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpMenuButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>

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

--- frameworks/projects/framework/src/mx/validators/NumberValidator.as
+++ frameworks/projects/framework/src/mx/validators/NumberValidator.as
@@ -220,7 +220,7 @@

                 // There may not be any non-zero digits after the decimal
 				// if domain is int.
-                if (domain == "int" && input.charAt(i) != "0")
+                if (domain == NumberValidatorDomainType.INT && input.charAt(i) != "0")
                 {
                     results.push(new ValidationResult(
 						true, baseField,"integer",
@@ -300,6 +300,20 @@
                 }
             }

+            // Translate the value back into standard english
+            // If the decimalSeperator is not '.' we need to change it to '.'
+            // so that the number casting will work properly
+            if (validator.decimalSeparator != '.')
+            {
+                var dIndex:int = input.indexOf( validator.decimalSeparator );
+                if (dIndex != -1)
+                {
+                    var dLeft:String = input.substring(0, dIndex);
+                    var dRight:String = input.substring(dIndex + 1);
+                    input = dLeft + '.' + dRight;
+                }
+            }
+
             // Check bounds

             var x:Number = Number(input);
@@ -467,6 +481,10 @@
      *  Type of number to be validated.
 	 *  Permitted values are "real" and "int".
 	 *
+	 *
In ActionScript, you can use the following constants to set this property:
+     *  NumberValidatorDomainType.REAL or
+     *  NumberValidatorDomainType.INT.

+     *
 	 *  @default "real"
      *
      *  @langversion 3.0


Transferred from the Adobe Open Source Subversion Repository

Revision: 8486
Author:   smgilson@adobe.com
Date:     2009-07-09T18:42:45.734868Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
+++ frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
@@ -93,7 +93,7 @@
  *
  *  @mxml
  *
- *
The <s:Group> tag inherits all of the
+ *
The <s:RadioButtonGroup> tag inherits all of the
  *  tag attributes of its superclass, and adds the following tag attributes:

  *
  *

@@ -438,7 +438,7 @@
         instance.radioButtonGroup = this;
         instance.invalidateSkinState();

-		dispatchEvent(new Event("numRadioButtonsChanged"));
+        dispatchEvent(new Event("numRadioButtonsChanged"));
     }

     /**
@@ -470,7 +470,7 @@
                     // because the state changed, the group will be needed
                     // if the radio button is readded later because of another
                     // state transition.
-                	//rb.group = null;
+                    //rb.group = null;

                     // If the rb is selected, leave the button itself selected
                     // but clear the selection for the group.
@@ -490,7 +490,7 @@
             }

             if (foundInstance)
-				dispatchEvent(new Event("numRadioButtonsChanged"));
+                dispatchEvent(new Event("numRadioButtonsChanged"));
         }
     }

@@ -645,7 +645,7 @@
         if (rb)
         {
             //trace("radioButton_removedHandler", rb.id);
-        	rb.removeEventListener(Event.REMOVED, radioButton_removedHandler);
+            rb.removeEventListener(Event.REMOVED, radioButton_removedHandler);
             removeInstance(rb);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3785
Author:   pdehaan@adobe.com
Date:     2008-10-21T18:57:25.569996Z

Log Message:
-----------
Add ASDoc class level examples for FxTextArea, FxTextInput, and TextView classes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -117,6 +117,8 @@
  *
  *  @see mx.graphics.TextBox
  *  @see mx.graphics.TextGraphic
+ *
+ *  @includeExample examples/TextViewExample.mxml
  */
 public class TextView extends UIComponent implements IViewport
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8090
Author:   cframpto@adobe.com
Date:     2009-06-23T15:22:28.214163Z

Log Message:
-----------
Cleanup invalidation.  Fix a few invalidation on a few of the setters.  Since events can be dispatched as a result of calling updateDisplayList(), which may trigger our setters being called back while in the middle of the layout manager's display list validation, the calls in the setters to invalidateDisplayList() don't work in this case because the invalidateDisplayListFlag is cleared before any of the new updates are done.  Need to call invalidateDisplayList() again in commitProperties().

QA Notes:
Doc Notes:SDK-21905
Reviewers: Evtim and will be Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -635,8 +635,7 @@
         _clipAndEnableScrolling = value;
         clipAndEnableScrollingChanged = true;

-        // Value could impact whether we are actually autoSizing.
-        invalidateSize();
+        invalidateProperties();
         invalidateDisplayList();
     }

@@ -733,6 +732,7 @@
         horizontalScrollPositionChanged = true;

         invalidateProperties();
+        invalidateDisplayList();
     }

     //----------------------------------
@@ -780,6 +780,7 @@
         verticalScrollPositionChanged = true;

         invalidateProperties();
+        invalidateDisplayList();
     }

     //--------------------------------------------------------------------------
@@ -1544,6 +1545,7 @@
         _widthInChars = value;
         widthInCharsChanged = true;

+        invalidateProperties();
         invalidateSize();
         invalidateDisplayList();
     }
@@ -1750,6 +1752,16 @@

             verticalScrollPositionChanged = false;
         }
+
+        // Events (for example, change event) can be dispatched as a result
+        // of calling updateDisplayList(). These may trigger calls
+        // back to our setters (for example, bindings).  All of this is done
+        // in the middle of the validate display list loop of the
+        // LayoutManager. Even though we called invalidateDisplayList() in
+        // the setter, in this case, the invalidateDisplayListFlag is
+        // reset before we've updated the display with the new value(s).
+        // We need to invalidate the display again here.
+        invalidateDisplayList();
     }

     /**
@@ -2366,8 +2378,8 @@

         var effectiveWidthInChars:int;

-        // If both height and width are NaN but there is a scroller, can't
-        // autoSize so use 15 chars.  Otherwise if only width is NaN, use 1.
+        // If both height and width are NaN use 15 chars.  Otherwise if only
+        // width is NaN, use 1.
     	if (isNaN(_widthInChars))
     	   effectiveWidthInChars = isNaN(_heightInLines) ? 15 : 1;
     	else
@@ -2394,8 +2406,8 @@

         var effectiveHeightInLines:int;

-        // If both height and width are NaN but there is a scroller, can't
-        // autoSize so use 10 lines.  Otherwise if only height is NaN, use 1.
+        // If both height and width are NaN use 10 lines.  Otherwise if
+        // only height is NaN, use 1.
         if (isNaN(_heightInLines))
             effectiveHeightInLines = isNaN(_widthInChars) ? 10 : 1;
         else


Transferred from the Adobe Open Source Subversion Repository

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

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

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

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/mx/src/mx/events/ScrollEventDetail.as
+++ frameworks/projects/mx/src/mx/events/ScrollEventDetail.as
@@ -17,6 +17,11 @@
  *  of a ScrollEvent.
  *
  *  @see mx.events.ScrollEvent
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public final class ScrollEventDetail
 {
@@ -30,71 +35,141 @@

 	/**
 	 *  Indicates that the scroll bar is at the bottom of its scrolling range.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const AT_BOTTOM:String = "atBottom";

 	/**
 	 *  Indicates that the scroll bar is at the left of its scrolling range.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const AT_LEFT:String = "atLeft";

 	/**
 	 *  Indicates that the scroll bar is at the right of its scrolling range.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const AT_RIGHT:String = "atRight";

 	/**
 	 *  Indicates that the scroll bar is at the top of its scrolling range.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const AT_TOP:String = "atTop";

 	/**
 	 *  Indicates that the scroll bar has moved down by one line.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const LINE_DOWN:String = "lineDown";

 	/**
 	 *  Indicates that the scroll bar has moved left by one line.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const LINE_LEFT:String = "lineLeft";

 	/**
 	 *  Indicates that the scroll bar has moved right by one line.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const LINE_RIGHT:String = "lineRight";

 	/**
 	 *  Indicates that the scroll bar has moved up by one line.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const LINE_UP:String = "lineUp";

 	/**
 	 *  Indicates that the scroll bar has moved down by one page.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const PAGE_DOWN:String = "pageDown";

 	/**
 	 *  Indicates that the scroll bar has moved left by one page.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const PAGE_LEFT:String = "pageLeft";

 	/**
 	 *  Indicates that the scroll bar has moved right by one page.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const PAGE_RIGHT:String = "pageRight";

 	/**
 	 *  Indicates that the scroll bar has moved up by one page.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const PAGE_UP:String = "pageUp";

 	/**
 	 *  Indicates that the scroll bar thumb has stopped moving.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const THUMB_POSITION:String = "thumbPosition";

 	/**
 	 *  Indicates that the scroll bar thumb is moving.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const THUMB_TRACK:String = "thumbTrack";
 }


Re-added 'expected executions' when debug is enabled.

--- src/Infoboxes/DMemory.as
+++ src/Infoboxes/DMemory.as
@@ -41,7 +41,10 @@
 			if (U.state.level.goal.randomizedMemory && U.state.editEnabled)
 				makeRandomButton();

-			var timeString:String = "Allowed ticks total: " + U.state.level.goal.timeLimit + ".";
+			var timeString:String = "Allowed ticks total: " + U.state.level.goal.timeLimit;
+			if (FlxG.debug && U.state.level.goal is GeneratedGoal)
+				timeString += " (over " + (U.state.level.goal.timeLimit / (U.state.level.goal as GeneratedGoal).allowedTimePerInstr) + " expected instruction executions)";
+			timeString += ".";
 			var timeText:FlxText = U.BODY_FONT.configureFlxText(new FlxText(bg.x, bg.y + bg.height + 2, bg.width, timeString), 0xffffff, 'center', 0x1);
 			add(timeText);


put the logger back

put the logger back

--- src/org/robotlegs/v2/view/impl/StageWatcher.as
+++ src/org/robotlegs/v2/view/impl/StageWatcher.as
@@ -12,12 +12,21 @@
 	import flash.events.Event;
 	import flash.utils.Dictionary;
 	import flash.utils.getQualifiedClassName;
+	import org.as3commons.logging.api.ILogger;
+	import org.as3commons.logging.api.getLogger;
 	import org.robotlegs.v2.view.api.IContainerBinding;
 	import org.robotlegs.v2.view.api.IViewHandler;
 	import org.robotlegs.v2.view.api.IViewWatcher;

 	public class StageWatcher implements IViewWatcher
 	{
+
+		/*============================================================================*/
+		/* Private Static Properties                                                  */
+		/*============================================================================*/
+
+		private static const logger:ILogger = getLogger(StageWatcher);
+

 		/*============================================================================*/
 		/* Private Properties                                                         */
@@ -190,7 +199,7 @@
 				handler = confirmedHandlers[i];
 				if (!((combinedResponse & 0xAAAAAAAA) ^ (handler.interests << 1)))
 				{
-					trace('warning: a confirmed handler was blocked - cache purging did not take place when it should have.');
+					logger.warn('a confirmed handler was blocked - cache purging did not take place when it should have');
 					continue;
 				}

@@ -203,7 +212,7 @@
 				}
 				else
 				{
-					trace('warning: a confirmed handler did not handle a view - cache purging did not take place when it should have.');
+					logger.warn('a confirmed handler did not handle a view - cache purging did not take place when it should have');
 				}
 			}
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10201
Author:   clucier@adobe.com
Date:     2009-09-12T20:23:35.616473Z

Log Message:
-----------
Removing special case Container opaqueBackground logic that was added recently as it is no longer required.

QE notes: None
Doc notes: None
Bugs: SDK-23129
Reviewer: Glenn
Tests run: V_H_Box, Canvas mustella tests.
Is noteworthy for integration: No

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

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -3491,19 +3491,6 @@

             var backgroundAlpha:Number = getStyle("backgroundAlpha");

-            // If the borderSkin is a spark skin, use contentBackgroundColor instead of backgroundColor.
-            if (FlexVersion.compatibilityVersion > FlexVersion.VERSION_3_0)
-            {
-                var borderSkin:Class = getStyle("borderSkin");
-
-                // There is no guaranteed way to check for spark skins. The closest we can do
-                // is to look for "skins.spark" in the qualified class name
-                if (borderSkin && (getQualifiedClassName(borderSkin).indexOf("skins.spark") >= 0))
-                {
-                    backgroundColor = getStyle("contentBackgroundColor");
-                }
-            }
-
             if (!_clipContent ||
                 isNaN(Number(backgroundColor)) ||
                 backgroundColor === "" ||


improved documentation

improved documentation

--- WeaveAPI/src/JavaScript.as
+++ WeaveAPI/src/JavaScript.as
@@ -23,6 +23,21 @@
 	 * Requires Flash Player 11 or later to get the full benefit (uses native JSON support),
 	 * but has backwards compatibility to Flash Player 10, or possibly earlier versions (untested).
 	 *
+	 * When parameters are passed to ExternalInterface.call() it attempts to stringify the parameters
+	 * to JavaScript object literals, but it does not quote keys and it does not escape backslashes
+	 * in String values. For example, if you give {"Content-Type": "foo\\"} as a parameter,
+	 * ExternalInterface generates the following invalid object literal: {Content-Type: "foo\"}.
+	 * The same problem occurs when returning an Object from an ActionScript function that was invoked
+	 * from JavaScript. This class works around the limitation by using JSON.stringify() and JSON.parse()
+	 * and escaping backslashes in resulting JSON strings. The values undefined, NaN, Infinity, -Infinity
+	 * are preserved.
+	 *
+	 * This class also provides an objectID accessor which is more reliable than ExternalInterface.objectID,
+	 * which may be null if the Flash object was created using jQuery.flash() even if the Flash object
+	 * has an "id" property in JavaScript.
+	 *
+	 * @see flash.external.ExternalInterface
+	 *
 	 * @author adufilie
 	 */
 	public class JavaScript
@@ -76,7 +91,10 @@
 		private static const UNDEFINED:String = undefined + JSON_SUFFIX;
 		private static const INFINITY:String = Infinity + JSON_SUFFIX;
 		private static const NEGATIVE_INFINITY:String = -Infinity + JSON_SUFFIX;
-
+
+		/**
+		 * Initializes json variable and required external JSON interface.
+		 */
 		private static function initialize():void
 		{
 			// one-time initialization attempt
@@ -126,6 +144,32 @@
 			}
 		}

+		/**
+		 * Handles a JavaScript request.
+		 * @param methodName The name of the method to call.
+		 * @param paramsJson An Array of parameters to pass to the method, stringified with JSON.
+		 * @return The result of calling the method, stringified with JSON.
+		 */
+		private static function handleJsonCall(methodName:String, paramsJson:String):String
+		{
+			var method:Function = registeredMethods[methodName] as Function;
+			if (method == null)
+				throw new Error("No such method: " + methodName);
+
+			var params:Array = json.parse(paramsJson, _jsonReviver);
+			var result:* = method.apply(null, params);
+			var resultJson:String = json.stringify(result, _jsonReplacer);
+
+			// work around unescaped backslash bug
+			if (backslashNeedsEscaping)
+				resultJson = resultJson.split('\\').join('\\\\');
+
+			return resultJson;
+		}
+
+		/**
+		 * Preserves primitive values not supported by JSON: undefined, NaN, Infinity, -Infinity
+		 */
 		private static function _jsonReplacer(key:String, value:*):*
 		{
 			if (value === undefined)
@@ -139,6 +183,9 @@
 			return NOT_A_NUMBER;
 		}

+		/**
+		 * Preserves primitive values not supported by JSON: undefined, NaN, Infinity, -Infinity
+		 */
 		private static function _jsonReviver(key:String, value:*):*
 		{
 			if (value === NOT_A_NUMBER)
@@ -153,29 +200,6 @@
 		}

 		/**
-		 * Handles a JavaScript request.
-		 * @param methodName The name of the method to call.
-		 * @param paramsJson An Array of parameters to pass to the method, stringified with JSON.
-		 * @return The result of calling the method, stringified with JSON.
-		 */
-		private static function handleJsonCall(methodName:String, paramsJson:String):String
-		{
-			var method:Function = registeredMethods[methodName] as Function;
-			if (method == null)
-				throw new Error("No such method: " + methodName);
-
-			var params:Array = json.parse(paramsJson, _jsonReviver);
-			var result:* = method.apply(null, params);
-			var resultJson:String = json.stringify(result, _jsonReplacer);
-
-			// work around flash player bug
-			if (backslashNeedsEscaping)
-				resultJson = resultJson.split('\\').join('\\\\');
-
-			return resultJson;
-		}
-
-		/**
 		 * Exposes a method to JavaScript.
 		 * @param methodName The name to be used in JavaScript.
 		 * @param method The method.
@@ -183,6 +207,9 @@
 		 */
 		public static function registerMethod(methodName:String, method:Function, requiredParamCount:int = -1):void
 		{
+			if (!initialized)
+				initialize();
+
 			// backwards compatibility
 			if (!json)
 			{
@@ -305,17 +332,7 @@
 			var pNames:Array = [];
 			var pValues:Array = [];
 			var code:String = '';
-			var json:Object;
 			var thisVar:String = 'this';
-
-			// If JSON is not available, settle with the flawed ExternalInterface.call() parameters feature.
-			// If a parameter is an Object, we can't trust ExternalInterface.call() since it doesn't quote keys in object literals.
-			// It also does not escape the backslash in String values.
-			// For example, if you give {"Content-Type": "foo\\"} as a parameter, ExternalInterface generates the following invalid
-			// object literal: {Content-Type: "foo\"}.
-			try {
-				json = getDefinitionByName("JSON");
-			} catch (e:Error) { }

 			// separate function parameters from code
 			for each (var value:Object in paramsAndCode)
@@ -360,15 +377,14 @@
 				code = JS_var_this(thisVar) + '\nreturn (function(){\n' + code + '}).apply(' + thisVar + ');';
 			}

-
-			// concatenate all code inside a function wrapper
+			// Concatenate all code inside a function wrapper.
+			// The pNames Array will be empty if JSON is available.
 			code = 'function(' + pNames.join(',') + '){\n' + code + '}';

-			// if there are no parameters, just run the code
-			if (pNames.length == 0)
+			if (json)
 				return ExternalInterface.call(code);

-			// call the function with the specified parameters
+			// JSON is unavailable, so we settle with the flawed ExternalInterface.call() parameters feature.
 			pValues.unshift(code);
 			return ExternalInterface.call.apply(null, pValues);
 		}


Cleaned up EffectExplorer demo.

Cleaned up EffectExplorer demo.

--- examples/EffectExplorer.as
+++ examples/EffectExplorer.as
@@ -42,7 +42,6 @@
 			g.clear();
 			g.beginFill(0x101010);
 			for(var i:int = 0; i < 10; i++) {
-				//g.drawRect(-400/(i+1), -300/(i+1), 800/(i+1), 600/(i+1));
 				g.drawRect(-200/(i+1), -150/(i+1), 400/(i+1), 300/(i+1));
 			}
 			g.endFill();
@@ -53,8 +52,6 @@
 			// ui
 			box = new VBox(this, 15, 15);
 			box.opaqueBackground = 0xe0e0e0;
-			//box.filters = [new GlowFilter(0, 1, 10, 10)];
-			//new FPSMeter(box);
 			new Label(box, 0, 0, "Drag sun icon to move light source");
 			stepper(1, 12, fx, "passes");
 			slider(0, 20, fx, "intensity");


updated class label

updated class label

--- WeaveJS/src/weavejs/data/source/CSVDataSource.as
+++ WeaveJS/src/weavejs/data/source/CSVDataSource.as
@@ -48,7 +48,7 @@
 	 */
 	public class CSVDataSource extends AbstractDataSource implements IDataSource_File
 	{
-		WeaveAPI.ClassRegistry.registerImplementation(IDataSource, CSVDataSource, "CSV file / Delimited text");
+		WeaveAPI.ClassRegistry.registerImplementation(IDataSource, CSVDataSource, "CSV file");

 		public function CSVDataSource()
 		{


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

--- frameworks/projects/framework/src/mx/core/IStateClient2.as
+++ frameworks/projects/framework/src/mx/core/IStateClient2.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 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.
 //
 ////////////////////////////////////////////////////////////////////////////////