Transferred from the Adobe Open Source Subversion Repository

Revision: 3035
Author:   jvroom@adobe.com
Date:     2008-08-29T06:18:11.275196Z

Log Message:
-----------
* Added HTTPMultiService component - refactored the guts of HTTPService into a new
class AbstractOperation which HTTPService now wraps.

* Moved concurrency and showBusyCursor classes up to the mx.rpc level from mx.rpc.mxml.
Partly this improves consistency and partly because it is awkward to implement them
with the wrapping design in the subclass.  This does introduce a new dependency on
CursorManager in mx.rpc.HTTPService, though I think that should turn into a "runtime binding"
so we remove the compile time binding altogether.

* Added managers, operationManager, resultType, resultElementType, properties to the
AbstractService and AbstractInvoker classes.  These are used to improve the metadata information
on these operations for better tooling in the future, and to allow management services to
tie into the service infrastructure.

* AsyncToken gets a default parameter for its constructor so it can be used in MXML.

* Moved endpoint property up from the MXML to the regular mx.rpc version to improve consistency

The blazeds RPC tests passed unfortunately I had problems getting the RPC tests in the sdk branch
to build and run so let me know if you see any problems on those.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPMultiService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/WebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/Operation.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/http/Operation.as
+++ frameworks/projects/rpc/src/mx/rpc/http/Operation.as
@@ -0,0 +1,210 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.rpc.http
+{
+
+import mx.core.mx_internal;
+import mx.logging.ILogger;
+import mx.logging.Log;
+import mx.rpc.AbstractService;
+import mx.rpc.AsyncRequest;
+import mx.rpc.AsyncToken;
+
+use namespace mx_internal;
+
+/**
+ * An Operation used specifically by an HTTPMultiService.  An Operation is an
+ * individual operation on a service usually corresponding to a single operation on the server
+ * side.  An Operation can be called either by invoking the
+ * function of the same name on the service or by accessing the Operation as a property on the service and
+ * calling the send(param1, param2) method.  HTTP services also support a sendBody
+ * method which allows you to directly specify the body of the HTTP response.  If you use the
+ * send(param1, param2) method, the body is typically formed by combining the argumentNames
+ * property of the operation with the parameters sent.  An Object is created which uses the
+ * argumentNames[i] as the key and the corresponding parameter as the value.
+ *

+ * The exact way in which the HTTP operation arguments is put into the HTTP body is determined
+ * by the serializationFilter used.
+ */
+public class Operation extends AbstractOperation
+{
+    //---------------------------------
+    // Constructor
+    //---------------------------------
+
+    /**
+     * Creates a new Operation.
+     */
+    public function Operation(service:HTTPMultiService = null, name:String = null)
+    {
+        super(service, name);
+
+        _multiService = service;
+
+        _log = Log.getLogger("mx.rpc.http.HTTPMultiService");
+    }
+
+    private var _log:ILogger;
+
+    /**
+     * Stores the parent service which controls this operation.
+     */
+    private var _multiService:HTTPMultiService;
+
+    /**
+     * Keep track of whether or not this has been set explicitly on the
+     * operation.  If not, we'll inherit this value from the service level.
+     */
+    private var _makeObjectsBindableSet:Boolean;
+
+    [Inspectable(defaultValue="true", category="General")]
+    /**
+     * When this value is true, anonymous objects returned are forced to bindable objects.
+     */
+    override public function get makeObjectsBindable():Boolean
+    {
+        if (_makeObjectsBindableSet)
+            return _makeObjectsBindable;
+        return _multiService.makeObjectsBindable;
+    }
+
+    override public function set makeObjectsBindable(b:Boolean):void
+    {
+        _makeObjectsBindable = b;
+        _makeObjectsBindableSet = true;
+    }
+
+    override mx_internal function setService(s:AbstractService):void
+    {
+        super.setService(s);
+        if (s is HTTPMultiService)
+            _multiService = s as HTTPMultiService;
+
+    }
+
+    /**
+     * If the rootURL property is not set on the operation, it is inherited from
+     * the service level.
+     */
+    override public function get rootURL():String
+    {
+        if (_rootURL == null)
+            return _multiService.rootURL;
+        return _rootURL;
+    }
+
+    private var _useProxySet:Boolean = false;
+
+    override public function get useProxy():Boolean
+    {
+        if (_useProxySet)
+            return super.useProxy;
+        return _multiService.useProxy;
+    }
+
+    override public function set useProxy(value:Boolean):void
+    {
+        _useProxySet = true;
+        super.useProxy = value;
+    }
+
+    //---------------------------------
+    // Methods
+    //---------------------------------
+
+    /**
+     * Executes the http operation. Any arguments passed in are passed along as part of
+     * the operation call. If there are no arguments passed, the arguments property of
+     * class is used as the source of parameters.  HTTP operations commonly take named
+     * parameters, not positional parameters.  To supply the names for these parameters,
+     * you can also set the argumentNames property to an array of the property names.
+     *
+     * @param args Optional arguments passed in as part of the method call. If there
+     * are no arguments passed, the arguments object is used as the source of
+     * parameters.
+     *
+     * @return AsyncToken Call using the asynchronous completion token pattern.
+     * The same object is available in the result and
+     * fault events from the token property.
+     */
+    override public function send(... args:Array):AsyncToken
+    {
+        if (_multiService != null)
+            _multiService.initialize();
+
+        if (operationManager != null)
+            return operationManager(args);
+
+        var params:Object;
+
+        var filter:SerializationFilter = getSerializationFilter();
+        if (filter != null)
+            params = filter.serializeParameters(this, args);
+        else
+        {
+            params = args;
+            if (!params || (params.length == 0 && this.request))
+                params = this.request;
+
+            if (params is Array && argumentNames != null)
+            {
+                args = params as Array;
+                if (args.length != argumentNames.length)
+                    throw new ArgumentError("HTTPMultiService operation called with " + argumentNames.length + " argumentNames and " + args.length + " number of parameters.  When argumentNames is specified, it must match the number of arguments passed to the invocation");
+                else
+                {
+                    for (var i:int = 0; i < argumentNames.length; i++)
+                        params[argumentNames[i]] = args[i];
+                }
+            }
+        }
+        return sendBody(params);
+    }
+
+    override public function get resultFormat():String
+    {
+        var rf:String = super.resultFormat;
+        if (rf == null)
+            return _multiService.resultFormat;
+        return rf;
+    }
+
+    override protected function getSerializationFilter():SerializationFilter
+    {
+        var sf:SerializationFilter = serializationFilter;
+        if (sf == null)
+            return _multiService.serializationFilter;
+        return sf;
+    }
+
+    override protected function getHeaders():Object
+    {
+        // TODO: support combining the headers maps if both are specified
+        if (headers != null)
+            return headers;
+        else
+            return _multiService.headers;
+    }
+
+    /**
+     * Use the asyncRequest from the parent service
+     */
+    override mx_internal function get asyncRequest():AsyncRequest
+    {
+        // TODO: is this safe?  should we do this in RemoteObject etc. Minimally we
+        // need to propagate the multiService.destination to the AsyncRequest if we
+        // go with the default implementation of per-operation asyncRequest instances.
+        return _multiService.asyncRequest;
+    }
+}
+
+}


type PhongMaterial as Object in order to accept uint or Vector4

--- src/aerys/minko/render/material/phong/PhongMaterial.as
+++ src/aerys/minko/render/material/phong/PhongMaterial.as
@@ -70,12 +70,12 @@
 			setProperty(PhongProperties.DIFFUSE_MULTIPLIER, value);
 		}

-		public function get specular() : Vector4
-		{
-			return getProperty(PhongProperties.SPECULAR) as Vector4;
-		}
-
-		public function set specular(value : Vector4) : void
+		public function get specular() : Object
+		{
+			return getProperty(PhongProperties.SPECULAR) as Object;
+		}
+
+		public function set specular(value : Object) : void
 		{
 			setProperty(PhongProperties.SPECULAR, value);
 		}


move more logic into progressive parsing callback related to https://github.com/mangui/HLSprovider/issues/140

--- src/org/mangui/HLS/streaming/FragmentLoader.as
+++ src/org/mangui/HLS/streaming/FragmentLoader.as
@@ -121,8 +121,9 @@
         private var _prev_video_dts : Number;
         /* demux instance */
         private var _demux : Demuxer;
-        private var _audioTags : Vector.<Tag>;
-        private var _videoTags : Vector.<Tag>;
+        private var _audio_tags_found : Boolean;
+        private var _video_tags_found : Boolean;
+        private var _tags : Vector.<Tag>;

         /** Create the loader. **/
         public function FragmentLoader(hls : HLS) : void {
@@ -263,8 +264,9 @@
             if (_fragByteArray == null) {
                 _fragByteArray = new ByteArray();
                 _fragWritePosition = 0;
-                _audioTags = new Vector.<Tag>();
-                _videoTags = new Vector.<Tag>();
+                _tags = new Vector.<Tag>();
+                _audio_tags_found = false;
+                _video_tags_found = false;
                 _min_audio_pts = Number.POSITIVE_INFINITY;
                 _max_audio_pts = Number.NEGATIVE_INFINITY;
                 _min_video_pts = Number.POSITIVE_INFINITY;
@@ -827,24 +829,26 @@
             var tag : Tag;
             // Audio PTS/DTS normalization + min/max computation
             for each (tag in audioTags) {
+                _audio_tags_found = true;
                 tag.pts = PTS.normalize(_prev_audio_pts, tag.pts);
                 tag.dts = PTS.normalize(_prev_audio_dts, tag.dts);
                 _min_audio_pts = Math.min(_min_audio_pts, tag.pts);
                 _max_audio_pts = Math.max(_max_audio_pts, tag.pts);
                 _prev_audio_pts = tag.pts;
                 _prev_audio_dts = tag.dts;
-                _audioTags.push(tag);
+                _tags.push(tag);
             }

             // Video PTS/DTS normalization + min/max computation
             for each (tag in videoTags) {
+                _video_tags_found = true;
                 tag.pts = PTS.normalize(_prev_video_pts, tag.pts);
                 tag.dts = PTS.normalize(_prev_video_dts, tag.dts);
                 _min_video_pts = Math.min(_min_video_pts, tag.pts);
                 _max_video_pts = Math.max(_max_video_pts, tag.pts);
                 _prev_video_pts = tag.pts;
                 _prev_video_dts = tag.dts;
-                _videoTags.push(tag);
+                _tags.push(tag);
             }
         }

@@ -857,7 +861,7 @@
             // reset IO error, as if we reach this point, it means fragment has been successfully retrieved and demuxed
             _bIOError = false;

-            if (_audioTags.length == 0 && _videoTags.length == 0) {
+            if (!_audio_tags_found && !_video_tags_found) {
                 hlsError = new HLSError(HLSError.FRAGMENT_PARSING_ERROR, _last_segment_url, "error parsing fragment, no tag found");
                 _hls.dispatchEvent(new HLSEvent(HLSEvent.ERROR, hlsError));
             }
@@ -865,19 +869,16 @@
             // Tags used for PTS analysis
             var min_pts : Number = Number.POSITIVE_INFINITY;
             var max_pts : Number = Number.NEGATIVE_INFINITY;
-            var ptsTags : Vector.<Tag>;
-            if (_audioTags.length > 0) {
-                ptsTags = _audioTags;
+            if (_audio_tags_found) {
                 min_pts = _min_audio_pts;
                 max_pts = _max_audio_pts;
                 Log.debug("m/M audio PTS:" + min_pts + "/" + max_pts);
             }

-            if (_videoTags.length > 0) {
+            if (_video_tags_found) {
                 Log.debug("m/M video PTS:" + _min_video_pts + "/" + _max_video_pts);
-                if (_audioTags.length == 0) {
+                if (!_audio_tags_found) {
                     // no audio, video only stream
-                    ptsTags = _videoTags;
                     min_pts = _min_video_pts;
                     max_pts = _max_video_pts;
                 } else {
@@ -904,17 +905,8 @@
                 }
             }

-            var tags : Vector.<Tag> = new Vector.<Tag>();
-            // Push regular tags into buffer.
-            for each (var vtag : Tag in _videoTags) {
-                tags.push(vtag);
-            }
-            for each (var atag : Tag in _audioTags) {
-                tags.push(atag);
-            }
-
             // report audio-only segment
-            if (_videoTags.length == 0) {
+            if (!_video_tags_found) {
                 _hls.dispatchEvent(new HLSEvent(HLSEvent.AUDIO_ONLY));
             }

@@ -949,7 +941,7 @@
                 var start_offset : Number = _levels[_level].updateFragment(_seqnum, true, min_pts, max_pts);
                 _hls.dispatchEvent(new HLSEvent(HLSEvent.PLAYLIST_DURATION_UPDATED, _levels[_level].duration));
                 _fragment_loading = false;
-                _callback(tags, min_pts, max_pts, _hasDiscontinuity, start_offset);
+                _callback(_tags, min_pts, max_pts, _hasDiscontinuity, start_offset);
                 _pts_loading_in_progress = false;
                 _hls.dispatchEvent(new HLSEvent(HLSEvent.FRAGMENT_LOADED, metrics));
                 _fragment_first_loaded = true;


Removed OSMF support from DashContext class

--- src/main/actionscript/com/castlabs/dash/DashContext.as
+++ src/main/actionscript/com/castlabs/dash/DashContext.as
@@ -63,14 +63,10 @@
 import flash.net.NetStream;
 import flash.utils.ByteArray;

-import org.osmf.traits.LoadTrait;
-import org.osmf.traits.TimeTrait;
-
 public class DashContext {
     private static var _instance:DashContext;

     private static var _console:Console;
-    private static var _dashNetLoader:DashNetLoader;
     private static var _smoothMonitor:SmoothMonitor;
     private static var _bandwidthMonitor:BandwidthMonitor;
     private static var _muxer:Muxer;
@@ -98,14 +94,6 @@
         return _console;
     }

-    public function get dashNetLoader():DashNetLoader {
-        if (_dashNetLoader == null) {
-            _dashNetLoader = new DashNetLoader(this);
-        }
-
-        return _dashNetLoader;
-    }
-
     public function get smoothMonitor():SmoothMonitor {
         if (_smoothMonitor == null) {
             _smoothMonitor = new SmoothMonitor(this);
@@ -171,15 +159,12 @@
     }

     public function buildDashNetStream(connection:NetConnection):DashNetStream {
-        return new DashNetStream(this, connection);
-    }
-
-    public function buildDashTimeTrait(stream:DashNetStream, duration:Number):DashTimeTrait {
-        return new DashTimeTrait(stream, duration);
-    }
-
-    public function buildDashSeekTrait(temporal:TimeTrait, loadTrait:LoadTrait, netStream:NetStream):DashSeekTrait {
-        return new DashSeekTrait(temporal, loadTrait, netStream);
+        var netStream:DashNetStream = new DashNetStream(this, connection);
+
+		var smoothMonitor:SmoothMonitor = this.smoothMonitor;
+        smoothMonitor.appendListeners(netStream);
+
+		return netStream;
     }

     public function buildManifestLoader(url:String):ManifestLoader {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4598
Author:   preilly@adobe.com
Date:     2009-01-20T18:45:04.192515Z

Log Message:
-----------
Fixed some approval FlexUnit tests.

tests Passed: checkintests

Needs QA: YES

Needs DOC: NO

API Change: NO

Reviewer: Carol

Code-level description of changes:

  Modified watchXML() and unwatchXML() to work with XMLList's of
  length greater than 1.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/XMLNotifier.as

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

--- frameworks/projects/framework/src/mx/utils/XMLNotifier.as
+++ frameworks/projects/framework/src/mx/utils/XMLNotifier.as
@@ -121,24 +121,40 @@
      */
     public function watchXML(xml:Object, notifiable:IXMLNotifiable, uid:String = null):void
     {
-		// First make sure the xml node has a notification function.
-    	var watcherFunction:Object = xml.notification();
-    	if (!(watcherFunction is Function))
-		{
-    		watcherFunction = initializeXMLForNotification();
-			xml.setNotification(watcherFunction as Function);
-			if (uid && watcherFunction["uid"] == null)
-				watcherFunction["uid"] = uid;
-		}
-
-    	// Watch lists are maintained on the notification function.
-		var xmlWatchers:Dictionary;
-        if (watcherFunction["watched"] == undefined)
-        	watcherFunction["watched"] = xmlWatchers = new Dictionary(true);
+        if ((xml is XMLList) && xml.length() > 1)
+        {
+            for each(var item:Object in xml)
+            {
+                watchXML(item, notifiable, uid);
+            }
+        }
         else
-        	xmlWatchers = watcherFunction["watched"];
-
-        xmlWatchers[notifiable] = true;
+        {
+            // An XMLList object behaves like XML when it contains one
+            // XML object.  Casting to an XML object is necessary to
+            // access the notification() function.
+            var xmlItem:XML = XML(xml);
+
+            // First make sure the xml node has a notification function.
+            var watcherFunction:Object = xmlItem.notification();
+
+            if (!(watcherFunction is Function))
+            {
+                watcherFunction = initializeXMLForNotification();
+                xmlItem.setNotification(watcherFunction as Function);
+                if (uid && watcherFunction["uid"] == null)
+                    watcherFunction["uid"] = uid;
+            }
+
+            // Watch lists are maintained on the notification function.
+            var xmlWatchers:Dictionary;
+            if (watcherFunction["watched"] == undefined)
+                watcherFunction["watched"] = xmlWatchers = new Dictionary(true);
+            else
+                xmlWatchers = watcherFunction["watched"];
+
+            xmlWatchers[notifiable] = true;
+        }
     }

     /**
@@ -149,18 +165,32 @@
      */
     public function unwatchXML(xml:Object, notifiable:IXMLNotifiable):void
     {
-		var xitem:XML = XML(xml);
-
-		var watcherFunction:Object = xitem.notification();
-    	if (!(watcherFunction is Function))
-			return;
-
-		var xmlWatchers:Dictionary;
-        if (watcherFunction["watched"] != undefined)
-        {
-            xmlWatchers = watcherFunction["watched"];
-        	delete xmlWatchers[notifiable];
-
+        if ((xml is XMLList) && xml.length() > 1)
+        {
+            for each(var item:Object in xml)
+            {
+                unwatchXML(item, notifiable);
+            }
+        }
+        else
+        {
+            // An XMLList object behaves like XML when it contains one
+            // XML object.  Casting to an XML object is necessary to
+            // access the notification() function.
+            var xmlItem:XML = XML(xml);
+
+            var watcherFunction:Object = xmlItem.notification();
+
+            if (!(watcherFunction is Function))
+                return;
+
+            var xmlWatchers:Dictionary;
+
+            if (watcherFunction["watched"] != undefined)
+            {
+                xmlWatchers = watcherFunction["watched"];
+                delete xmlWatchers[notifiable];
+            }
         }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4163
Author:   gosmith@adobe.com
Date:     2008-11-21T23:05:07.953326Z

Log Message:
-----------
Coding conventions: All [SkinPart] metadata now explicitly states required="true" or required="false".

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Spinner.as
+++ frameworks/projects/spark/src/spark/components/Spinner.as
@@ -90,7 +90,7 @@
     //
     //--------------------------------------------------------------------------

-    [SkinPart]
+    [SkinPart(required="true")]

     /**
      *  A skin part that defines the  button that,
@@ -99,7 +99,7 @@
      */
     public var incrementButton:FxButton;

-    [SkinPart]
+    [SkinPart(required="true")]

     /**
      *  A skin part that defines the  button that,


No point of having get and post headers predefined, while XEP defines only using post and it has no extra headers. Other than that just added documentation.

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

--- src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
@@ -50,12 +50,12 @@
 	 * using the secure property of the allow-access-from node in the
 	 * crossdomain.xml file. But this is not recommended by Adobe.

 	 *
-	 *
For eJabberd users : if your crossdomain policy file cannot
-	 * be served by your server, this issue can be solved with an
+	 *
If your crossdomain policy file cannot
+	 * be served by your server, this issue could be solved with an
 	 * Apache proxy redirect so that any automatic Flash/Flex calls
-	 * to an URL like http://xmppserver:5280/crossdomain.xml will be
+	 * to an URL like http://xmppserver:5280/crossdomain.xml will be
 	 * redirected as an URL of your choice such as
-	 * http://webserver/crossdomain.xml

+	 * http://webserver/crossdomain.xml.

 	 *
 	 * @see http://xmpp.org/extensions/xep-0124.html
 	 * @see http://xmpp.org/extensions/xep-0206.html
@@ -63,12 +63,14 @@
 	public class XMPPBOSHConnection extends XMPPConnection implements IXMPPConnection
 	{
 		/**
+		 * Current version of the BOSH defined in the XEP and the
+		 * version which this class implements.
 		 * @default 1.6
 		 */
 		public static const BOSH_VERSION:String = "1.6";

 		/**
-		 *
+		 * Namespace used by BOSH body wrapper
 		 */
 		public static const BOSH_NS:String = "http://jabber.org/protocol/httpbind";

@@ -85,24 +87,10 @@
 		public static const HTTPS_PORT:uint = 7443;

 		/**
-		 * BOSH body element name
+		 * BOSH body wrapper element name
 		 */
 		public static const ELEMENT_NAME:String = "body";

-		/**
-		 * Keys should match URLRequestMethod constants.
-		 * @see http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequestMethod.html
-		 */
-		private static const HEADERS:Object = {
-			"POST": [],
-			"GET": [ 'Cache-Control',
-					 'no-store',
-					 'Cache-Control',
-					 'no-cache',
-					 'Pragma', 'no-cache'
-			]
-		};
-
 		private var _boshPath:String = "http-bind/";

 		private var _hold:uint = 1;
@@ -140,7 +128,7 @@

 		private var _requestQueue:Array = []; // XML

-		private var _responseQueue:Array = [];
+		private var _responseQueue:Array = []; // XML

 		private var _responseTimer:Timer;

@@ -149,6 +137,9 @@
 		 */
 		private var _rid:uint;

+		/**
+		 * Session ID, as defined by the server
+		 */
 		private var _sid:String;

 		private var _streamRestarted:Boolean;
@@ -170,7 +161,7 @@
 			this.secure = secure;
 			_responseTimer = new Timer( 0.0, 1 );
 			_responseTimer.addEventListener( TimerEvent.TIMER_COMPLETE, processResponse );
-
+
 			// Default values for super class
 			port = XMPPBOSHConnection.HTTP_PORT;
 		}
@@ -512,9 +503,20 @@
 				bindConnection();
 			}

-			if ( xmlData.@type == "terminate" )
-			{
-				dispatchError( "BOSH Error", xmlData.@condition, "", -1 );
+			// TODO: Error handling... http://xmpp.org/extensions/xep-0124.html#errorstatus
+			if ( xmlData.@type == "terminate" && xmlData.hasOwnProperty("@condition") )
+			{
+				/*
+				@condition can be:
+				 bad-request
+				 policy-violation
+				 item-not-found
+
+				 see-other-uri --> uri element
+
+				In case there is no condition, the "terminate" was not due to an error.
+				*/
+				dispatchError( xmlData.@condition, "BOSH Error", "" );
 				active = false;
 			}

@@ -596,7 +598,7 @@
 		}

 		/**
-		 *
+		 * Reset the response time if there are items in the queue
 		 */
 		private function resetResponseProcessor():void
 		{
@@ -690,20 +692,25 @@
 		/**
 		 * Connection to the server in BOSH is a simple URLRequest.
 		 *
+		 *
All information is encoded in the body of standard HTTP POST
+		 * requests and responses. Each HTTP body contains a single
+		 * body wrapper which encapsulates the XML elements
+		 * being transferred.

+		 *
 		 *
BOSH requires all incoming and outgoing data to be wrapped in
 		 * body element. That should be taken care of before possible
 		 * Stream Compression.

 		 *
 		 * @param	data ByteArray that might be compressed if enabled
+		 * @see http://xmpp.org/extensions/xep-0124.html#overview
 		 */
 		override protected function sendDataToServer( data:ByteArray ):void
 		{
 			trace("XMPPBOSHConnection::sendDataToServer. httpServer: " + httpServer);
-
+
 			var req:URLRequest = new URLRequest( httpServer );
 			req.method = URLRequestMethod.POST;
-			req.contentType = "text/xml"; // How about while compressed data?
-			req.requestHeaders = HEADERS[ req.method ];
+			req.contentType = "text/xml";
 			req.data = data;

 			var loader:URLLoader = new URLLoader();


XIFF-99: Missed something very important...

--- src/org/igniterealtime/xiff/core/XMPPRTMPConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPRTMPConnection.as
@@ -47,7 +47,7 @@

 	/**
 	 * A child of XMPPConnection, this class makes use of the
-	 * Flash RTMP connection instead of the XMLSocket.
+	 * Flash RTMP connection instead of the Socket.
 	 *
 	 * @see org.jivesoftware.xiff.core.XMPPConnection
 	 */
@@ -66,17 +66,18 @@
 			configureRedfire();
 		}

-		private function configureRedfire():void {
-
+		private function configureRedfire():void
+		{
 			NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
 			netConnection = new NetConnection();
 			netConnection.client = this;
 			netConnection.addEventListener( NetStatusEvent.NET_STATUS , netStatus );
 			netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
-			}
+		}

-		private function netStatus (evt:NetStatusEvent ):void {
+		private function netStatus (evt:NetStatusEvent ):void
+		{

 			switch(evt.info.code) {

@@ -119,23 +120,26 @@
 			}
 		}

-		private function asyncErrorHandler(event:AsyncErrorEvent):void {
-				//trace("AsyncErrorEvent: " + event);
-			}
+		private function asyncErrorHandler(event:AsyncErrorEvent):void
+		{
+			//trace("AsyncErrorEvent: " + event);
+		}

-		private function securityErrorHandler(event:SecurityErrorEvent):void {
-					//trace("securityErrorHandler: " + event);
-			}
+		private function securityErrorHandler(event:SecurityErrorEvent):void
+		{
+			//trace("securityErrorHandler: " + event);
+		}

-		overwrite protected sendDataToServer( data:ByteArray ):void
+		override protected function sendDataToServer( data:ByteArray ):void
 		{
-			netConnection.call("xmppSend", null, data.readUTFBytes());
+			netConnection.call("xmppSend", null, data.readUTFBytes(data.length));
 		}

 		override public function disconnect():void
 		{
-			if( isActive() ) {
+			if ( isActive() )
+			{
 				netConnection.close();
 				active = false;
 				loggedIn = false;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/containers/ViewStack.as
+++ frameworks/projects/mx/src/mx/containers/ViewStack.as
@@ -44,6 +44,11 @@
  *  Dispatched when the selected child container changes.
  *
  *  @eventType mx.events.IndexChangedEvent.CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="change", type="mx.events.IndexChangedEvent")]

@@ -56,12 +61,22 @@
 /**
  *  Number of pixels between the container's bottom border and its content area.
  *  The default value is 0.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingBottom", type="Number", format="Length", inherit="no")]

 /**
  *  Number of pixels between the container's top border and its content area.
  *  The default value is 0.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingTop", type="Number", format="Length", inherit="no")]

@@ -205,6 +220,11 @@
  *  @see mx.controls.LinkBar
  *  @see mx.managers.HistoryManager
  *  @see mx.managers.LayoutManager
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ViewStack extends Container implements IHistoryManagerClient
 {
@@ -218,6 +238,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function ViewStack()
     {
@@ -388,6 +413,11 @@
      *  The height of the area, in pixels, in which content is displayed.
      *  You can override this getter if your content
      *  does not occupy the entire area of the ViewStack container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function get contentHeight():Number
     {
@@ -403,6 +433,11 @@
      *  The width of the area, in pixels, in which content is displayed.
      *  You can override this getter if your content
      *  does not occupy the entire area of the ViewStack container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function get contentWidth():Number
     {
@@ -423,6 +458,11 @@
      *
      *  Override the get() method if you do not want
      *  your content to start layout at x = 0.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function get contentX():Number
     {
@@ -442,6 +482,11 @@
      *
      *  Override the get() method if you do not want
      *  your content to start layout at y = 0.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function get contentY():Number
     {
@@ -476,6 +521,11 @@
      *  @default false
      *
      *  @see mx.managers.HistoryManager
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get historyManagementEnabled():Boolean
     {
@@ -511,6 +561,11 @@
      *  resizes to the size of its current child.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get resizeToContent():Boolean
     {
@@ -545,6 +600,11 @@
      *
      *
Note: You can only set this property in an
      *  ActionScript statement, not in MXML.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get selectedChild():Container
     {
@@ -601,6 +661,11 @@
      *
Note: When you add a new child to a ViewStack
      *  container, the selectedIndex property is automatically
      *  adjusted, if necessary, so that the selected child remains selected.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get selectedIndex():int
     {
@@ -713,6 +778,11 @@
      *  container - it remains unbounded.

      *
      *  @see mx.core.UIComponent#measure()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function measure():void
     {
@@ -815,6 +885,11 @@
      *  scaleY property of the component.
      *
      *  @see mx.core.UIComponent#updateDisplayList()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
@@ -1003,6 +1078,11 @@

     /**
      *  @copy mx.managers.IHistoryManagerClient#saveState()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function saveState():Object
     {
@@ -1012,6 +1092,11 @@

     /**
      *  @copy mx.managers.IHistoryManagerClient#loadState()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function loadState(state:Object):void
     {
@@ -1043,6 +1128,11 @@
      *  Commits the selected index. This function is called during the commit
      *  properties phase when the selectedIndex (or selectedItem) property
      *  has changed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function commitSelectedIndex(newIndex:int):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12280
Author:   smgilson@adobe.com
Date:     2009-11-30T17:45:36.448234Z

Log Message:
-----------
ASDoc updates in preperation for localization

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

Modified Paths:
--------------
<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/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.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/effects/Resize.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/WipeDirection.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/effects/CrossFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/IAnimationTarget.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/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Move3D.as
+++ frameworks/projects/spark/src/spark/effects/Move3D.as
@@ -62,6 +62,8 @@
  *  </pre>
  *
  *  @see spark.effects.Move
+ *
+ *  @includeExample examples/Move3DEffectExample.mxml
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


WIP: Enough to play video with no seeking.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -118,6 +118,69 @@
 		private var neverBuffered:Boolean = true; // Set after first buffering event.
 		private var bufferBias:Number = 0.0; // Used to forcibly add more time to the buffer based on other logic.

+		// Explicit buffer management
+		private var pendingTags:Vector.<FLVTag> = new Vector.<FLVTag>;
+		private var bufferFeedMin:Number = 0.25; // How many seconds to actually keep fed into the native buffer.
+		private var bufferFeedAmount:Number = 0.1; // How many seconds of data to feed when we feed.
+		private var scanningForIFrame:Boolean = false; // When true, we are scanning video tags until we hit a keyframe/I-frame.
+		private var bufferParser:FLVParser = new FLVParser(false);
+
+		// Operations on buffer
+		/**
+			State/Logic
+				isBackInTime = if (lastTime - newTime) > 100ms
+				scanningForIFrame
+
+				if isBackInTime then
+					scanningForIFrame = true
+
+				if scanningForIFrame && !iFrame then
+					skip it
+
+				if scanningForIFrame && iFrame then
+					scanningForIFrame = false
+					splice and add IFrame, resume adding as normal
+
+			Questions
+				Do I splice audio or just add to end?
+					Can we just sync with video?
+				Do I splice script or just add to end?
+				Is it a bad idea to maintain a single vector for this?
+					Will we hate splice/trim?
+					We could LL but not needed till we see perf #s
+
+			Append tag
+				if new tag goes back in time...
+				find the first i-frame in the new section at or after buffered tags
+				splice at that point
+
+			Feed buffer
+				If >= min in buffer, return
+				add tags until bufferfeedamount added
+				trim buffer
+
+			Flush? - not needed?
+				We resync on iframe so we'll catch up anyway.
+				I-frame sync is an instant decision so we don't have to reset state
+
+			To hook up:
+				line 1156 - processAndAppend loop
+				line 2224 - attemptAppendBytes
+					- Accept everything here
+					- check to push on every append?
+					- filter if needed
+
+				Need to flush internal buffer when on seek/reset appendBytesAction
+
+			Concerns:
+				Now potentially running three layers of parsing
+					Can we couple things a bit more directly to minimize re-parsing?
+					probably, but we can do it "raw" first to get it going
+				Do we even need enhanced seeking?
+					yes - this allows us to seek through P frames to a specific time.
+
+		*/
+
 		/**
 		 * Constructor.
 		 *
@@ -202,7 +265,7 @@
 			var header:FLVHeader = new FLVHeader();
 			var headerBytes:ByteArray = new ByteArray();
 			header.write(headerBytes);
-			attemptAppendBytes(headerBytes);
+			appendBytes(headerBytes);

 			// Initialize ourselves.
 			_mainTimer.start();
@@ -826,6 +889,9 @@
 		{
 			// Trigger buffer update.
 			updateBufferTime();
+
+			// Feed buffer.
+			keepBufferFed();

 			// Check for seeking state.
 			if (seeking && time != timeBeforeSeek && _state != HTTPStreamingState.HALT)
@@ -886,8 +952,8 @@
 						// If the timer doesn't yet exist, create it, setting the delay to twice the maximum desired buffer time
 						streamTooSlowTimer = new Timer(_desiredBufferTime_Max * 2000);

-						streamTooSlowTimer.addEventListener(TimerEvent.TIMER, function(timerEvent:TimerEvent = null):void {
-
+						streamTooSlowTimer.addEventListener(TimerEvent.TIMER,
+							function(timerEvent:TimerEvent = null):void {
 							try
 							{
 								// Check we have a valid stream to switch to.
@@ -1131,7 +1197,7 @@

 							// we can reset the recovery state if we are able to process some bytes and the time has changed since the last error
 							if (time != lastErrorTime && recoveryStateNum == URLErrorRecoveryStates.NEXT_SEG_ATTEMPTED)
-							{
+							{
 								errorSurrenderTimer.reset();
 								firstSeekForwardCount = -1;
 								recoveryStateNum = URLErrorRecoveryStates.IDLE;
@@ -1898,8 +1964,7 @@
 						return false;
 					}
 				}
-			}
-
+			}

 			if (_enhancedSeekTarget < 0)
 			{
@@ -2009,7 +2074,6 @@
 							_unmuteTag.codecID = codecID;
 							_unmuteTag.frameType = FLVTagVideo.FRAME_TYPE_INFO;
 							_unmuteTag.infoPacketValue = FLVTagVideo.INFO_PACKET_SEEK_END;
-
 							bytes = new ByteArray();
 							_unmuteTag.write(bytes);
 							_flvParserProcessed += bytes.length;
@@ -2160,21 +2224,94 @@
 			}
 		}

-		/**
-		 * @private
-		 *
-		 * Attempts to use the appendsBytes method. Do noting if this is not compiled
+		private function keepBufferFed():void
+		{
+			// Check the actual amount of content present.
+			if(super.bufferLength >= bufferFeedMin)
+				return;
+
+			var curTagOffset:int = 0;
+
+			while(super.bufferLength < (bufferFeedMin + bufferFeedAmount)
+			      && (pendingTags.length - curTagOffset) > 0)
+			{
+				// Append some tags.
+				var buffer:ByteArray = new ByteArray();
+				var tag:FLVTag = pendingTags[curTagOffset];
+				buffer.length = FLVTag.TAG_HEADER_BYTE_COUNT + tag.dataSize;
+				tag.write(buffer);
+				curTagOffset++;
+
+				// Do writing.
+				trace("Writing " + buffer.length + " bytes");
+				if(writeToMasterBuffer)
+					_masterBuffer.writeBytes(buffer);
+				appendBytes(buffer);
+			}
+
+			// Erase the consumed tags.
+			if(curTagOffset)
+			{
+				trace("Submitted " + curTagOffset + " tags, " + (pendingTags.length - curTagOffset) + " left");
+				pendingTags.splice(0, curTagOffset);
+			}
+		}
+
+		public override function get bufferLength():Number
+		{
+			if(pendingTags.length == 0)
+				return super.bufferLength;
+
+			// Get active range of pending tags.
+			var minTime:Number = Number.MAX_VALUE, maxTime:Number = 0.0;
+			for(var i:int=0; i<pendingTags.length; i++)
+			{
+				var curTag:FLVTag = pendingTags[i];
+				var curTime:Number = curTag.timestamp;
+				if(curTime < minTime)
+					minTime = curTime;
+				if(curTime > maxTime)
+					maxTime = curTime;
+			}
+
+			var len:Number = (maxTime - minTime) / 1000 + super.bufferLength;
+			trace("CALCULATED LENGTH TO BE " + len + " (" + (maxTime/1000) + " , " + (minTime/1000) + ", " + super.bufferLength + ")");
+			return len;
+		}
+
+
+		private function onBufferTag(tag:FLVTag):Boolean
+		{
+			trace("Got tag " + tag);
+			// Do filter logic here.
+
+			// Add to the queue.
+			pendingTags.push(tag);
+
+			return true;
+		}
+
+		/**
+		 * @private
+		 *
+		 * Attempts to use the appendsBytes method. Do nothing if this is not compiled
 		 * for an Argo player or newer.
 		 */
 		private function attemptAppendBytes(bytes:ByteArray):void
 		{
-			if(writeToMasterBuffer)
-				_masterBuffer.writeBytes(bytes);
-
-			CONFIG::FLASH_10_1
-			{
-				appendBytes(bytes);
-			}
+			trace("Parsing " + bytes.length);
+
+			// Parse to FLV tags and insert into queue.
+			bufferParser.parse(bytes, true, onBufferTag);
+
+			// Sort tags.
+			pendingTags.sort(function(a:FLVTag, b:FLVTag):int
+			{
+				return a.timestamp - b.timestamp;
+			});
+
+			// Feed Flash buffer if needed.
+			keepBufferFed();
 		}

 		/**


Tweaking min buffer to account for larger GOP sizes.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -120,7 +120,7 @@

 		// Explicit buffer management
 		private var pendingTags:Vector.<FLVTag> = new Vector.<FLVTag>;
-		private var bufferFeedMin:Number = 0.25; // How many seconds to actually keep fed into the native buffer.
+		private var bufferFeedMin:Number = 1.0; // How many seconds to actually keep fed into the native buffer.
 		private var bufferFeedAmount:Number = 0.1; // How many seconds of data to feed when we feed.
 		private var scanningForIFrame:Boolean = false; // When true, we are scanning video tags until we hit a keyframe/I-frame.
 		private var bufferParser:FLVParser = new FLVParser(false); // Used to parse incoming FLV stream to buffer. TODO: Refactor to be unnecessary.


Recovery Near End of Stream Bug Fix Fixed an issue where the player would seek past the end of the stream in the event of a URL error recovery near the end of the video

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -1863,7 +1863,7 @@
 					var index:int = 0;
 					var seekForwardTime:Number = currentManifest.segments[currentIndex].duration -
 												 (time - currentManifest.segments[currentIndex].startTime) + seekForwardBuffer;
-					for (index = 0; index < seekForwardCount; index++)
+					for (index = 1; index <= seekForwardCount; index++)
 					{
 						// don't try to seek past the last segment
 						if (currentIndex + index >= manifestLength -1)


passing sqlParams for deprecated column lookup

--- WeaveData/src/weave/data/DataSources/WeaveDataSource.as
+++ WeaveData/src/weave/data/DataSources/WeaveDataSource.as
@@ -545,7 +545,7 @@
 			}
 			else // backwards compatibility - search using metadata
 			{
-				getMetadata(proxyColumn, [ColumnMetadata.DATA_TYPE, 'dataTable', 'name', 'year'], false, params);
+				getMetadata(proxyColumn, [ColumnMetadata.DATA_TYPE, 'dataTable', 'name', 'year', 'sqlParams'], false, params);
 				// dataType is only used for backwards compatibility with geometry collections
 				if (params[ColumnMetadata.DATA_TYPE] != DataType.GEOMETRY)
 					delete params[ColumnMetadata.DATA_TYPE];


Change 20080516-bargull-hKu by bargull@dell--p4--2-53 on 2008-05-16 20:30:10
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Setting text-format resets inputtext

New Features:

Bugs Fixed: LPP-6007 - "edittext deletes data on setAttribute('enabled',false) in 4.0.12"

Technical Reviewer: max
QA Reviewer: (pending)
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:
The LzInputTextSprite#text member doesn't contain the current text for a inputtext-sprite, to get the actual text, you need to query the flash-textfield through LzInputTextSprite#getText().

Tests:

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@9209 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c

--- WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as
+++ WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as
@@ -460,6 +460,13 @@
 }

 /**
+  * Returns the field's text.
+  */
+LzTextSprite.prototype.getText = function() {
+    return this.text;
+}
+
+/**
   * setText sets the text of the field to display
   * @param String t: the string to which to set the text
   */
@@ -604,7 +611,7 @@
     this.fontname = fname;
     this.__setFormat();
     // force recompute of height if needed
-    this.setText( this.text );
+    this.setText( this.getText() );
 }

 /**
@@ -614,7 +621,7 @@
     this.fontsize = fsize;
     this.__setFormat();
     // force recompute of height if needed
-    this.setText( this.text );
+    this.setText( this.getText() );

 }

@@ -625,7 +632,7 @@
     this.fontstyle = fstyle;
     this.__setFormat();
     // force recompute of height if needed
-    this.setText( this.text );
+    this.setText( this.getText() );
 }

 /**
@@ -635,7 +642,7 @@
 LzTextSprite.prototype.setColor = function ( c ){
     this.colorstring = "#" + c.toString( 16 );
     this.__setFormat();
-    this.setText( this.text );
+    this.setText( this.getText() );
 }

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 11863
Author:   smgilson@adobe.com
Date:     2009-11-16T20:29:57.198196Z

Log Message:
-----------
ASDoc updates.

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

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

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

--- frameworks/projects/spark/src/spark/components/BorderContainer.as
+++ frameworks/projects/spark/src/spark/components/BorderContainer.as
@@ -151,7 +151,9 @@
  *  the appearance of the border and background fill of the container.
  *
  *
Note: Becasue you use CSS styles and class properties to control
- *  the appearance of the Border container, you cannot create a custom skin for it.

+ *  the appearance of the Border container, you typically do not create a custom skin for it.
+ *  If you do create a custom skin, your skin class should apply any styles to control the
+ *  appearance of the container.

  *
  *
The Border control has the following default characteristics:

  *

@@ -257,7 +259,7 @@
     private var _borderStroke:IStroke;

     /**
-     *  Defines the border of the Border container.
+     *  Defines the stroke of the Border container.
      *  Setting this property override the borderAlpha,
      *  borderColor, borderStyle, borderVisible,
      *  and borderWeight styles.


Added level descriptions; fixed module list close behavior; fixed recentmodule allowable #

--- src/LevelStates/LevelState.as
+++ src/LevelStates/LevelState.as
@@ -321,7 +321,7 @@
 						listOpen = LIST_NONE;
 						makeUI();
 					}
-				}, "Enter "+MODE_NAMES[newMode]+" mode", HOTKEYS[newMode]).setParam(newMode).setSelected(newMode == mode));
+				}, "Enter "+MODE_NAMES[newMode]+" mode. "+MODE_DESCRIPTIONS[newMode], HOTKEYS[newMode]).setParam(newMode).setSelected(newMode == mode));
 			}

 			var modeList:ButtonList = new ButtonList(10, 10, modeSelectButtons, function onListClose():void {
@@ -411,6 +411,11 @@
 						addRecentModule(moduleType);

 						preserveModule = true;
+
+						if (listOpen == LIST_CATEGORIES) {
+							listOpen = LIST_NONE;
+							makeUI();
+						}
 					}, "").setParam(moduleType).setTooltipCallback(Module.getArchetype(moduleType).getDescription));
 				}
 			}
@@ -462,6 +467,11 @@
 					addRecentModule(moduleType);

 					preserveModule = true;
+
+					if (listOpen == LIST_MODULES) {
+						listOpen = LIST_NONE;
+						makeUI();
+					}
 				}, "").setParam(moduleType).setTooltipCallback(Module.getArchetype(moduleType).getDescription));
 			}

@@ -487,7 +497,7 @@
 		protected function addRecentModule(moduleType:Class):void {
 			if (recentModules.indexOf(moduleType) >= 0)
 				recentModules.splice(recentModules.indexOf(moduleType), 1);
-			else if (recentModules.length > 3)
+			else if (recentModules.length >= 3)
 				recentModules.pop();
 			recentModules.unshift( moduleType);
 		}
@@ -1100,6 +1110,10 @@
 		private const MODE_SPRITES:Array = [_module_sprite, _connect_sprite, _remove_sprite, _delay_sprite];
 		private const HOTKEYS:Array = [new Key("THREE"), new Key("ONE"), new Key("TWO"), new Key("FOUR")];
 		private const MODE_NAMES:Array = ["module", "wire", "delete", "delay"];
+		private const MODE_DESCRIPTIONS:Array = ["Select modules to place from the drop-down menu; click to move or press DELETE to delete.",
+												 "Click and drag to place wires; place DELETE to delete them.",
+												 "Click to delete modules and wires.",
+												 "Mouse to see delay starting from modules; click to see delays along paths."];

 		[Embed(source = "../../lib/art/ui/eye.png")] private const _view_normal_sprite:Class;
 		[Embed(source = "../../lib/art/ui/eye_delayb.png")] private const _view_delay_sprite:Class;


MobilePasswordField documentation, sort of

--- raw/src/org/yellcorp/lib/text/MobilePasswordField.as
+++ raw/src/org/yellcorp/lib/text/MobilePasswordField.as
@@ -16,8 +16,22 @@
 [Event(name="change", type="flash.events.Event")]
 public class MobilePasswordField extends EventDispatcher
 {
+    /**
+     * The length of time, in milliseconds, to show the most recently entered
+     * character. If there is no other input after this time, the character will
+     * be replaced with maskCharacter. If there is further input,
+     * the currently displayed character will be hidden early. If multiple
+     * characters are inserted in a single change event, only the last of those
+     * characters will be shown.
+     */
     public var hideCharacterDelay:Number = 1000;
-    public var maskCharacter:String = String.fromCharCode(0x2022); // U+2022 BULLET
+
+    /**
+     * The character with which to replace entered characters. The default is
+     * Unicode U+2022 BULLET. If the TextField uses an embedded font, be sure
+     * to include this character, or use a device font instead.
+     */
+    public var maskCharacter:String = String.fromCharCode(0x2022);
     private var _text:String;

     private var textField:TextField;
@@ -35,12 +49,39 @@
     private static const DELETE_BEFORE:uint = 2;
     private static const DELETE_AFTER:uint = 3;

+    /**
+     * Create an instance of a new MobilePasswordField.
+     *
+     * @param  textField  The TextField to listen to and control. This instance
+     *                    must have exclusive control over this object.
+     */
     public function MobilePasswordField(textField:TextField)
     {
         super();
         this.textField = textField;
         endInternalEdit();
         textField.text = _text = "";
+    }
+
+    /**
+     * The text stored in the target TextField. Reading the text property
+     * from the TextField directly will return the current visible content of
+     * the TextField - i.e. mask characters with a possible single input
+     * character.
+     */
+    public function get text():String
+    {
+        return _text;
+    }
+
+    public function set text(new_text:String):void
+    {
+        if (new_text != _text)
+        {
+            _text = new_text;
+            hideAllCharacters();
+            dispatchEvent(new Event(Event.CHANGE));
+        }
     }

     private function onFieldKeyUp(event:KeyboardEvent):void
@@ -83,16 +124,17 @@

     private function onFieldChange(event:Event):void
     {
-        beginInternalEdit();
-
         if (action == INSERT)
         {
             _text = StringUtil.splice(_text, selectionStart, selectionEnd, insertedText);
         }
         else if (textField.length < _text.length)
         {
+            // deletion has happened
             if (selectionStart == selectionEnd)
             {
+                // there was no selection, so we need to look at the value we
+                // stored in response to the keyCode to see what to do
                 if (action == DELETE_AFTER)
                 {
                     _text = StringUtil.splice(_text, selectionStart, selectionStart + 1, "");
@@ -113,6 +155,8 @@
             }
             else
             {
+                // there was a selection, so in all cases, remove the selected
+                // characters from the string
                 _text = StringUtil.splice(_text, selectionStart, selectionEnd, "");
             }
         }
@@ -129,8 +173,6 @@

         action = UNKNOWN;
         insertedText = null;
-        endInternalEdit();
-        trace(_text);
     }

     private function revealCharacter(charIndex:int):void
@@ -175,21 +217,6 @@
     {
         selectionStart = textField.selectionBeginIndex;
         selectionEnd = textField.selectionEndIndex;
-    }
-
-    public function get text():String
-    {
-        return _text;
-    }
-
-    public function set text(new_text:String):void
-    {
-        if (new_text != _text)
-        {
-            _text = new_text;
-            hideAllCharacters();
-            dispatchEvent(new Event(Event.CHANGE));
-        }
     }

     private function endInternalEdit():void


don't show explosions for archons in HUD

--- src/battlecode/client/viewer/render/ExplosionAnimation.as
+++ src/battlecode/client/viewer/render/ExplosionAnimation.as
@@ -72,11 +72,11 @@
         }

         private function getExplosionImage():Class {
-            if (round < 8) {
-                return ImageAssets["EXPLODE_" + (round + 1)];
-            } else if (overrideSize) {
+            if (overrideSize) {
                 // TODO a less ghetto way of indicating this exists in the HUD
                 return ImageAssets.ARCHON_NEUTRAL;
+            } else if (round < 8) {
+                return ImageAssets["EXPLODE_" + (round + 1)];
             } else {
                 return ImageAssets.EXPLODE_8;
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17942
Author:   chiedozi@adobe.com
Date:     2010-09-29T22:17:47.195538Z

Log Message:
-----------
Renamed ViewHistoryData to ViewProxy
Added a context parameter to pushView that allows context information to be passed to a new view
View.returnedObject was moved to ViewNavigator and is now typed ViewReturnObject.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewReturnObject.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewHistoryData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewHistoryData.as" copyfrom-rev="17889" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewProxy.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
@@ -16,7 +16,7 @@
 import flash.utils.IDataOutput;
 import flash.utils.IExternalizable;

-import spark.components.supportClasses.ViewHistoryData;
+import spark.components.supportClasses.ViewProxy;

 import mx.core.mx_internal;
 use namespace mx_internal;
@@ -52,7 +52,7 @@
     {
         super();

-        _source = new Vector.<ViewHistoryData>();
+        _source = new Vector.<ViewProxy>();
     }

     //--------------------------------------------------------------------------
@@ -64,7 +64,7 @@
     /**
      *  @private
      */
-    private var _source:Vector.<ViewHistoryData>;
+    private var _source:Vector.<ViewProxy>;

     /**
      *  @private
@@ -74,7 +74,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    mx_internal function get source():Vector.<ViewHistoryData>
+    mx_internal function get source():Vector.<ViewProxy>
     {
         return _source;
     }
@@ -117,7 +117,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    mx_internal function get topView():ViewHistoryData
+    mx_internal function get topView():ViewProxy
     {
         return _source.length == 0 ? null : _source[_source.length - 1];
     }
@@ -146,6 +146,7 @@
      *
      *  @param factory The class of the View to create.
      *  @param data The data object to pass to the view when it is created
+     *  @param context The context identifier to pass to the view when created
      *
      *  @return The data structure that represents the current view.
      *
@@ -154,9 +155,9 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function push(factory:Class, data:Object):ViewHistoryData
-    {
-        var viewData:ViewHistoryData = new ViewHistoryData(factory, data);
+    public function push(factory:Class, data:Object, context:String = null):ViewProxy
+    {
+        var viewData:ViewProxy = new ViewProxy(factory, data, context);
         _source.push(viewData);

         return viewData;
@@ -172,7 +173,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function pop():ViewHistoryData
+    public function pop():ViewProxy
     {
         return _source.pop();
     }
@@ -226,7 +227,7 @@
      */
     public function readExternal(input:IDataInput):void
     {
-        _source = input.readObject() as Vector.<ViewHistoryData>;
+        _source = input.readObject() as Vector.<ViewProxy>;
     }
 }
 }


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

--- frameworks/projects/framework/src/mx/core/ITextInput.as
+++ frameworks/projects/framework/src/mx/core/ITextInput.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.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 13666
Author:   jimurphy@adobe.com
Date:     2010-01-20T19:05:30.983340Z

Log Message:
-----------
Merge /branches/4.0.0 revs 13595,13601,13613,13614,13615,13616,13619,13638,13644,13646,13647,13652,13653,13654,13665 -> trunk

checkintests pass

4.0.0 changes:
------------------------------------------------------------------------
r13665 | jimurphy@adobe.com

remove the call to clean-temp before the package staging starts.  Removing the temp directory before the copy was removing the config updates that happen before this target is called.
SDK-25160

------------------------------------------------------------------------
r13595 | jimurphy@adobe.com | 2010-01-18 18:24:33 -0500 (Mon, 18 Jan 2010) | 15 lines

split airframework from airspark docs
-delete airframework/bundles/[locale]/docs/spark xml's
-add airspark/bundles/[locale]/docs/spark xml's
-added airspark/bundles/en_US/ english properties
-modified airspark/build to:
  -use en_US properties for each of the locales until localized
  -use the localized spark doc files for each locale in the fat-swc target

SDK-25065
------------------------------------------------------------------------

------------------------------------------------------------------------
r13601 | preilly@adobe.com | 2010-01-18 19:54:16 -0500 (Mon, 18 Jan 2010) | 25 lines

* Fixed a regression caused by revision 13531.

SDK-25115 Code-level description of changes:

  StyleDef.java

    Modified extractImports() by adding a "null" value check for
    ClassReferences.

    Modified processReference() to use Reference's updated
    constructor.

  Reference.java

    Modified constructor by adding a isClassReference parameter.

    Removed setClassReference(), because it's no longer used.

------------------------------------------------------------------------

------------------------------------------------------------------------
r13613 | jimurphy@adobe.com | 2010-01-18 22:23:05 -0500 (Mon, 18 Jan 2010) | 14 lines

Integration:
from branch: releases/ct/yuki/sonoma/...
afe.jar: 62.418002
rideau.jar: 62.417355

https://bugs.adobe.com/jira/browse/SDK-25018
SDK-25018 https://bugs.adobe.com/jira/browse/SDK-25012
SDK-25012
------------------------------------------------------------------------

------------------------------------------------------------------------
r13614 | jimurphy@adobe.com | 2010-01-18 22:56:49 -0500 (Mon, 18 Jan 2010) | 9 lines

additional update for airspark, added packages.dita to svn and instead of unzipping properties from airspark_rb the locales will simply use the files from the en_US directory until the localized files are submitted.

SDK-25065
------------------------------------------------------------------------

------------------------------------------------------------------------
r13615 | jimurphy@adobe.com | 2010-01-18 23:59:14 -0500 (Mon, 18 Jan 2010) | 12 lines

fix airframework/build.xml so the en_US _rb does not become corrupt when the other.locales target is run.
-removed the redundant en_US call in the other.locales target
-added a clean for locales that will only remove the locale being built before rebuild - not all of the locales
-add updated dita that does not contain spark references

------------------------------------------------------------------------

------------------------------------------------------------------------
r13616 | rfrishbe@adobe.com | 2010-01-19 00:01:44 -0500 (Tue, 19 Jan 2010) | 10 lines

Fixing a VideoPlayer bug, SDK-25116 (When switching the video source while another video is loading, the switch doesn't always work).  It's similar to SDK-24933.  In the previous fix, we cleaned up the asynchronous load when we decided we wanted to just play the video.  However, we should also clean up this asynchronous load when the source changes.  This code could be refactored later, and I put a TODO in for that.
SDK-25116 SDK-24933
Also, I'm cleaning up some docs around some scenarios when the source is switched that explicitly won't work.  At some point, we could make these work, but I don't think it's worth the extra effort/code given how likely these are that a developer or user would run in to them.

SDK-25116
------------------------------------------------------------------------

------------------------------------------------------------------------
r13619 | egeorgie@adobe.com | 2010-01-19 01:23:05 -0500 (Tue, 19 Jan 2010) | 11 lines

Fix bug: Scaling a DateChooser inside a Canvas causes RTE http://bugs.adobe.com/jira/browse/SDK-25087
SDK-25087
The offending code was in the PostScaleAdapter - missing check for zero when dividing by the scale.

SDK-25087
------------------------------------------------------------------------

------------------------------------------------------------------------
r13638 | jimurphy@adobe.com | 2010-01-19 17:51:32 -0500 (Tue, 19 Jan 2010) | 14 lines

update to ensure fat-swcs contain a proper packages.dita file.
-removed all packages.dita files from all langs where it was checked in
-at the end of asdoc task we now copy the packages.dita out to the en_US project dir being built.  This is where the fat-swc task will pick up this file and place it in the docs directory of the _rb.swc
-had to change the order of the build process slightly - old order: ant clean main other.locales doc - new order: ant clean main doc other.locales
 - I removed other.locales from main in the root/build.xml and made it it's own task and also removed the property locales.  so to build other.locales, the doc target needs to run first (will add a depends at some point).
 -in the internal build.xml I have changed to use the new order

------------------------------------------------------------------------

------------------------------------------------------------------------
r13644 | jimurphy@adobe.com | 2010-01-19 18:55:59 -0500 (Tue, 19 Jan 2010) | 11 lines

fix the build.
-make sure the bundles do not get deleted before they are about to be updated, this holds especially true for swcs we are checking in
-make sure we don't try and rebuild osmf.swc as it should not change b/c it is in src

------------------------------------------------------------------------

------------------------------------------------------------------------
r13646 | jimurphy@adobe.com | 2010-01-19 19:29:21 -0500 (Tue, 19 Jan 2010) | 8 lines

fix the build take 2  Don't call other.locales for osmf since there aren't any other locales to build - I am hoping this is why the osmf_rb is losing the catalog

------------------------------------------------------------------------

------------------------------------------------------------------------
r13647 | jimurphy@adobe.com | 2010-01-19 20:04:22 -0500 (Tue, 19 Jan 2010) | 8 lines

this should actually fix the build - call the modified main target to call the bundle task for osmf and actually make the call from frameworks/build.xml

------------------------------------------------------------------------

------------------------------------------------------------------------
r13652 | rfrishbe@adobe.com | 2010-01-19 21:31:18 -0500 (Tue, 19 Jan 2010) | 8 lines

Fixing an MX TextArea bug.  It's caused by MX ScrollControlBase pushing the enabled property down in to the BorderSkin and also caused by some enabled/alpha issues in GroupBase.  For now, we're fixing the ScrollControlBase issue and no longer pushing the enabled property down in to the skin.

SDK-25109
------------------------------------------------------------------------

------------------------------------------------------------------------
r13653 | jimurphy@adobe.com | 2010-01-19 22:12:19 -0500 (Tue, 19 Jan 2010) | 11 lines

fix airspark_rb so it is localized properly.
-point to framework/bundles/[locale] localized files instead of using the english files we had in arispark
-remove en_US property files from airspark

------------------------------------------------------------------------

------------------------------------------------------------------------
r13654 | aharui@adobe.com | 2010-01-19 23:44:34 -0500 (Tue, 19 Jan 2010) | 8 lines

Replace an IPE defense I took out in svn 10058

SDK-25081
------------------------------------------------------------------------

Modified Paths:
--------------
104 paths were modified

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

--- frameworks/projects/mx/src/mx/core/ScrollControlBase.as
+++ frameworks/projects/mx/src/mx/core/ScrollControlBase.as
@@ -20,9 +20,9 @@
 import flash.geom.Point;

 import mx.controls.HScrollBar;
-import mx.core.IToolTip;
 import mx.controls.VScrollBar;
 import mx.controls.scrollClasses.ScrollBar;
+import mx.core.IToolTip;
 import mx.events.ScrollEvent;
 import mx.events.ScrollEventDetail;
 import mx.events.ScrollEventDirection;
@@ -1085,8 +1085,11 @@
 			{
 	            border = new borderClass();

-	            if (border is IUIComponent)
-	                IUIComponent(border).enabled = enabled;
+				if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+				{
+		            if (border is IUIComponent)
+		                IUIComponent(border).enabled = enabled;
+				}
 	            if (border is ISimpleStyleClient)
 	                ISimpleStyleClient(border).styleName = this;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.events
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 9864
Author:   anshulg@adobe.com
Date:     2009-09-01T07:42:25.296146Z

Log Message:
-----------
Added support to redirect NetConnectionChannel and HttpChannel requests to Network Monitor (for flex builder).
These changes were required to fix FB-21976
We tested these changes with check in tests for network monitor
Changes are reviewed by Mete Atamel
No change in documentation in SDK.
These changes need to be back ported in sdk3.x

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/netmon/NetworkMonitor.as</path>

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

--- frameworks/projects/rpc/src/mx/netmon/NetworkMonitor.as
+++ frameworks/projects/rpc/src/mx/netmon/NetworkMonitor.as
@@ -58,7 +58,17 @@
      *  @productversion Flex 3
      */
     public static var adjustURLRequestImpl:Function;
-
+
+    /**
+     *  To be assigned by mix-in.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static var adjustNetConnectionURLImpl:Function;
+
     /**
      *  To be assigned by mix-in.
      *
@@ -150,6 +160,25 @@
     }

     /**
+     *  Adjust the URL for NetConnectionChannel and HTTPChannel Requests
+     *  so that it goes through the monitor.
+     *  Returns the modified url.
+     *
+     *  @param url to adjust.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+     public static function adjustNetConnectionURL(rootUrl:String, url:String):String
+     {
+    	 if (adjustNetConnectionURLImpl != null)
+    		return adjustNetConnectionURLImpl(rootUrl, url);
+    	 return null;
+     }
+
+    /**
      *  Tell the monitor that an event occurred.
      *  This may be used by the Loader to monitor security and IO errors.
      *  It should not be used for the Loader's complete event.


Transferred from the Adobe Open Source Subversion Repository

Revision: 6748
Author:   cframpto@adobe.com
Date:     2009-05-08T10:05:03.897273Z

Log Message:
-----------

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -1126,6 +1126,9 @@
             mx_internal::bounds.width = paddingLeft + paddingRight;
             mx_internal::bounds.height = paddingTop + paddingBottom;
         }
+
+        // The text was truncated.
+        mx_internal::isTextTruncated = true;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 4978
Author:   gosmith@adobe.com
Date:     2009-02-17T02:25:10.529022Z

Log Message:
-----------
Various changes to Gumbo text styles.

The marginLeft, marginRight, marginTop, and marginBottom styles have been removed. They used to inherit from a TLF container to a TLF paragraph and got applied there, but this is not longer the case so that TLF can support container-level margins in the future. Since container-level margins are not currently supported, there should not be a corresponding component-level style. In order to make it possible to specify a format on a container to set inter-paragraph spacing, TLF will add spaceBefore and spaceAfter soon, and Flex will expose these as component styles.

The tabStops style is no longer supported on TextBox or components that use TextBox in their skins. It is supported on TextGraphic, TextView, and FxTextArea, but only as a TLF-parsed String (rather than an Array or Vector of TabStop instances as in FTE). Examples of tabstop strings are "10 20 30 40" and "s10 c20 r30 d40|," (where s="start", c="center", r="right", and d="decimal". The use of strings to specify tabstops makes it easy to set them in CSS.

The firstLineOffsetBasis style has been removed. There is no such thing in TLF's TextLayoutFormat any more.

The dominantBaseline, justificationRule, and justificationStyle styles now allow the value "auto", and this is now the default.

The ligatureLevel style no longer allows the value "none".

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/AdvancedTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/BasicTextLayoutFormatStyles.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -346,7 +346,6 @@
 		var direction:String = getStyle("direction");
         var justificationRule:String = getStyle("justificationRule");
         var justificationStyle:String = getStyle("justificationStyle");
-		var tabStops:* = getStyle("tabStops");
         var textAlign:String = getStyle("textAlign");
         var textAlignLast:String = getStyle("textAlignLast");
         var textJustify:String = getStyle("textJustify");
@@ -384,28 +383,7 @@

             staticTextBlock.textJustifier = staticEastAsianJustifier;
 		}
-
-		// And its tabStops.
-		var tabStopsVector:Vector.<TabStop>;
-        if (tabStops is Vector.<TabStop>)
-        {
-            tabStopsVector = tabStops;
-        }
-        else if (tabStops is Array)
-        {
-            var n:int = tabStops.length;
-            tabStopsVector = new Vector.<TabStop>(n);
-            for (var i:int = 0; i < n; i++)
-            {
-                tabStopsVector[i] = tabStops[i];
-            }
-        }
-        else
-        {
-            tabStopsVector = new Vector.<TabStop>();
-        }
-		staticTextBlock.tabStops = tabStopsVector;
-
+
 		// Then create TextLines using this TextBlock.
 		createTextLinesFromTextBlock(staticTextBlock);
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4093
Author:   gosmith@adobe.com
Date:     2008-11-12T23:21:12.909952Z

Log Message:
-----------
TextBox now supports a textAlign style value of "justify". And it also now supports textAlignLast, justificationRule, and justificationStyle styles, like TextGraphic.

Added more ASDoc comments to various Gumbo text classes.

QE Notes: New functionality to test.
Doc Notes: None
Bugs: SDK-18014, SDK-16645
Reviewer: Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/bundles.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/BasicParagraphFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/AdvancedParagraphFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextFlowComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextBlockComposer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -219,6 +219,8 @@
         bounds.height = height;

         textBlockComposer.direction = getStyle("direction");
+        textBlockComposer.justificationRule = getStyle("justificationRule");
+        textBlockComposer.justificationStyle = getStyle("justificationStyle");
         textBlockComposer.lineBreak = getStyle("lineBreak");
         textBlockComposer.lineHeight = getStyle("lineHeight");
         textBlockComposer.lineThrough = getStyle("lineThrough");
@@ -228,6 +230,7 @@
         textBlockComposer.paddingTop = getStyle("paddingTop");
         setTabStops(textBlockComposer);
         textBlockComposer.textAlign = getStyle("textAlign");
+        textBlockComposer.textAlignLast = getStyle("textAlignLast");
         textBlockComposer.textDecoration = getStyle("textDecoration");
         textBlockComposer.verticalAlign = getStyle("verticalAlign");