added try/catch

added try/catch

--- WeaveJS/src/weavejs/core/ClassRegistryImpl.as
+++ WeaveJS/src/weavejs/core/ClassRegistryImpl.as
@@ -175,7 +175,15 @@
 			{
 				if (!def)
 					break;
-				def = def[key];
+
+				try
+				{
+					def = def[key];
+				}
+				catch (e:Error)
+				{
+					def = undefined;
+				}
 			}
 			return def;
 		}


Clearing the memory used by binary fragmented frames as their data is aggregated into the overall binary message payload.

--- AS3WebSocket/src/com/worlize/websocket/WebSocket.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocket.as
@@ -433,6 +433,7 @@
 										0,
 										currentFrame.binaryPayload.length
 									);
+									currentFrame.binaryPayload.clear();
 								}
 								break;
 							case WebSocketOpcode.TEXT_FRAME:


Since these work on urls, allow clientData to be passed in,
which will be the MediaDesc in msoy.

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

--- src/as/com/threerings/flash/media/Mp3AudioPlayer.as
+++ src/as/com/threerings/flash/media/Mp3AudioPlayer.as
@@ -37,7 +37,7 @@
     /**
      * Load and immediately start playing some audio!
      */
-    public function load (url :String) :void
+    public function load (url :String, clientData :Object = null) :void
     {
         _isComplete = false;
         _lastPosition = 0;
@@ -46,7 +46,16 @@
         _sound.addEventListener(IOErrorEvent.IO_ERROR, handleError);
         _sound.addEventListener(Event.COMPLETE, handleLoadingComplete);
         _sound.load(new URLRequest(url), new SoundLoaderContext(1000, true));
+        _cliData = clientData;
         play();
+    }
+
+    /**
+     * Get any client data associated with the media currently playing.
+     */
+    public function getClientData () :Object
+    {
+        return _cliData;
     }

     // from AudioPlayer
@@ -150,6 +159,7 @@
         _state = MediaPlayerCodes.STATE_UNREADY;
         checkNeedTimer();
         _lastPosition = NaN;
+        _cliData = null;
     }

     override public function addEventListener (
@@ -261,6 +271,8 @@

     protected var _sound :Sound;

+    protected var _cliData :Object;
+
     protected var _chan :SoundChannel;

     protected var _loop :Boolean;


fix missing call to super.initializeSignalHandlers()

--- src/aerys/minko/scene/node/Scene.as
+++ src/aerys/minko/scene/node/Scene.as
@@ -136,6 +136,8 @@

 		override protected function initializeSignalHandlers() : void
 		{
+			super.initializeSignalHandlers();
+
 			added.add(addedHandler);
 		}


#1 In Progress

#1 In Progress

--- tester/src/main/actionscript/Main.as
+++ tester/src/main/actionscript/Main.as
@@ -33,6 +33,8 @@

 import flash.display.Shape;
 import flash.display.Sprite;
+import flash.display.StageAlign;
+import flash.display.StageScaleMode;
 import flash.events.Event;
 import flash.filesystem.StorageVolume;
 import flash.filesystem.StorageVolumeInfo;
@@ -81,16 +83,22 @@
         removeEventListener(Event.ADDED_TO_STAGE, onAdded);
         addEventListener(Event.REMOVED_FROM_STAGE, onRemoved, false, 0, true);

+        stage.scaleMode = StageScaleMode.NO_SCALE;
+        stage.align = StageAlign.TOP_LEFT;
+
+        const sw:uint = stage.fullScreenWidth;
+        const sh:uint = stage.fullScreenHeight;
+
         var bg:Shape = new Shape();
         bg.graphics.beginFill(0x333333);
-        bg.graphics.drawRect(0, 0, 800, 300);
+        bg.graphics.drawRect(0, 0, sw, sh);
         bg.graphics.endFill();
         addChild(bg);

         // create log text field
         messageLabel = new TextField();
-        messageLabel.width = 800;
-        messageLabel.height = 300;
+        messageLabel.width = sw;
+        messageLabel.height = sh;
         messageLabel.multiline = true;
         messageLabel.wordWrap = true;
         messageLabel.defaultTextFormat = new TextFormat("Arial", 10, 0xFFFFFF);


add button to change lineedit value with mouse drag. Inspired from Unreal editor.

--- Bin/Data/Scripts/Editor/AttributeEditor.as
+++ Bin/Data/Scripts/Editor/AttributeEditor.as
@@ -28,6 +28,8 @@
 Array<String> noTextChangedAttrs = {"Script File", "Class Name", "Script Object Type", "Script File Name"};

 WeakHandle testAnimState;
+
+bool dragEditAttribute = false;

 UIElement@ SetEditable(UIElement@ element, bool editable)
 {
@@ -179,6 +181,16 @@
     {
         LineEdit@ attrEdit = CreateAttributeLineEdit(parent, serializables, index, subIndex);
         attrEdit.vars["Coordinate"] = i;
+
+	   Button@ tx = Button();
+	   tx.SetFixedHeight(ATTR_HEIGHT - 2);
+	   tx.SetFixedWidth(ATTR_HEIGHT);
+	   tx.SetAlignment(HA_RIGHT, VA_TOP);
+	   attrEdit.AddChild(tx);
+
+	   SubscribeToEvent(tx, "DragBegin", "LineDragBegin");
+	   SubscribeToEvent(tx, "DragMove", "LineDragMove");
+
         SubscribeToEvent(attrEdit, "TextChanged", "EditAttribute");
         SubscribeToEvent(attrEdit, "TextFinished", "EditAttribute");
     }
@@ -812,25 +824,61 @@

     inEditAttribute = true;

-    // Store old values so that PostEditAttribute can create undo actions
     Array<Variant> oldValues;
-    for (uint i = 0; i < serializables.length; ++i)
-        oldValues.Push(serializables[i].attributes[index]);
+    if (!dragEditAttribute){
+	    // Store old values so that PostEditAttribute can create undo actions
+	    for (uint i = 0; i < serializables.length; ++i)
+		    oldValues.Push(serializables[i].attributes[index]);
+    }

     StoreAttributeEditor(parent, serializables, index, subIndex, coordinate);
     for (uint i = 0; i < serializables.length; ++i)
-        serializables[i].ApplyAttributes();
-
-    // Do the editor post logic after attribute has been modified.
-    PostEditAttribute(serializables, index, oldValues);
+	    serializables[i].ApplyAttributes();
+
+    //disable undo
+    if (!dragEditAttribute){
+	    // Do the editor post logic after attribute has been modified.
+	    PostEditAttribute(serializables, index, oldValues);
+    }

     inEditAttribute = false;

     // If not an intermediate edit, reload the editor fields with validated values
     // (attributes may have interactions; therefore we load everything, not just the value being edited)
     if (!intermediateEdit)
-        attributesDirty = true;
-}
+	    attributesDirty = true;
+}
+
+void LineDragBegin(StringHash eventType, VariantMap& eventData){
+	UIElement@ label = eventData["Element"].GetPtr();
+	int x = eventData["X"].GetInt();
+	label.vars["posX"] = x;
+
+	//store value old value before dragging
+	dragEditAttribute = false;
+	LineEdit@ selectedNumEditor = label.parent;
+	//not convenient way to trigger EditAttribute event
+	selectedNumEditor.text = selectedNumEditor.text;
+}
+
+
+
+void LineDragMove(StringHash eventTypem, VariantMap& eventData){
+	UIElement@ label = eventData["Element"].GetPtr();
+	LineEdit@ selectedNumEditor = label.parent;
+
+	int x = eventData["X"].GetInt();
+	int posx = label.vars["posX"].GetInt();
+	float val = x - posx;
+
+	float fieldVal = selectedNumEditor.text.ToFloat();
+	fieldVal += val/100;
+	label.vars["posX"] = x;
+	selectedNumEditor.text = fieldVal;
+	//disable storing undo
+	dragEditAttribute = true;
+}
+

 // Resource picker functionality
 const uint ACTION_PICK = 1;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/binding/BindabilityInfo.as
+++ frameworks/projects/framework/src/mx/binding/BindabilityInfo.as
@@ -0,0 +1,232 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.binding
+{
+
+import mx.events.PropertyChangeEvent;
+
+[ExcludeClass]
+
+/**
+ *  @private
+ *  Bindability information for children (properties or methods)
+ *  of a given class, based on the describeType() structure for that class.
+ */
+public class BindabilityInfo
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Name of [Bindable] metadata.
+	 */
+	public static const BINDABLE:String = "Bindable";
+
+	/**
+	 *  Name of [Managed] metadata.
+	 */
+	public static const MANAGED:String = "Managed";
+
+	/**
+	 *  Name of [ChangeEvent] metadata.
+	 */
+	public static const CHANGE_EVENT:String = "ChangeEvent";
+
+	/**
+	 *  Name of [NonCommittingChangeEvent] metadata.
+	 */
+	public static const NON_COMMITTING_CHANGE_EVENT:String =
+		"NonCommittingChangeEvent";
+
+	/**
+	 *  Name of describeType() <accessor> element.
+	 */
+	public static const ACCESSOR:String = "accessor";
+
+	/**
+	 *  Name of describeType() <method> element.
+	 */
+	public static const METHOD:String = "method";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function BindabilityInfo(typeDescription:XML)
+	{
+		super();
+
+		this.typeDescription = typeDescription;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var typeDescription:XML;
+
+	/**
+	 *  @private
+	 *  event name -> true
+	 */
+	private var classChangeEvents:Object;
+
+	/**
+	 *  @private
+	 *  child name -> { event name -> true }
+	 */
+	private var childChangeEvents:Object = {};
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Object containing { eventName: true } for each change event
+	 *  (class- or child-level) that applies to the specified child.
+	 */
+	public function getChangeEvents(childName:String):Object
+	{
+		var changeEvents:Object = childChangeEvents[childName];
+
+		if (!changeEvents)
+		{
+			// Seed with class-level events.
+			changeEvents = copyProps(getClassChangeEvents(), {});
+
+			// Get child-specific events.
+			var childDesc:XMLList =
+				typeDescription.accessor.(@name == childName) +
+				typeDescription.method.(@name == childName);
+
+			var numChildren:int = childDesc.length();
+
+			if (numChildren == 0)
+			{
+				// we've been asked for events on an unknown property
+				if (!typeDescription.@dynamic)
+				{
+					trace("warning: no describeType entry for '" +
+						  childName + "' on non-dynamic type '" +
+						  typeDescription.@name + "'");
+				}
+			}
+			else
+			{
+				if (numChildren > 1)
+				{
+					trace("warning: multiple describeType entries for '" +
+						  childName + "' on type '" + typeDescription.@name +
+						  "':\n" + childDesc);
+				}
+
+				addBindabilityEvents(childDesc.metadata, changeEvents);
+			}
+
+			childChangeEvents[childName] = changeEvents;
+		}
+
+		return changeEvents;
+	}
+
+	/**
+	 *  @private
+	 *  Build or return cached class change events object.
+	 */
+	private function getClassChangeEvents():Object
+	{
+		if (!classChangeEvents)
+		{
+			classChangeEvents = {};
+
+			addBindabilityEvents(typeDescription.metadata, classChangeEvents);
+
+			// Class-level [Managed] means all properties
+			// dispatch propertyChange.
+			if (typeDescription.metadata.(@name == MANAGED).length() > 0)
+			{
+				classChangeEvents[PropertyChangeEvent.PROPERTY_CHANGE] = true;
+			}
+		}
+
+		return classChangeEvents;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function addBindabilityEvents(metadata:XMLList,
+										  eventListObj:Object):void
+	{
+		addChangeEvents(metadata.(@name == BINDABLE), eventListObj, true);
+		addChangeEvents(metadata.(@name == CHANGE_EVENT), eventListObj, true);
+		addChangeEvents(metadata.(@name == NON_COMMITTING_CHANGE_EVENT),
+						eventListObj, false);
+	}
+
+	/**
+	 *  @private
+	 *  Transfer change events from a list of change-event-carrying metadata
+	 *  to an event list object.
+	 *  Note: metadata's first arg value is assumed to be change event name.
+	 */
+	private function addChangeEvents(metadata:XMLList, eventListObj:Object, isCommit:Boolean):void
+	{
+		for each (var md:XML in metadata)
+		{
+			var arg:XMLList = md.arg;
+			if (arg.length() > 0)
+			{
+				var eventName:String = arg[0].@value;
+				eventListObj[eventName] = isCommit;
+			}
+			else
+			{
+				trace("warning: unconverted Bindable metadata in class '" +
+					  typeDescription.@name + "'");
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 *  Copy properties from one object to another.
+	 */
+	private function copyProps(from:Object, to:Object):Object
+	{
+		for (var propName:String in from)
+		{
+			to[propName] = from[propName];
+		}
+
+		return to;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/messaging/events/ChannelEvent.as
+++ frameworks/projects/rpc/src/mx/messaging/events/ChannelEvent.as
@@ -17,6 +17,12 @@

 /**
  *  The ChannelEvent is used to propagate channel events within the messaging system.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 public class ChannelEvent extends Event
 {
@@ -53,6 +59,12 @@
      *       failover or connect on an alternate channel.

      *

      *  @eventType channelConnect
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const CONNECT:String = "channelConnect";

@@ -83,6 +95,12 @@
      *       failover or connect on an alternate channel.

      *

      *  @eventType channelDisconnect
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const DISCONNECT:String = "channelDisconnect";

@@ -110,6 +128,12 @@
      *  is already connected.
      *
      *  @return New ChannelEvent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static function createEvent(type:String, channel:Channel = null,
             reconnecting:Boolean = false, rejected:Boolean = false, connected:Boolean = false):ChannelEvent
@@ -145,6 +169,12 @@
      *
      *  @param connected Indicates whether the Channel that generated this event
      *  is already connected.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function ChannelEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false,
             channel:Channel = null, reconnecting:Boolean = false, rejected:Boolean = false,
@@ -166,16 +196,34 @@

     /**
      *  The Channel that generated this event.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public var channel:Channel;

     /**
      * Indicates whether the Channel that generated this event is already connected.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public var connected:Boolean;

     /**
      *  Indicates whether the Channel that generated this event is reconnecting.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public var reconnecting:Boolean;

@@ -184,6 +232,12 @@
      *  This would be true in the event that the channel has been
      *  disconnected due to inactivity and should not attempt to failover or
      *  connect on an alternate channel.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public var rejected:Boolean;

@@ -219,6 +273,12 @@
      *  Clones the ChannelEvent.
      *
      *  @return Copy of this ChannelEvent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     override public function clone():Event
     {
@@ -229,6 +289,12 @@
      *  Returns a string representation of the ChannelEvent.
      *
      *  @return String representation of the ChannelEvent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     override public function toString():String
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/filters/DropShadowFilter.as
+++ frameworks/projects/spark/src/spark/filters/DropShadowFilter.as
@@ -44,7 +44,7 @@
  *  attributes of its superclass and adds the following tag attributes:

  *
  *

- *  <DropShadowFilter
+ *  <s:DropShadowFilter
  *    Properties
  *    alpha="1"
  *    angle="45"


Transferred from the Adobe Open Source Subversion Repository

Revision: 18799
Author:   gruehle@adobe.com
Date:     2010-11-23T15:14:35.654523Z

Log Message:
-----------
Performance optimization when scrolling small amounts in VerticalLayout and HorizontalLayout. If the scroll can be done by simply changing scrollRect, don't call invalidateDisplayList() on the target.

QE notes: Keep an eye out for any visual artifacts when scrolling.
Doc notes: None
Bugs: None
Reviewer: Ryan, Evtim
Tests run: Full mustella pass on cyclone server
Is noteworthy for integration: Yes

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

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -21,8 +21,8 @@
 import mx.core.IInvalidating;
 import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
+import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
-import mx.core.UIComponentGlobals;
 import mx.events.FlexEvent;
 import mx.events.PropertyChangeEvent;
 import mx.managers.ILayoutManagerClient;
@@ -1385,7 +1385,21 @@
         }

         if (useVirtualLayout)
-            g.invalidateDisplayList();
+		{
+			var firstElement:ILayoutElement = g.getElementAt(_firstIndexInView);
+			var lastElement:ILayoutElement = g.getElementAt(_lastIndexInView);
+			var scrollRect:Rectangle = getScrollRect();
+
+			/* If the scrollRect is within the bounds of the elements, we do
+			not need to call invalidateDisplayList(). This considerably speeds
+			up small scrolls. */
+			if (!firstElement || !lastElement ||
+				scrollRect.left < firstElement.getLayoutBoundsX() ||
+				scrollRect.right > (lastElement.getLayoutBoundsX() + lastElement.getLayoutBoundsWidth()))
+			{
+				g.invalidateDisplayList();
+			}
+		}

         setIndexInView(i0, i1);
     }


Tweaked opcode tut text

Tweaked opcode tut text

--- src/Levels/BasicTutorials/OpTutorial.as
+++ src/Levels/BasicTutorials/OpTutorial.as
@@ -12,7 +12,9 @@

 		public function OpTutorial() {
 			super("One Instruction", new OpcodeTutorialGoal, false, [ConstIn, Adder, BabyLatch, DataWriter, DataReader, InstructionDecoder], [OpcodeValue.OP_SAVI]);
-			info = "From this level onward, your goal will be to go through memory, starting at 0, and execute every instruction there. "
+			info = "From this level onward, your goal will be to go through memory, starting at 0, and execute every instruction there.\n\n"
+			info = "Instructions are made up of four numbers. The first number, the opcode, says what type of instruction it is. "
+			info += "The other three, the source, target, & destination, have meanings that vary by opcode.\n\n"
 			info += "Every level has a fixed set of instruction types, but several permutations will be generated to test your solution.";
 		}


Greatly reworked the unit tests for Disjunctive Syllogism. They do not actually test anything, but the traces show what it does.

--- unittests/TestDisjunctiveSyllogism.as
+++ unittests/TestDisjunctiveSyllogism.as
@@ -8,10 +8,22 @@

 		import org.flexunit.Assert;
 		private var djs:DisjunctiveSyllogism;
+		private var djsReverse:DisjunctiveSyllogism;

 		[Before]
 		public function setUp():void
 		{
+			/*
+			* reversePos apparently differentiates between Basic Claim and Reason 1.
+			* ~~ Printing all reasons in NotPFalse
+			* It is not the case that Reason 1
+			* Reason 2
+			* ~~ Printing all reasons in Reverse NotPFalse
+			* It is not the case that Basic Claim
+			* Reason 2
+			*/
+			//DisjunctiveSyllogism(claimText:String, reasonText:Array, reversePos:Boolean,inferenceText:String="", inferencePresent:Boolean=false)
+			djsReverse = new DisjunctiveSyllogism("Basic Claim", ["Reason 1", "Reason 2"], true, "Either Foo or Bar, and Baz", false);
 			djs = new DisjunctiveSyllogism("Basic Claim", ["Reason 1", "Reason 2"], false, "Either Foo or Bar, and Baz", false);
 		}

@@ -39,21 +51,82 @@
 			Assert.assertEquals("Reason 1", djs.getReason()[0]);
 		}
 		//New tests for this subclass's particular functions
+		//Not asserting anything because it's currently pointless
 		[Test]
 		public function testNotPTrue():void{
 			djs.notP(true);
-			Assert.assertEquals("It is not the case that Foo", djs.getReason()[0]);
 			trace("Printing all reasons in NotPTrue");
 			for each (var reason:String in djs.getReason()){
+				trace(reason);
+			}
+			djsReverse.notP(true);
+			trace("~~ Printing all reasons in Reverse NotPTrue");
+			for each (reason in djsReverse.getReason()){
 				trace(reason);
 			}
 		}
 		[Test]
 		public function testNotPFalse():void{
 			djs.notP(false);
-			Assert.assertEquals("It is not the case that Reason 1", djs.getReason()[0]);
-			trace("Printing all reasons in NotPFalse");
+			trace("~~ Printing all reasons in NotPFalse");
 			for each (var reason:String in djs.getReason()){
+				trace(reason);
+			}
+			djsReverse.notP(false);
+			trace("~~ Printing all reasons in Reverse NotPFalse");
+			for each (reason in djsReverse.getReason()){
+				trace(reason);
+			}
+		}
+		[Test]
+		public function testNotQTrue():void{
+			djs.notQ(true);
+			trace("~~ Printing all reasons in NotQTrue");
+			for each (var reason:String in djs.getReason()){
+				trace(reason);
+			}
+			djsReverse.notQ(true);
+			trace("~~ Printing all reasons in Reverse NotQTrue");
+			for each (reason in djsReverse.getReason()){
+				trace(reason);
+			}
+		}
+		[Test]
+		public function testNotQFalse():void{
+			djs.notQ(false);
+			trace("~~ Printing all reasons in NotQFalse");
+			for each (var reason:String in djs.getReason()){
+				trace(reason);
+			}
+			djsReverse.notQ(false);
+			trace("~~ Printing all reasons in Reverse NotQFalse");
+			for each (reason in djsReverse.getReason()){
+				trace(reason);
+			}
+		}
+		[Test]
+		public function testAlternatePTrue():void{
+			djs.notQ(true);
+			trace("~~ Printing all reasons in AlternatePTrue");
+			for each (var reason:String in djs.getReason()){
+				trace(reason);
+			}
+			djsReverse.notQ(true);
+			trace("~~ Printing all reasons in Reverse AlternatePTrue");
+			for each (reason in djsReverse.getReason()){
+				trace(reason);
+			}
+		}
+		[Test]
+		public function testAlternatePFalse():void{
+			djs.notQ(false);
+			trace("~~ Printing all reasons in AlternatePFalse");
+			for each (var reason:String in djs.getReason()){
+				trace(reason);
+			}
+			djsReverse.notQ(false);
+			trace("~~ Printing all reasons in Reverse AlternatePFalse");
+			for each (reason in djsReverse.getReason()){
 				trace(reason);
 			}
 		}


set SceneLoader._parser = null when loading fails/completes

--- src/aerys/minko/type/loader/SceneLoader.as
+++ src/aerys/minko/type/loader/SceneLoader.as
@@ -189,6 +189,8 @@
 		private function parseErrorHandler(parser : IParser) : void
 		{
 			_isComplete = true;
+
+            _parser = null;
 		}

 		private function parseProgressHandler(parser : IParser, progress : Number) : void
@@ -200,6 +202,8 @@
 		{
 			_isComplete = true;
 			_data = loadedData;
+
+            _parser = null;

 			// call later to make sure the loading is always seen as asynchronous
 			setTimeout(callLaterComplete, 0, loadedData);


Added get/set mask and get/set enabled to Layoutable

--- src/laml/display/Layoutable.as
+++ src/laml/display/Layoutable.as
@@ -112,6 +112,8 @@
 		function set skin(skin:ISkin):void;
 		function get skin():ISkin;

+		// TODO: Should this change to 'styles' and get handled
+		// in the parser?
 		function set styleNames(names:String):void;
 		function get styleNames():String;

@@ -126,8 +128,12 @@
 		function invalidateProperties():void;
 		function validateDisplayList():void;
 		function validateProperties():void;
-		function render():void;
+		function render():void;

+		function set enabled(enabled:Boolean):void;
+		function get enabled():Boolean;
+		function set mask(mask:Layoutable):void;
+		function get mask():Layoutable;
 		function set mouseChildren(mouseChildren:Boolean):void;
 		function get mouseChildren():Boolean;
 		function set mouseEnabled(mouseEnabled:Boolean):void;
@@ -142,14 +148,19 @@
 		function buildStyleSheet(sheet:StyleSheet=null):StyleSheet;

 		/* Composable */
-		function addChild(child:Layoutable):void;
-		function getChildAt(index:int):Layoutable;
-		function getChildById(id:String):Layoutable;
-		function removeChild(child:Layoutable):void;
 		function get numChildren():int;
 		function set parent(parent:Layoutable):void;
 		function get parent():Layoutable;
 		function get path():String;
 		function get root():Layoutable;
+
+		function addChild(child:Layoutable):void;
+		function getChildAt(index:int):Layoutable;
+		function getChildById(id:String):Layoutable;
+		function removeChild(child:Layoutable):void;
+		function every(callback:Function, thisObject:* = null):Boolean;
+		function filter(callback:Function, thisObject:* = null):Array;
+		function forEach(callback:Function, thisObject:* = null):void;
+		function map(callback:Function, thisObject:* = null):Array;
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.managers
 {


FLEX-17257 added boolean (default true) to control if date format is added to error message.

--- frameworks/projects/framework/src/mx/validators/DateValidator.as
+++ frameworks/projects/framework/src/mx/validators/DateValidator.as
@@ -71,6 +71,7 @@
  *    dayProperty="No default"
  *    daySource="No default"
  *    formatError= "Configuration error: Incorrect formatting string."
+ *    includeFormatInError="true|false"
  *    inputFormat="MM/DD/YYYY"
  *    invalidCharError="The date contains invalid characters."
  *    monthListener="Object specified by monthSource"
@@ -350,7 +351,8 @@
 				{
 					results.push(new ValidationResult(
 						true, baseField, "wrongLength",
-						validator.wrongLengthError + " " + inputFormat));
+						validator.wrongLengthError
+						+ (DateValidator._includeFormatInError?" " + inputFormat:"")));
 					return results;
 				}

@@ -383,7 +385,8 @@
 				{
 					results.push(new ValidationResult(
 						true, baseField, "wrongLength",
-						validator.wrongLengthError + " " + inputFormat));
+						validator.wrongLengthError
+						+ (DateValidator._includeFormatInError?" " + inputFormat:"")));
 				}
 				// MM or M format
 				if ((monthRequired && monthPart.length == 2 && dateObj.month.length != 2)
@@ -391,7 +394,8 @@
 				{
 					results.push(new ValidationResult(
 						true, baseField, "wrongLength",
-						validator.wrongLengthError + " " + inputFormat));
+						validator.wrongLengthError
+						+ (DateValidator._includeFormatInError?" " + inputFormat:"")));
 				}
 				// YY or YYYY format
 				if ((yearRequired && yearPart.length == 2 && dateObj.year.length != 2)
@@ -399,7 +403,8 @@
 				{
 					results.push(new ValidationResult(
 						true, baseField, "wrongLength",
-						validator.wrongLengthError + " " + inputFormat));
+						validator.wrongLengthError
+						+ (DateValidator._includeFormatInError?" " + inputFormat:"")));
 				}

 				if ((monthRequired && dateObj.month == "") ||
@@ -408,8 +413,8 @@
 				 {
 				 	results.push(new ValidationResult(
 						true, baseField, "wrongLength",
-						validator.wrongLengthError + " " +
-						inputFormat));
+						validator.wrongLengthError
+						+ (DateValidator._includeFormatInError?" " + inputFormat:"")));
 					return results;
 				 }
 			}
@@ -774,6 +779,46 @@
 	}

 	//----------------------------------
+	//  includeFormatInError
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the includeFormatInError property.
+	 *
+	 * Note needs to be static as validate methods are static.
+	 */
+	static private var _includeFormatInError:Boolean = true;
+
+
+	[Inspectable(category="General", defaultValue="true")]
+
+	/**
+	 *  If true the date format is shown in some
+	 *  validation error messages. Setting to false changes all
+	 *  DateValidators.
+	 *
+	 *  @default true
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion ApacheFlex 4.10
+	 */
+	public function get includeFormatInError():Boolean
+	{
+		return DateValidator._includeFormatInError;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set includeFormatInError(value:Boolean):void
+	{
+		DateValidator._includeFormatInError = value;
+	}
+
+	//----------------------------------
 	//  inputFormat
 	//----------------------------------


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.messaging.messages
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2548
Author:   jszeto@adobe.com
Date:     2008-07-21T23:16:17.390684Z

Log Message:
-----------
Flex SDK Bug Fix

MXMLG-150 - Inconsistent default matrix value for mx.filters.ColorMatrixFilter and flash.filters.ColorMatrixFilter

Added default value to flex.filters.ColorMatrixFilter

QA: MXMLG-150
Doc: Yes
Review: Deepa

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/flex/filters/ColorMatrixFilter.as

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

--- frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
+++ frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
@@ -7,14 +7,20 @@
 {
 	public function ColorMatrixFilter(matrix:Array = null)
 	{
-		this.matrix = matrix;
+		if (matrix != null)
+		{
+			this.matrix = matrix;
+		}
 	}

 	//----------------------------------
     //  matrix
     //----------------------------------

-	private var _matrix:Array = [];
+	private var _matrix:Array =  [1,0,0,0,0,0,
+								  1,0,0,0,0,0,
+								  1,0,0,0,0,0,
+								  1,0];

 	/**
 	 *  The amount of horizontal blur. Valid values are 0 to 255. A blur of 1


I'd liked to get rid of heavy Flex classes in favor of those found in the flash package.
These changes are just cosmetics.

git-svn-id: c197267f952b24206666de142881703007ca05d5@11135 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
@@ -7,253 +7,350 @@
 	import flash.utils.Timer;
 	import flash.xml.XMLDocument;
 	import flash.xml.XMLNode;
-
+
 	import mx.logging.ILogger;
 	import mx.rpc.events.FaultEvent;
 	import mx.rpc.events.ResultEvent;
 	import mx.rpc.http.HTTPService;
-
-	import org.igniterealtime.xiff.events.ConnectionSuccessEvent;
-	import org.igniterealtime.xiff.events.DisconnectionEvent;
-	import org.igniterealtime.xiff.events.IncomingDataEvent;
-	import org.igniterealtime.xiff.events.LoginEvent;
-	import org.igniterealtime.xiff.events.OutgoingDataEvent;
+
+	import org.igniterealtime.xiff.events.*;
 	import org.igniterealtime.xiff.logging.LoggerFactory;
 	import org.igniterealtime.xiff.util.Callback;
-
+
 	/**
 	 * Bidirectional-streams Over Synchronous HTTP (BOSH)
 	 * @see http://xmpp.org/extensions/xep-0206.html
 	 */
 	public class XMPPBOSHConnection extends XMPPConnection
 	{
-		private static const logger:ILogger = LoggerFactory.getLogger("org.igniterealtime.xiff.core.XMPPBOSHConnection");
-
+		private static const BOSH_VERSION:String = "1.6";
+
+		private static const HTTPS_PORT:int = 7443;
+
 		private static const HTTP_PORT:int = 7070;
-		private static const HTTPS_PORT:int = 7443;
-		private static const BOSH_VERSION:String = "1.6";
-
+
 		private static const headers:Object = {
 			"post": [],
-			"get": ['Cache-Control', 'no-store', 'Cache-Control', 'no-cache', 'Pragma', 'no-cache']
+			"get": [ 'Cache-Control',
+					 'no-store',
+					 'Cache-Control',
+					 'no-cache',
+					 'Pragma', 'no-cache' ]
 		};
-
-		private const responseTimer:Timer = new Timer(0.0, 1);
-
+
+		private static const logger:ILogger = LoggerFactory.getLogger( "org.igniterealtime.xiff.core.XMPPBOSHConnection" );
+
+		private var _boshPath:String = "http-bind/";
+
+		private var _hold:uint = 1;
+
+		private var _maxConcurrentRequests:uint = 2;
+
+		private var _port:Number;
+
+		private var _secure:Boolean;
+
+		private var _wait:uint = 20;
+
+		private var boshPollingInterval:uint = 10000;
+
+		private var inactivity:uint;
+
+		private var isDisconnecting:Boolean = false;
+
+		private var lastPollTime:Date = null;
+
+		private var maxPause:uint;
+
+		private var pauseEnabled:Boolean = false;
+
+		private var pauseTimer:Timer;
+
+		private var pollingEnabled:Boolean = false;
+
 		private var requestCount:int = 0;
+
 		private var requestQueue:Array = [];
+
 		private var responseQueue:Array = [];
-		private var isDisconnecting:Boolean = false;
+
+		private const responseTimer:Timer = new Timer( 0.0, 1 );
+
+		private var rid:Number;
+
 		private var sid:String;
-		private var rid:Number;
-
-		private var pollingEnabled:Boolean = false;
-		private var lastPollTime:Date = null;
-
-		private var inactivity:uint;
-		private var boshPollingInterval:uint = 10000;
-
-		private var pauseEnabled:Boolean = false;
-		private var maxPause:uint;
-		private var pauseTimer:Timer;
-
+
 		private var streamRestarted:Boolean;
-
-		// These attributes can be configured from outside after creating the instance
-		private var _secure:Boolean;
-		private var _port:Number;
-		private var _maxConcurrentRequests:uint;
-		private var _hold:uint;
-		private var _wait:uint;
-		private var _boshPath:String;
-
+
 		/**
 		 *
 		 * @param	secure
 		 */
-		public function XMPPBOSHConnection(secure:Boolean = false):void
+		public function XMPPBOSHConnection( secure:Boolean = false ):void
 		{
 			super();
 			this.secure = secure;
-			this.hold = 1;
-			this.wait = 20;
-			this.maxConcurrentRequests = 2;
-			this.boshPollingInterval = 10000;
-			this.boshPath = "http-bind/";
-		}
-
-		public override function connect(streamType:String=null):Boolean
-		{
-			logger.debug("BOSH connect()");
-
+		}
+
+		override public function connect( streamType:String = null ):Boolean
+		{
+			logger.debug( "BOSH connect()" );
+
 			var attrs:Object = {
 				"xml:lang": "en",
-	            "xmlns": "http://jabber.org/protocol/httpbind",
-	            "xmlns:xmpp": "urn:xmpp:xbosh",
-	            "xmpp:version": "1.0",
-	            "hold": hold,
-	            "rid": nextRID,
-	            "secure": secure,
-	            "wait": wait,
-	            "ver": BOSH_VERSION,
-	            "to": domain
-	        }
-
-	        var result:XMLNode = new XMLNode(1, "body");
-	        result.attributes = attrs;
-	        sendRequests(result);
-
-	        return true;
-		}
-
-		public function set maxConcurrentRequests(value:uint):void
-		{
-			_maxConcurrentRequests = value;
-		}
-
-		public function get maxConcurrentRequests():uint
-		{
-			return _maxConcurrentRequests;
-		}
-
-		public function set hold(value:uint):void
-		{
-			_hold = value;
-		}
-
-		public function get hold():uint
-		{
-			return _hold;
-		}
-
-		public function set wait(value:uint):void
-		{
-			_wait = value;
-		}
-
-		public function get wait():uint
-		{
-			return _wait;
-		}
-
-		public function set secure(flag:Boolean):void
-		{
-			logger.debug("set secure: {0}", flag);
-			_secure = flag;
-			port = _secure ? HTTPS_PORT : HTTP_PORT;
-		}
-
-		public function get secure():Boolean
-		{
-			return _secure;
-		}
-
-		public override function set port(portnum:Number):void
-		{
-			logger.debug("set port: {0}", portnum);
-			_port = portnum;
-		}
-
-		public override function get port():Number
-		{
-			return _port;
-		}
-
-		public function set boshPath(value:String):void
-		{
-			_boshPath = value;
-		}
-
-		public function get boshPath():String
-		{
-			return _boshPath;
-		}
-
-		public function get httpServer():String
-		{
-			return (secure ? "https" : "http") + "://" + server + ":" + port + "/" + boshPath;
-		}
-
-		public override function disconnect():void
-		{
-			if(active)
+				"xmlns": "http://jabber.org/protocol/httpbind",
+				"xmlns:xmpp": "urn:xmpp:xbosh",
+				"xmpp:version": "1.0",
+				"hold": hold,
+				"rid": nextRID,
+				"secure": secure,
+				"wait": wait,
+				"ver": BOSH_VERSION,
+				"to": domain
+			};
+
+			var result:XMLNode = new XMLNode( 1, "body" );
+			result.attributes = attrs;
+			sendRequests( result );
+
+			return true;
+		}
+
+		override public function disconnect():void
+		{
+			if ( active )
 			{
 				var data:XMLNode = createRequest();
 				data.attributes.type = "terminate";
-				sendRequests(data);
+				sendRequests( data );
 				active = false;
 				loggedIn = false;
-				dispatchEvent(new DisconnectionEvent());
-			}
-		}
-
-		public function processConnectionResponse(responseBody:XMLNode):void
-		{
-			dispatchEvent(new ConnectionSuccessEvent());
-
+				dispatchEvent( new DisconnectionEvent());
+			}
+		}
+
+		/**
+		 * @return	true if pause request is sent
+		 */
+		public function pauseSession( seconds:uint ):Boolean
+		{
+			logger.debug( "Pausing session for {0} seconds", seconds );
+
+			var pauseDuration:uint = seconds * 1000;
+			if ( !pauseEnabled || pauseDuration > maxPause || pauseDuration <= boshPollingInterval )
+				return false;
+
+			pollingEnabled = false;
+
+			var data:XMLNode = createRequest();
+			data.attributes[ "pause" ] = seconds;
+			sendRequests( data );
+
+			pauseTimer = new Timer( pauseDuration - 2000, 1 );
+			pauseTimer.addEventListener( TimerEvent.TIMER, handlePauseTimeout );
+			pauseTimer.start();
+
+			return true;
+		}
+
+		public function processConnectionResponse( responseBody:XMLNode ):void
+		{
+			dispatchEvent( new ConnectionSuccessEvent());
+
 			var attributes:Object = responseBody.attributes;
-
+
 			sid = attributes.sid;
-	        wait = attributes.wait;
-
-	        if(attributes.polling)
-	        {
-	        	boshPollingInterval = attributes.polling * 1000;
-	        }
-	        if(attributes.inactivity)
-	        {
-	        	inactivity = attributes.inactivity * 1000;
-	        }
-	        if(attributes.maxpause)
-	        {
-	            maxPause = attributes.maxpause * 1000;
-	            pauseEnabled = true;
-	        }
-	        if(attributes.requests)
-	        {
-	            maxConcurrentRequests = attributes.requests;
-	        }
-
-	        logger.debug("Polling interval: {0}", boshPollingInterval);
-	        logger.debug("Inactivity timeout: {0}", inactivity);
-	        logger.debug("Max requests: {0}", maxConcurrentRequests);
-	        logger.debug("Max pause: {0}", maxPause);
-
-	        active = true;
-
-	        addEventListener(LoginEvent.LOGIN, handleLogin);
-	        responseTimer.addEventListener(TimerEvent.TIMER_COMPLETE, processResponse);
-		}
-
-		private function processResponse(event:TimerEvent=null):void
+			wait = attributes.wait;
+
+			if ( attributes.polling )
+			{
+				boshPollingInterval = attributes.polling * 1000;
+			}
+			if ( attributes.inactivity )
+			{
+				inactivity = attributes.inactivity * 1000;
+			}
+			if ( attributes.maxpause )
+			{
+				maxPause = attributes.maxpause * 1000;
+				pauseEnabled = true;
+			}
+			if ( attributes.requests )
+			{
+				maxConcurrentRequests = attributes.requests;
+			}
+
+			logger.debug( "Polling interval: {0}", boshPollingInterval );
+			logger.debug( "Inactivity timeout: {0}", inactivity );
+			logger.debug( "Max requests: {0}", maxConcurrentRequests );
+			logger.debug( "Max pause: {0}", maxPause );
+
+			active = true;
+
+			addEventListener( LoginEvent.LOGIN, handleLogin );
+			responseTimer.addEventListener( TimerEvent.TIMER_COMPLETE, processResponse );
+		}
+
+		//do nothing, we use polling instead
+		override public function sendKeepAlive():void
+		{
+		}
+
+		override protected function restartStream():void
+		{
+			var data:XMLNode = createRequest();
+			data.attributes[ "xmpp:restart" ] = "true";
+			data.attributes[ "xmlns:xmpp" ] = "urn:xmpp:xbosh";
+			data.attributes[ "xml:lang" ] = "en";
+			data.attributes[ "to" ] = domain;
+			sendRequests( data );
+			streamRestarted = true;
+		}
+
+		override protected function sendXML( body:* ):void
+		{
+			sendQueuedRequests( body );
+		}
+
+		private function createRequest( bodyContent:Array = null ):XMLNode
+		{
+			var attrs:Object = {
+				"xmlns": "http://jabber.org/protocol/httpbind",
+				"rid": nextRID,
+				"sid": sid
+			};
+			var req:XMLNode = new XMLNode( 1, "body" );
+			if ( bodyContent )
+			{
+				for each ( var content:XMLNode in bodyContent )
+				{
+					req.appendChild( content );
+				}
+			}
+
+			req.attributes = attrs;
+
+			return req;
+		}
+
+		private function handleLogin( e:LoginEvent ):void
+		{
+			pollingEnabled = true;
+			pollServer();
+		}
+
+		private function handlePauseTimeout( event:TimerEvent ):void
+		{
+			logger.debug( "handlePauseTimeout" );
+			pollingEnabled = true;
+			pollServer();
+		}
+
+		private function httpError( req:XMLNode, isPollResponse:Boolean, event:FaultEvent ):void
+		{
+			disconnect();
+			dispatchError( "Unknown HTTP Error", event.fault.rootCause.text, "",
+						   -1 );
+		}
+
+		private function httpResponse( req:XMLNode, isPollResponse:Boolean, event:ResultEvent ):void
+		{
+			requestCount--;
+			var rawXML:String = event.result as String;
+
+			logger.info( "INCOMING {0}", rawXML );
+
+			var xmlData:XMLDocument = new XMLDocument();
+			xmlData.ignoreWhite = this.ignoreWhite;
+			xmlData.parseXML( rawXML );
+			var bodyNode:XMLNode = xmlData.firstChild;
+
+			var incomingEvent:IncomingDataEvent = new IncomingDataEvent();
+			incomingEvent.data = xmlData;
+			dispatchEvent( incomingEvent );
+
+			if ( streamRestarted && !bodyNode.hasChildNodes())
+			{
+				streamRestarted = false;
+				bindConnection();
+			}
+
+			if ( bodyNode.attributes[ "type" ] == "terminate" )
+			{
+				dispatchError( "BOSH Error", bodyNode.attributes[ "condition" ],
+							   "", -1 );
+				active = false;
+			}
+
+			if ( bodyNode.attributes[ "sid" ] && !loggedIn )
+			{
+				processConnectionResponse( bodyNode );
+
+				var featuresFound:Boolean = false;
+				for each ( var child:XMLNode in bodyNode.childNodes )
+				{
+					if ( child.nodeName == "stream:features" )
+						featuresFound = true;
+				}
+				if ( !featuresFound )
+				{
+					pollingEnabled = true;
+					pollServer();
+				}
+			}
+
+			for each ( var childNode:XMLNode in bodyNode.childNodes )
+			{
+				responseQueue.push( childNode );
+			}
+
+			resetResponseProcessor();
+
+			//if we have no outstanding requests, then we're free to send a poll at the next opportunity
+			if ( requestCount == 0 && !sendQueuedRequests())
+				pollServer();
+		}
+
+		private function pollServer():void
+		{
+			//We shouldn't poll if the connection is dead, if we had requests to send instead, or if there's already one in progress
+			if ( !isActive() || !pollingEnabled || sendQueuedRequests() || requestCount >
+				0 )
+				return;
+
+			//this should be safe since sendRequests checks to be sure it's not over the concurrent requests limit, and we just ensured that the queue is empty by calling sendQueuedRequests()
+			sendRequests( null, true );
+		}
+
+		private function processResponse( event:TimerEvent = null ):void
 		{
 			// Read the data and send it to the appropriate parser
 			var currentNode:XMLNode = responseQueue.shift();
 			var nodeName:String = currentNode.nodeName.toLowerCase();
-
-			switch( nodeName )
+
+			switch ( nodeName )
 			{
 				case "stream:features":
 					handleStreamFeatures( currentNode );
 					streamRestarted = false; //avoid triggering the old server workaround
 					break;
-
+
 				case "stream:error":
 					handleStreamError( currentNode );
 					break;
-
+
 				case "iq":
 					handleIQ( currentNode );
 					break;
-
+
 				case "message":
 					handleMessage( currentNode );
 					break;
-
+
 				case "presence":
 					handlePresence( currentNode );
 					break;
-
+
 				case "success":
 					handleAuthentication( currentNode );
 					break;
@@ -262,239 +359,167 @@
 					handleAuthentication( currentNode );
 					break;
 				default:
-					dispatchError( "undefined-condition", "Unknown Error", "modify", 500 );
-					break;
-			}
-
+					dispatchError( "undefined-condition", "Unknown Error", "modify",
+								   500 );
+					break;
+			}
+
 			resetResponseProcessor();
 		}
-
-	    protected override function restartStream():void
-	    {
-	    	var data:XMLNode = createRequest();
-			data.attributes["xmpp:restart"] = "true";
-			data.attributes["xmlns:xmpp"] = "urn:xmpp:xbosh";
-			data.attributes["xml:lang"] = "en";
-			data.attributes["to"] = domain;
-			sendRequests(data);
-	        streamRestarted = true;
-	    }
-
-	    /**
-	    * @return	true if pause request is sent
-	    */
-	    public function pauseSession(seconds:uint):Boolean
-	    {
-	    	logger.debug("Pausing session for {0} seconds", seconds);
-
-	    	var pauseDuration:uint = seconds * 1000;
-	    	if(!pauseEnabled || pauseDuration > maxPause || pauseDuration <= boshPollingInterval)
-	    		return false;
-
-	    	pollingEnabled = false;
-
-	    	var data:XMLNode = createRequest();
-			data.attributes["pause"] = seconds;
-			sendRequests(data);
-
-			pauseTimer = new Timer(pauseDuration - 2000, 1);
-			pauseTimer.addEventListener(TimerEvent.TIMER, handlePauseTimeout);
-			pauseTimer.start();
-
-			return true;
-	    }
-
-	    private function handlePauseTimeout(e:TimerEvent):void
-	    {
-	    	logger.debug("handlePauseTimeout");
-	    	pollingEnabled = true;
-	    	pollServer();
-	    }
-
+
 		private function resetResponseProcessor():void
 		{
-			if(responseQueue.length > 0)
+			if ( responseQueue.length > 0 )
 			{
 				responseTimer.reset();
 				responseTimer.start();
 			}
 		}

-		private function httpResponse(req:XMLNode, isPollResponse:Boolean, event:ResultEvent):void
-		{
-			requestCount--;
-			var rawXML:String = event.result as String;
-
-			logger.info("INCOMING {0}", rawXML);
-
-			var xmlData:XMLDocument = new XMLDocument();
-			xmlData.ignoreWhite = this.ignoreWhite;
-			xmlData.parseXML(rawXML);
-			var bodyNode:XMLNode = xmlData.firstChild;
-
-			var incomingEvent:IncomingDataEvent = new IncomingDataEvent();
-			incomingEvent.data = xmlData;
-			dispatchEvent(incomingEvent);
-
-			if (streamRestarted && !bodyNode.hasChildNodes())
-			{
-				streamRestarted = false;
-				bindConnection();
-			}
-
-			if(bodyNode.attributes["type"] == "terminate")
-			{
-				dispatchError("BOSH Error", bodyNode.attributes["condition"], "", -1);
-				active = false;
-			}
-
-			if(bodyNode.attributes["sid"] && !loggedIn)
-			{
-				processConnectionResponse(bodyNode);
-
-				var featuresFound:Boolean = false;
-				for each(var child:XMLNode in bodyNode.childNodes)
-				{
-					if(child.nodeName == "stream:features")
-						featuresFound = true;
-				}
-				if(!featuresFound)
-				{
-					pollingEnabled = true;
-	    			pollServer();
-				}
-			}
-
-			for each(var childNode:XMLNode in bodyNode.childNodes)
-			{
-				responseQueue.push(childNode);
-			}
-
-			resetResponseProcessor();
-
-			//if we have no outstanding requests, then we're free to send a poll at the next opportunity
-			if(requestCount == 0 && !sendQueuedRequests())
-				pollServer();
-		}
-
-		private function httpError(req:XMLNode, isPollResponse:Boolean, event:FaultEvent):void
-		{
-			disconnect();
-			dispatchError("Unknown HTTP Error", event.fault.rootCause.text, "", -1);
-		}
-
-		protected override function sendXML(body:*):void
-		{
-			sendQueuedRequests(body);
-		}
-
-		private function sendQueuedRequests(body:*=null):Boolean
-		{
-			if(body)
-				requestQueue.push(body);
-			else if(requestQueue.length == 0)
+		private function sendQueuedRequests( body:* = null ):Boolean
+		{
+			if ( body )
+			{
+				requestQueue.push( body );
+			}
+			else if ( requestQueue.length == 0 )
+			{
 				return false;
-
+			}
+
 			return sendRequests();
 		}
-
+
 		//returns true if any requests were sent
-		private function sendRequests(data:XMLNode = null, isPoll:Boolean = false):Boolean
-		{
-			if(requestCount >= maxConcurrentRequests)
+		private function sendRequests( data:XMLNode = null, isPoll:Boolean = false ):Boolean
+		{
+			if ( requestCount >= maxConcurrentRequests )
+			{
 				return false;
-
+			}
+
 			requestCount++;
-
-			if(!data)
-			{
-				if(isPoll)
+
+			if ( !data )
+			{
+				if ( isPoll )
 				{
 					data = createRequest();
 				}
 				else
 				{
 					var temp:Array = [];
-					for(var i:uint = 0; i < 10 && requestQueue.length > 0; ++i)
+					for ( var i:uint = 0; i < 10 && requestQueue.length > 0; ++i )
 					{
-						temp.push(requestQueue.shift());
+						temp.push( requestQueue.shift());
 					}
-					data = createRequest(temp);
+					data = createRequest( temp );
 				}
 			}

+			// TODO: Could this be replaced with URLLoader ?
 			//build the http request
-	        var request:HTTPService = new HTTPService();
-	        request.method = "post";
-	        request.headers = headers[request.method];
-	        request.url = httpServer;
-	        request.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
-	        request.contentType = "text/xml";
-
-	        var responseCallback:Callback = new Callback(this, httpResponse, data, isPoll);
-	        var errorCallback:Callback = new Callback(this, httpError, data, isPoll);
-
-	        request.addEventListener(ResultEvent.RESULT, responseCallback.call, false);
-	        request.addEventListener(FaultEvent.FAULT, errorCallback.call, false);
-
-			request.send(data);
-
+			var request:HTTPService = new HTTPService();
+			request.method = "post";
+			request.headers = headers[ request.method ];
+			request.url = httpServer;
+			request.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
+			request.contentType = "text/xml";
+
+			var responseCallback:Callback = new Callback( this, httpResponse, data,
+														  isPoll );
+			var errorCallback:Callback = new Callback( this, httpError, data, isPoll );
+
+			request.addEventListener( ResultEvent.RESULT, responseCallback.call,
+									  false );
+			request.addEventListener( FaultEvent.FAULT, errorCallback.call, false );
+
+			request.send( data );
+
+
 			var event:OutgoingDataEvent = new OutgoingDataEvent();
 			event.data = data;
-			dispatchEvent(event);
-
-			if(isPoll) {
+			dispatchEvent( event );
+
+			if ( isPoll )
+			{
 				lastPollTime = new Date();
-				logger.info("Polling");
-			}
-
-			logger.info("OUTGOING {0}", data);
-
+				logger.info( "Polling" );
+			}
+
+			logger.info( "OUTGOING {0}", data );
+
 			return true;
 		}

-    	private function pollServer():void
-    	{
-    		//We shouldn't poll if the connection is dead, if we had requests to send instead, or if there's already one in progress
-    		if(!isActive() || !pollingEnabled || sendQueuedRequests() || requestCount > 0)
-    			return;
-
-    		//this should be safe since sendRequests checks to be sure it's not over the concurrent requests limit, and we just ensured that the queue is empty by calling sendQueuedRequests()
-    		sendRequests(null, true);
-    	}
-
-    	private function get nextRID():Number
-    	{
-    		if(!rid)
-    			rid = Math.floor(Math.random() * 1000000);
-    		return ++rid;
-    	}
-
-    	private function createRequest(bodyContent:Array=null):XMLNode
-    	{
-    		var attrs:Object = {
-    			"xmlns": "http://jabber.org/protocol/httpbind",
-				"rid": nextRID,
-				"sid": sid
-    		}
-    		var req:XMLNode = new XMLNode(1, "body");
-    		if(bodyContent)
-    			for each(var content:XMLNode in bodyContent)
-    					req.appendChild(content);
-
-    		req.attributes = attrs;
-
-    		return req;
-    	}
-
-	    private function handleLogin(e:LoginEvent):void
-	    {
-	    	pollingEnabled = true;
-	    	pollServer();
-	    }
-
-		//do nothing, we use polling instead
-		public override function sendKeepAlive():void
-		{}
+		public function get boshPath():String
+		{
+			return _boshPath;
+		}
+		public function set boshPath( value:String ):void
+		{
+			_boshPath = value;
+		}
+
+		private function get nextRID():Number
+		{
+			if ( !rid )
+				rid = Math.floor( Math.random() * 1000000 );
+			return ++rid;
+		}
+
+		public function get wait():uint
+		{
+			return _wait;
+		}
+		public function set wait( value:uint ):void
+		{
+			_wait = value;
+		}
+
+		public function get secure():Boolean
+		{
+			return _secure;
+		}
+		public function set secure( flag:Boolean ):void
+		{
+			logger.debug( "set secure: {0}", flag );
+			_secure = flag;
+			port = _secure ? HTTPS_PORT : HTTP_PORT;
+		}
+
+		override public function get port():Number
+		{
+			return _port;
+		}
+		override public function set port( portnum:Number ):void
+		{
+			logger.debug( "set port: {0}", portnum );
+			_port = portnum;
+		}
+
+		public function get hold():uint
+		{
+			return _hold;
+		}
+		public function set hold( value:uint ):void
+		{
+			_hold = value;
+		}
+
+		public function get httpServer():String
+		{
+			return ( secure ? "https" : "http" ) + "://" + server + ":" + port +
+				"/" + boshPath;
+		}
+
+		public function get maxConcurrentRequests():uint
+		{
+			return _maxConcurrentRequests;
+		}
+		public function set maxConcurrentRequests( value:uint ):void
+		{
+			_maxConcurrentRequests = value;
+		}
 	}
 }


Also returning the list of active platforms for the KeyActionBinder instance

--- src/com/zehfernando/input/binding/KeyActionBinder.as
+++ src/com/zehfernando/input/binding/KeyActionBinder.as
@@ -755,6 +755,14 @@
 		public function getDeviceTypeAt(__index:uint):String {
 			return gameInputDeviceDefinitions.length > __index && gameInputDeviceDefinitions[__index] != null ? gameInputDeviceDefinitions[__index].getType() : null;
 		}
+
+		public function getPlatformTypes():Vector.<String> {
+			var platforms:Vector.<String> = new Vector.<String>();
+			for (var i:int = 0; i < knownGamepadPlatforms.length; i++) {
+				platforms.push(knownGamepadPlatforms[i].id);
+			}
+			return platforms;
+		}
 	}
 }
 import flash.utils.Dictionary;


Speed up getMaxDrawn by caching keyframe computations

A deeply nested movie in one of Jon's flas
was causing a single keyframe calculation to run
literally millions of times, which made Flash just hang
forever.

--- exporter/src/main/as/flump/export/DisplayCreator.as
+++ exporter/src/main/as/flump/export/DisplayCreator.as
@@ -3,7 +3,6 @@

 package flump.export {

-import flash.display.BitmapData;
 import flash.utils.Dictionary;

 import flump.SwfTexture;
@@ -18,6 +17,9 @@
 import starling.display.Image;
 import starling.display.Sprite;
 import starling.textures.Texture;
+
+import com.threerings.util.Map;
+import com.threerings.util.Maps;

 public class DisplayCreator
 {
@@ -64,11 +66,17 @@
         }
         const xflMovie :MovieMold = _lib.getLibrary(name, MovieMold);
         var maxDrawn :int = 0;
+        var calculatedKeyframes :Map = Maps.newMapOf(KeyframeMold);
         for (var ii :int = 0; ii < xflMovie.frames; ii++) {
             var drawn :int = 0;
             for each (var layer :LayerMold in xflMovie.layers) {
                 var kf :KeyframeMold = layer.keyframeForFrame(ii);
-                if (kf.visible) drawn += getMaxDrawn(kf.id);
+                if (kf.visible) {
+                    if (!calculatedKeyframes.containsKey(kf)) {
+                        calculatedKeyframes.put(kf, getMaxDrawn(kf.id));
+                    }
+                    drawn += calculatedKeyframes.get(kf);
+                }
             }
             maxDrawn = Math.max(maxDrawn, drawn);
         }


Revert "created file for RDataSource"

Revert "created file for RDataSource"

This reverts commit b5bf02cc0a8dcb219fc32bee5729ac36a37fc206.

--- WeaveData/src/weave/data/DataSources/RDataSource.as
+++ WeaveData/src/weave/data/DataSources/RDataSource.as
@@ -1,76 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
-*
-* This file is part of Weave.
-*
-* The Initial Developer of Weave is the Institute for Visualization
-* and Perception Research at the University of Massachusetts Lowell.
-* Portions created by the Initial Developer are Copyright (C) 2008-2015
-* the Initial Developer. All Rights Reserved.
-*
-* 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/.
-*
-* ***** END LICENSE BLOCK ***** */
-
-package weave.data.DataSources
-{
-	import weave.api.data.ColumnMetadata;
-	import weave.api.data.DataType;
-	import weave.api.data.IAttributeColumn;
-	import weave.api.data.IColumnReference;
-	import weave.api.data.IDataSource;
-	import weave.api.data.IDataSource_Service;
-	import weave.api.data.IWeaveTreeNode;
-	import weave.api.disposeObject;
-	import weave.api.newLinkableChild;
-	import weave.api.registerLinkableChild;
-	import weave.core.LinkableHashMap;
-	import weave.core.LinkableString;
-	import weave.data.AttributeColumns.ProxyColumn;
-	import weave.data.hierarchy.ColumnTreeNode;
-	import weave.services.JsonCache;
-	import weave.services.WeaveRServlet;
-
-	public class RDataSource extends AbstractDataSource implements IDataSource_Service
-	{
-		WeaveAPI.ClassRegistry.registerImplementation(IDataSource, RDataSource, "R Data Source");
-
-		private var rServlet:WeaveRServlet;
-
-		private const jsonCache:JsonCache = newLinkableChild(this, JsonCache);
-
-		public const scriptName:LinkableString = newLinkableChild(this, LinkableString);
-
-		public const scriptOptions:LinkableHashMap = newLinkableChild(this, LinkableHashMap);
-
-		public const rServiceURL:LinkableString = newLinkableChild(this, LinkableString);
-
-
-		public function runScript():void
-		{
-
-			// runs the script
-			//rServlet.runScript(scriptName.value, scriptOptions);
-		}
-
-		override protected function initialize():void
-		{
-			// initialize the RSe
-			rServiceURL.value = "/WeaveServices/Rservice";
-			rServlet = new WeaveRServlet(rServiceURL.value);
-			super.initialize();
-		}
-
-		override protected function refreshHierarchy():void
-		{
-
-		}
-
-
-		override protected function requestColumnFromSource(proxyColumn:ProxyColumn):void
-		{
-
-		}
-	}
-}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.charts
 {


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

--- frameworks/projects/rpc/src/mx/rpc/xml/XMLLoader.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/XMLLoader.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-2007 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Set editor camera mask to -1

Set editor camera mask to -1

--- Bin/Data/Scripts/Editor/EditorView.as
+++ Bin/Data/Scripts/Editor/EditorView.as
@@ -105,7 +105,7 @@
         viewport = Viewport(editorScene, camera, viewRect);
         index = index_;
         viewportId = viewportId_;
-        camera.viewMask = 0x80000000; // It's easier to only have 1 gizmo active this viewport is shared with the gizmo
+        camera.viewMask = -1; // It's easier to only have 1 gizmo active this viewport is shared with the gizmo
     }

     void ResetCamera()


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.graphics
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.messaging
 {


Missed another null, fixed it.

Missed another null, fixed it.

--- unittests/TestModusPonens.as
+++ unittests/TestModusPonens.as
@@ -12,7 +12,7 @@
 		{
 			//ModusPonens(claimText:String,reasonText:Array,reversePos:Boolean,inferenceText:String="",inferencePresent:Boolean = false)
 			mp = new ModusPonens("Basic Claim", ["Reason 1", "Reason 2"], false,
-				"If Foo, then Bar is a sufficient condition for Baz, and Quux implies Flarp", false);
+				"If Foo, then Bar is a sufficient condition for Baz provided Quux, and Flarp implies Bletch only if Snork", false);
 		}

 		[After]


Added save-on-test

Added save-on-test

--- src/LevelState.as
+++ src/LevelState.as
@@ -801,6 +801,7 @@

 		public function runTest():void {
+			save();
 			displayTime.startPlaying();
 			runningTest = true;
 		}


save the confFile path whenever it changes

--- exporter/src/main/as/flump/export/Exporter.as
+++ exporter/src/main/as/flump/export/Exporter.as
@@ -90,6 +90,7 @@
             var file :File = new File();
             file.addEventListener(Event.SELECT, function (..._) :void {
                 _confFile = file;
+                saveConfFilePath();
                 openConf();
                 updatePublisher();
                 updateWindowTitle(false);
@@ -129,9 +130,7 @@
                 }

                 _confFile = file;
-                trace("Conf file is now " + _confFile.nativePath);
-                _settings.data["CONF_FILE"] = _confFile.nativePath;
-                _settings.flush();
+                saveConfFilePath();
                 saveConf();
             });
             file.browseForSave("Save Flump Configuration");
@@ -165,8 +164,8 @@
         saveAsMenuItem.keyEquivalent = "S";
         saveAsMenuItem.addEventListener(Event.SELECT, saveAs);

-        if (_settings.data.hasOwnProperty("CONF_FILE")) {
-            _confFile = new File(_settings.data["CONF_FILE"]);
+        if (_settings.data.hasOwnProperty(CONF_FILE_KEY)) {
+            _confFile = new File(_settings.data[CONF_FILE_KEY]);
             openConf();
         }

@@ -254,6 +253,12 @@
         updatePublisher();
         updateWindowTitle(false);
         _win.addEventListener(Event.CLOSE, function (..._) :void { NA.exit(0); });
+    }
+
+    protected function saveConfFilePath () :void {
+        trace("Conf file is now " + _confFile.nativePath);
+        _settings.data[CONF_FILE_KEY] = _confFile.nativePath;
+        _settings.flush();
     }

     protected function setImport (root :File) :void {
@@ -388,6 +393,8 @@
     protected const _settings :SharedObject = SharedObject.getLocal("flump/Exporter");

     private static const log :Log = Log.getLog(Exporter);
+
+    protected static const CONF_FILE_KEY :String = "CONF_FILE";
 }
 }


fixed issue where copied files would have a size of zero bytes

--- source/ASConfigC.as
+++ source/ASConfigC.as
@@ -574,7 +574,8 @@
 				if(this._isSWF)
 				{
 					var targetPath:String = path.resolve(outputDirectory, assetName);
-					fs.createReadStream(assetPath).pipe(fs.createWriteStream(targetPath));
+					var content:Object = fs.readFileSync(assetPath);
+					fs.writeFileSync(targetPath, content);
 				}
 				else
 				{
@@ -585,7 +586,8 @@
 					{
 						var releaseOutputDir:String = path.join(outputDirectory, "bin", "js-release");
 						targetPath = path.resolve(releaseOutputDir, assetName);
-						fs.createReadStream(assetPath).pipe(fs.createWriteStream(targetPath));
+						content = fs.readFileSync(assetPath);
+						fs.writeFileSync(targetPath, content);
 					}

 				}


??IFieldDescriptor.type

??IFieldDescriptor.type

--- as3/com/netease/protobuf/IFieldDescriptor.as
+++ as3/com/netease/protobuf/IFieldDescriptor.as
@@ -12,6 +12,8 @@
 	 * Run-time infomation for a field.
 	 */
 	public interface IFieldDescriptor {
+		function get type():Class
+
 		function get name():String

 		function get tagNumber():uint


Adding check for negatives before taking sqrt

--- raw/src/org/yellcorp/lib/geom/curves/CubicBezier.as
+++ raw/src/org/yellcorp/lib/geom/curves/CubicBezier.as
@@ -230,7 +230,7 @@
             {
                 out.push(a_2b_c / divisor);
             }
-            else
+            else if (radicand > 0)
             {
                 var sqrt:Number = Math.sqrt(radicand);
                 out.push( (a_2b_c + sqrt) / divisor,


use setProperty (for now at least)

use setProperty (for now at least)

--- examples/FlexJSStore/src/ProductJSONItemConverter.as
+++ examples/FlexJSStore/src/ProductJSONItemConverter.as
@@ -34,7 +34,7 @@
             var obj:Object = super.convertItem(data);
             var product:Product = new Product();
             for (var p:String in obj)
-                product[p] = obj[p];
+                setProperty(product, p, obj[p]);
 			return product;
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 13097
Author:   cframpto@adobe.com
Date:     2009-12-18T02:36:41.995341Z

Log Message:
-----------
Add ISystemCursorClient so that it is possible to detect whether system cursor should be displayed in mouseOverHandler.  In particular this will detect if it is a RichEditableText component.  This removes a FIXME.

QE notes:
Doc notes:
Bugs:
Reviewer: Alex, Glenn
Tests run:
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISystemCursorClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/framework/src/mx/core/ISystemCursorClient.as
+++ frameworks/projects/framework/src/mx/core/ISystemCursorClient.as
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+[ExcludeClass]
+
+/**
+ *  The ISystemCursorClient interface defines the interface a component may
+ *  implement to notify the CursorManager whether or not the system cursor
+ *  should be used in conjunction with a custom cursor.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+public interface ISystemCursorClient
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  showSystemCursor
+	//----------------------------------
+
+	/**
+	 *  True if the system cursor should always be shown when the mouse
+     *  moves over the component.  If false, the custom cursor will be shown.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function get showSystemCursor():Boolean;
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/core/ISharedDisplayObject.as
+++ frameworks/projects/spark/src/spark/core/ISharedDisplayObject.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2006 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.
 //
 ////////////////////////////////////////////////////////////////////////////////
 package spark.core


Transferred from the Adobe Open Source Subversion Repository

Revision: 18767
Author:   dloverin@adobe.com
Date:     2010-11-22T12:13:05.651102Z

Log Message:
-----------
RSL Sharing Among Modules feature check-in.

Made PARB changes.
Added Compiler API and FlexTask for 'application-domain' option.
Renamed compiler option 'application-domains' to 'application-domain'.

frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as
    addPreloadedRSL() stub.

frameworks/projects/framework/src/mx/core/ApplicationDomainTarget.as
    ASDoc change.

frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as
    Update due to PARB changes in RSLData.

frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
    PARB changes.

frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as
    Add addPreloadedRSL() to interface. Changes rsl parameter type from Array to Vector.<RSLData>.

frameworks/projects/framework/src/mx/core/RSLData.as
    PARB changes:
•        Change var to getters for read-only properties except for moduleFactory.

•        Rename url to rslURL.

•        Rename policyFileUrl to policyFileURL

frameworks/projects/framework/src/mx/managers/SystemManager.as
    PARB changes.

frameworks/projects/framework/src/mx/utils/LoaderUtil.as
    PARB changes and implement new rule where a sub-app/module loaded into the top-level appdomain has its RSLs loaded into the top-level application. The RSLs can them be shared with other sub-apps/modules of the top-level application.

modules/antTasks/src/flex/ant/MxmlcTask.java
    new ant task for “application-domain” option.

modules/compiler/src/java/flex2/compiler/common/Configuration.java
    add alias “rsl-domain” for “application-domain”.

modules/compiler/src/java/flex2/compiler/common/RuntimeSharedLibrarySettingsConfiguration.java
    Rename “application-domains” option to “application-domain”.

modules/compiler/src/java/flex2/configuration_en.properties
modules/compiler/src/java/flex2/tools/flexbuilder/BuilderConfiguration.java
modules/compiler/src/java/flex2/tools/oem/Configuration.java
modules/compiler/src/java/flex2/tools/oem/internal/ConfigurationConstants.java
modules/compiler/src/java/flex2/tools/oem/internal/OEMConfiguration.java
    Add Compiler API for setting “application-domain”.

modules/compiler/src/java/flex2/tools/PreLink.java
    Generate stub code for addPreloadedRSL().

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex
Tests run: cyclone server, checkintests
Is noteworthy for integration: Yes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/oem/internal/OEMConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/common/Configuration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/common/RuntimeSharedLibrarySettingsConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/RSLData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ApplicationDomainTarget.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/flexbuilder/BuilderConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/oem/Configuration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/antTasks/src/flex/ant/MxmlcTask.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/oem/internal/ConfigurationConstants.java</path>

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

--- frameworks/projects/framework/src/mx/core/RSLData.as
+++ frameworks/projects/framework/src/mx/core/RSLData.as
@@ -12,14 +12,12 @@
 package mx.core
 {

-[ExcludeClass]
-
 /**
- *  A Class the describes configuration data for an RSL.
+ *  A Class that describes configuration data for an RSL.
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 2.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
 public class RSLData
@@ -33,25 +31,48 @@
     //--------------------------------------------------------------------------

     /**
-     *  @private
-     */
-    public function RSLData(url:String = null, policyFileUrl:String = null,
-                            digest:String = null, hashType:String = null,
+     *  Constructor.
+     *
+     *  @param rslURL The location of the RSL.
+     *  @param policyFileURL The location of the policy file url (optional).
+     *  @param digest The digest of the RSL. This is null for an RSL without
+     *  a digest.
+     *  @param hashType The type of hash used to create the digest. The only
+     *  supported value is SHA256.TYPE_ID.
+     *  @param isSigned True if the RSL has been signed by Adobe, false
+     *  otherwise.
+     *  @param verifyDigest Detemines if the RSL's digest should be verified
+     *  after it is loaded.
+     *  @param applicationDomainTarget The application domain where the the
+     *  RSL should be loaded. For valid values see the ApplicationDomainTarget
+     *  enumeration.
+     *
+     *  @see mx.core.ApplicationDomainTarget
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function RSLData(rslURL:String = null,
+                            policyFileURL:String = null,
+                            digest:String = null,
+                            hashType:String = null,
                             isSigned:Boolean = false,
                             verifyDigest:Boolean = false,
-                            applicationDomainTarget:String = "default",
-                            moduleFactory:IFlexModuleFactory = null)
+                            applicationDomainTarget:String = "default")
     {
         super();

-        this.url = url;
-        this.policyFileUrl = policyFileUrl;
-        this.digest = digest;
-        this.hashType = hashType;
-        this.isSigned = isSigned;
-        this.verifyDigest = verifyDigest;
-        this.applicationDomainTarget = applicationDomainTarget;
-        this.moduleFactory = moduleFactory;
+        _rslURL = rslURL
+        _policyFileURL = policyFileURL;
+        _digest = digest;
+        _hashType = hashType;
+        _isSigned = isSigned;
+        _verifyDigest = verifyDigest;
+        _applicationDomainTarget = applicationDomainTarget;
+        _moduleFactory = moduleFactory;
+
     }

     //--------------------------------------------------------------------------
@@ -66,17 +87,24 @@

     /**
      *  @private
+     */
+    private var _applicationDomainTarget:String;
+
+    /**
+     *  The requested application domain to load the RSL into.
+     *  For valid values see the ApplicationDomainTarget enumeration.
      *
-     *  The requested application domain to load the RSL into.
-     *
One of the following:
-     *

-     *
"default"
-     *
"current"
-     *
"parent"
-     *
"top-level"
-     *

-     */
-    public var applicationDomainTarget:String;
+     *  @see mx.core.ApplicationDomainTarget
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get applicationDomainTarget():String
+    {
+        return _applicationDomainTarget;
+    }

     //----------------------------------
     //  digest
@@ -84,22 +112,44 @@

     /**
      *  @private
-     *
-     *  The digest of the RSL. This is null for and RSL without a digest.
-     */
-    public var digest:String;
-
-    //----------------------------------
-    //  digest type
-    //----------------------------------
-
-    /**
-     *  @private
-     *
-     *  The type of hash used to create the RSL digest. This is null for an RSL
-     *  without a digest. The only supported hash type is SHA256.TYPE_ID.
-     */
-    public var hashType:String;
+     */
+    private var _digest:String;
+
+    /**
+     *  The digest of the RSL. This is null for an RSL without a digest.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get digest():String
+    {
+        return _digest;
+    }
+
+    //----------------------------------
+    //  hash type
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _hashType:String;
+
+    /**
+     *  The type of hash used to create the RSL digest. The only supported hash
+     *  type is SHA256.TYPE_ID.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get hashType():String
+    {
+        return _hashType;
+    }

     //----------------------------------
     //  isSigned
@@ -107,10 +157,21 @@

     /**
      *  @private
-     *
+     */
+    private var _isSigned:Boolean;
+
+    /**
      *  True if the RSL has been signed by Adobe. False otherwise.
-     */
-    public var isSigned:Boolean;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get isSigned():Boolean
+    {
+        return _isSigned;
+    }

     //----------------------------------
     //  moduleFactory
@@ -118,36 +179,77 @@

     /**
      *  @private
-     *
+     */
+    private var _moduleFactory:IFlexModuleFactory;
+
+    /**
      *  Non-null if this RSL should be loaded into an application
      *  domain other than the application domain associated with the
      *  module factory performing the load. If null, then load into
      *  the current application domain.
-     */
-    public var moduleFactory:IFlexModuleFactory;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get moduleFactory():IFlexModuleFactory
+    {
+        return _moduleFactory;
+    }
+
+    /**
+     *  @private
+     */
+    public function set moduleFactory(moduleFactory:IFlexModuleFactory):void
+    {
+        _moduleFactory = moduleFactory;
+    }

    //----------------------------------
-    //  policy file url
-    //----------------------------------
-
-    /**
-     *  @private
-     *
-     *  Location of the policy file.
-     */
-    public var policyFileUrl:String;
-
-    //----------------------------------
-    //  url
-    //----------------------------------
-
-    /**
-     *  @private
-     *
-     *  Location of the RSL. The URL can be absolute or relative to the
+    //  policyFileURL
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _policyFileURL:String;
+
+    /**
+     *  An URL that specifies the location of the policy file (optional).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get policyFileURL():String
+    {
+        return _policyFileURL;
+    }
+
+    //----------------------------------
+    //  rslURL
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _rslURL:String;
+
+    /**
+     *  The location of the RSL. The URL can be absolute or relative to the
      *  application or module.
-     */
-    public var url:String;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get rslURL():String
+    {
+        return _rslURL;
+    }

     //----------------------------------
     //  verifyDigest
@@ -155,11 +257,23 @@

     /**
      *  @private
-     *
+     */
+    private var _verifyDigest:Boolean;
+
+    /**
      *  True if the digest must be verified before loading the RSL into memory.
-     *  False allows the RSL to be loaded without verification.
-     */
-    public var verifyDigest:Boolean;
+     *  False allows the RSL to be loaded without verification. Signed RSLs
+     *  are always verified regardless of the value.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get verifyDigest():Boolean
+    {
+        return _verifyDigest;
+    }

 }
 }