Source of the OSData.swf added

Source of the OSData.swf added

error: pathspec 'OSData.as' did not match any file(s) known to git

--- OSData.as
+++ OSData.as
@@ -0,0 +1,57 @@
+// OSData.as
+package {
+
+    import flash.display.Sprite;
+    import flash.text.Font;
+    import flash.text.FontType;
+    import flash.text.FontStyle;
+    import flash.external.ExternalInterface;
+	import flash.system.Capabilities;
+
+    public class OSData extends Sprite
+    {
+        public function OSData()
+        {
+		 ExternalInterface.addCallback('getFonts', this.getDeviceFonts);
+ 		 ExternalInterface.addCallback('getOS', this.getOS);
+		 ExternalInterface.addCallback('getResolution', this.getResolution);
+		 ExternalInterface.addCallback('getLanguage', this.getLanguage);
+
+ 		 if  (ExternalInterface.available) {
+                	ExternalInterface.call("isConnected");
+	         }
+        }
+
+        public function getDeviceFonts():Array
+        {
+            var embeddedAndDeviceFonts:Array = Font.enumerateFonts(true);
+
+            var deviceFontNames:Array = [];
+            for each (var font:Font in embeddedAndDeviceFonts)
+            {
+                if (font.fontType == FontType.EMBEDDED
+                    || font.fontStyle != FontStyle.REGULAR
+                    )
+                    continue;
+                deviceFontNames.push(font.fontName);
+            }
+
+            return deviceFontNames;
+        }
+
+		public function getOS():String
+		{
+			return Capabilities.os;
+		}
+
+		public function getResolution():Array
+		{
+			return [Capabilities.screenResolutionX,Capabilities.screenResolutionY];
+		}
+
+		public function getLanguage():String
+		{
+			return Capabilities.language;
+		}
+    }
+}


starting gunz in MVL class and fixing "load_queue" method

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rafaelcordoba/cocktail-demo.git/'


updating renamed class Reference

updating renamed class Reference


store type in event object

store type in event object

--- src/org/mangui/hls/event/HLSEvent.as
+++ src/org/mangui/hls/event/HLSEvent.as
@@ -50,7 +50,7 @@
         public static const PLAYBACK_STATE : String = "hlsPlaybackState";
         /** Identifier for a seek state switch event. **/
         public static const SEEK_STATE : String = "hlsSeekState";
-        /** Identifier for stream type changes: VoD or Live **/
+        /** Identifier for stream type changes: VoD or Live, type will be stored in 'streamType' field **/
         public static const STREAM_TYPE_DID_CHANGE:String = "hlsEventStreamTypeDidChange";
         /** Identifier for a playback complete event. **/
         public static const PLAYBACK_COMPLETE : String = "hlsEventPlayBackComplete";
@@ -87,6 +87,8 @@
         public var mediatime : HLSMediatime;
         /** The new playback state. **/
         public var state : String;
+        /** The new stream type value **/
+        public var streamType: String;
         /** The current audio track **/
         public var audioTrack : int;
         /** a complete ID3 payload from PES, as a hex dump **/
@@ -138,6 +140,10 @@
                 case FRAGMENT_PLAYING:
                     playMetrics = parameter as HLSPlayMetrics;
                     break;
+                case HLSEvent.STREAM_TYPE_DID_CHANGE:
+                    // Stream Type is required
+                    streamType = String(parameter);
+                    break;
                 default:
                     break;
             }


Issue 315; Add missing file from r894.

Issue 315; Add missing file from r894.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/leymannx/svgweb.git/'


adding clean version of Config

adding clean version of Config


use client protocol definition

use client protocol definition

git-svn-id: 8a2ccb88241e16c78017770bc38d91d6d5396a5a@51541 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- generator/sources/as3/delegates/media/MediaUpdateThumbnailJpegDelegate.as
+++ generator/sources/as3/delegates/media/MediaUpdateThumbnailJpegDelegate.as
@@ -36,7 +36,7 @@

 			//create the service request for normal calls
 			var variables:String = decodeURIComponent(call.args.toString());
-			var req:String = _config.domain +"/"+_config.srvUrl+"?service="+call.service+"&action="+call.action +'&'+variables;
+			var req:String = _config.protocol + _config.domain +"/"+_config.srvUrl+"?service="+call.service+"&action="+call.action +'&'+variables;
 			mrloader.addFile((call as KalturaFileCall).bytes, UIDUtil.createUID(), 'fileData');

 			mrloader.dataFormat = URLLoaderDataFormat.TEXT;


This was missing.

This was missing.

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

error: pathspec 'src/as/com/threerings/presents/data/InvocationMarshaller_ResultMarshaller.as' did not match any file(s) known to git

--- src/as/com/threerings/presents/data/InvocationMarshaller_ResultMarshaller.as
+++ src/as/com/threerings/presents/data/InvocationMarshaller_ResultMarshaller.as
@@ -0,0 +1,31 @@
+package com.threerings.presents.data {
+
+import com.threerings.presents.client.InvocationService_ResultListener;
+
+public class InvocationMarshaller_ResultMarshaller
+    extends InvocationMarshaller_ListenerMarshaller
+    implements InvocationService_ResultListener
+{
+    public static const REQUEST_PROCESSED :int = 1;
+
+    // documetnation inherited from interfacc
+    public function requestProcessed (result :Object) :void
+    {
+        // TODO: server only?
+    }
+
+    // documetnation inherited
+    override public function dispatchResponse (methodId :int, args :Array) :void
+    {
+        switch (methodId) {
+        case REQUEST_PROCESSED:
+            (listener as InvocationService_ResultListener).requestProcessed(
+                args[0]);
+            return;
+
+        default:
+            super.dispatchResponse(methodId, args);
+        }
+    }
+}
+}


Tests for cloning of CopyableCloneableClass.

error: pathspec 'dolly-framework/src/test/actionscript/dolly/CloningOfCopyableCloneableClass.as' did not match any file(s) known to git

--- dolly-framework/src/test/actionscript/dolly/CloningOfCopyableCloneableClass.as
+++ dolly-framework/src/test/actionscript/dolly/CloningOfCopyableCloneableClass.as
@@ -0,0 +1,62 @@
+package dolly {
+
+import dolly.core.dolly_internal;
+import dolly.data.CopyableCloneableClass;
+
+import org.as3commons.reflect.Field;
+import org.as3commons.reflect.Type;
+import org.flexunit.asserts.assertEquals;
+import org.flexunit.asserts.assertNotNull;
+
+use namespace dolly_internal;
+
+public class CloningOfCopyableCloneableClass {
+
+	private var copyableCloneableClass:CopyableCloneableClass;
+	private var copyableCloneableClassType:Type;
+
+	[Before]
+	public function before():void {
+		copyableCloneableClass = new CopyableCloneableClass();
+		copyableCloneableClass.property1 = "property1 value";
+		copyableCloneableClass.writableField1 = "writableField1 value";
+		copyableCloneableClassType = Type.forInstance(copyableCloneableClass);
+	}
+
+	[After]
+	public function after():void {
+		copyableCloneableClass = null;
+		copyableCloneableClassType = null;
+	}
+
+	[Test]
+	public function findingAllWritableFieldsForType():void {
+		const writableFields:Vector.<Field> = Cloner.findAllWritableFieldsForType(copyableCloneableClassType);
+		assertNotNull(writableFields);
+		assertEquals(2, writableFields.length);
+	}
+
+	[Test]
+	public function cloningByCloner():void {
+		const clone:CopyableCloneableClass = Cloner.clone(copyableCloneableClass);
+
+		assertNotNull(clone);
+		assertNotNull(clone.property1);
+		assertEquals(clone.property1, copyableCloneableClass.property1);
+		assertNotNull(clone.writableField1);
+		assertEquals(clone.writableField1, copyableCloneableClass.writableField1);
+	}
+
+	[Test]
+	public function cloningByCloneFunction():void {
+		const cloneInstance:CopyableCloneableClass = clone(copyableCloneableClass);
+
+		assertNotNull(cloneInstance);
+		assertNotNull(cloneInstance.property1);
+		assertEquals(cloneInstance.property1, copyableCloneableClass.property1);
+		assertNotNull(cloneInstance.writableField1);
+		assertEquals(cloneInstance.writableField1, copyableCloneableClass.writableField1);
+	}
+
+}
+}


Update About.as

Update About.as

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jerome-desmedt/daelysid.git/'


throw Pn.Connect on Subscribe.onConnect, throw Pn.Disconnect on Subscribe.onNetworkDisable

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/pubnub/flash.git/'


RESPECT TO THE PRINT MARGIN!

RESPECT TO THE PRINT MARGIN!


adding docs / fixing typos

adding docs / fixing typos


Block comment formatting, braces around if { }

--- src/SoundManager2.as
+++ src/SoundManager2.as
@@ -40,16 +40,17 @@
     var version_as = "(AS2/Flash 8)";

     /*
-    *  Cross-domain security options
-    *  HTML on foo.com loading .swf hosted on bar.com? Define your "HTML domain" here to allow JS+Flash communication to work.
-    *  // allow_xdomain_scripting = true;
-    *  // xdomain = "foo.com";
-    *  For all domains (possible security risk?), use xdomain = "*"; which ends up as System.security.allowDomain("*");
-    *  When loading from HTTPS, use System.security.allowInsecureDomain();
-    *  See "allowDomain (security.allowDomain method)" in Flash 8/AS2 liveDocs documentation (AS2 reference -> classes -> security)
-    *  download from http://livedocs.macromedia.com/flash/8/
-    *  Related AS3 documentation: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/system/Security.html#allowDomain%28%29
-    */
+     *  Cross-domain security options
+     *  HTML on foo.com loading .swf hosted on bar.com? Define your "HTML domain" here to allow JS+Flash communication to work.
+     *  // allow_xdomain_scripting = true;
+     *  // xdomain = "foo.com";
+     *  For all domains (possible security risk?), use xdomain = "*"; which ends up as System.security.allowDomain("*");
+     *  When loading from HTTPS, use System.security.allowInsecureDomain();
+     *  See "allowDomain (security.allowDomain method)" in Flash 8/AS2 liveDocs documentation (AS2 reference -> classes -> security)
+     *  download from http://livedocs.macromedia.com/flash/8/
+     *  Related AS3 documentation: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/system/Security.html#allowDomain%28%29
+     */
+
     var allow_xdomain_scripting = false;
     var xdomain = "*";

@@ -231,14 +232,22 @@
         s.lastValues.loops = 1;
       }
       s.start(nSecOffset, s.lastValues.nLoops || 1); // start playing at new position
-      if (isPaused) s.stop();
+      if (isPaused) {
+        s.stop();
+      }
     }

     var _load = function(sID, sURL, bStream, bAutoPlay, bCheckPolicyFile) {
       // writeDebug('_load(): '+sID+', '+sURL+', '+bStream+', '+bAutoPlay);
-      if (typeof bAutoPlay == 'undefined') bAutoPlay = false;
-      if (typeof bStream == 'undefined') bStream = true;
-      if (typeof bCheckPolicyFile == 'undefined') bCheckPolicyFile = false;
+      if (typeof bAutoPlay == 'undefined') {
+        bAutoPlay = false;
+      }
+      if (typeof bStream == 'undefined') {
+        bStream = true;
+      }
+      if (typeof bCheckPolicyFile == 'undefined') {
+        bCheckPolicyFile = false;
+      }
       // writeDebug('bStream: '+bStream);
       // writeDebug('bAutoPlay: '+bAutoPlay);
       // checkProgress();
@@ -290,7 +299,9 @@
     var _destroySound = function(sID) {
       // for the power of garbage collection! .. er, Greyskull!
       var s = (soundObjects[sID] || null);
-      if (!s) return false;
+      if (!s) {
+        return false;
+      }
       for (var i = 0; i < sounds.length; i++) {
         if (sounds[i] == sID) {
           sounds.splice(i, 1);


Fix merge issue

Fix merge issue

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/sessionm/sessionm-flex.git/'


Renamed callback to listener in sugar method signatures in Mediator.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/eric-stanley/robotlegs-framework.git/'


Added coloring and get/set functions for maximum.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/SestrenExsis/TallyMe.git/'


Added rewritten TUIO class - Not implemented yet.

error: pathspec 'AS3/lib/com/touchlib/TUIO_clean.as' did not match any file(s) known to git

--- AS3/lib/com/touchlib/TUIO_clean.as
+++ AS3/lib/com/touchlib/TUIO_clean.as
@@ -0,0 +1,463 @@
+/*
+
+Cleaned up TUIO class - not implemented yet
+
+*/
+
+package com.touclib {
+
+import flash.display.InteractiveObject;
+import flash.display.Sprite;
+import flash.events.DataEvent;
+import flash.events.Event;
+import flash.events.IOErrorEvent;
+import flash.events.ProgressEvent;
+import flash.events.SecurityErrorEvent;
+import flash.geom.Point;
+import flash.net.URLLoader;
+import flash.net.URLRequest;
+import flash.net.XMLSocket;
+import flash.system.System;
+import flash.text.TextField;
+import flash.text.TextFieldAutoSize;
+import flash.text.TextFormat;
+
+public class TUIO
+{
+	private static var INSTANCE:TUIO;
+
+	private static var HOST:String;
+	private static var PORT:Number;
+
+	private static var STAGE_WIDTH:int;
+	private static var STAGE_HEIGHT:int;
+
+    private static var DEBUG_MODE:Boolean = true;
+	private static var RECORD_MODE:Boolean;
+
+	private static var SOCKET:XMLSocket;
+	private static var STAGE:Sprite;
+
+	private static var TESTING_XML_URL:String;
+	private static var TESTING_XML:XML;
+	private static var TESTING_XML_LOADER:URLLoader;
+
+	private static var RECORDED_XML:XML;
+
+	private static var objectArray:Array;
+	private static var DEBUG_TEXT:TextField;
+
+
+	/**********************************************************
+	 * INIT
+	***********************************************************/
+
+	public static function init ( s:Sprite, host:String, port:Number, stageWidth:int, stageHeight:int, testingXML:String, recordMode:Boolean ):TUIO
+	{
+		if( INSTANCE == null )
+		{
+			INSTANCE = new TUIO( init );
+
+			STAGE = s;
+
+			STAGE_WIDTH = stageWidth;
+			STAGE_HEIGHT = stageHeight;
+
+			TESTING_XML_URL = testingXML;
+
+			HOST = host;
+			PORT = port;
+
+			RECORD_MODE = recordMode;
+
+			INSTANCE.start();
+
+		}
+		return INSTANCE;
+	}
+
+	/**********************************************************
+	 * START
+	***********************************************************/
+
+	private function start ():void
+	{
+		objectArray = new Array();
+
+		if( DEBUG_MODE )
+		{
+			activateDebugMode();
+		}
+	    if ( RECORD_MODE )
+		{
+			activateRecordMode();
+		}
+		if( TESTING_XML_URL != '' )
+		{
+			TESTING_XML_LOADER = new URLLoader();
+			TESTING_XML_LOADER.addEventListener( 'complete', testingXmlOnLoaded );
+			TESTING_XML_LOADER.load( new URLRequest( TESTING_XML_URL ) );
+		} else
+		{
+			SOCKET = new XMLSocket();
+
+			SOCKET.addEventListener( Event.CLOSE, closeHandler );
+			SOCKET.addEventListener( Event.CONNECT, connectHandler );
+			SOCKET.addEventListener( DataEvent.DATA, dataHandler );
+			SOCKET.addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler );
+			SOCKET.addEventListener( ProgressEvent.PROGRESS, progressHandler );
+			SOCKET.addEventListener( SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler );
+
+			SOCKET.connect( HOST, PORT );
+		}
+	}
+
+	/**********************************************************
+	 * ACTIVATE_DEBUG_MODE
+	***********************************************************/
+
+	private function activateDebugMode():void
+	{
+		var format:TextFormat = new TextFormat();
+		DEBUG_TEXT = new TextField();
+        format.font = 'Verdana';
+     	format.color = 0xFFFFFF;
+        format.size = 10;
+
+		DEBUG_TEXT.defaultTextFormat = format;
+		DEBUG_TEXT.autoSize = TextFieldAutoSize.LEFT;
+		DEBUG_TEXT.background = true;
+		DEBUG_TEXT.backgroundColor = 0x000000;
+		DEBUG_TEXT.border = true;
+		DEBUG_TEXT.borderColor = 0x333333;
+
+
+		STAGE.addChild( DEBUG_TEXT );
+	}
+
+	/**********************************************************
+	 * ACTIVATE_RECORD_MODE
+	***********************************************************/
+
+	private function activateRecordMode():void
+	{
+		RECORDED_XML = <OSCPackets></OSCPackets>;
+
+		var record_btn:Sprite = new Sprite();
+
+		record_btn.graphics.lineStyle( 2, 0x202020 );
+		record_btn.graphics.beginFill( 0xF80101,0.5 );
+		record_btn.graphics.drawRoundRect( 10, 10, 200, 200, 6 );
+		record_btn.addEventListener( TUIOEvent.DOWN, stopRecording );
+
+		STAGE.addChild( record_btn );
+	}
+
+	/**********************************************************
+	 * TESTING_XML_ON_LOADED
+	***********************************************************/
+
+	private static function testingXmlOnLoaded( e:Event ):void
+	{
+		TESTING_XML = new XML( e.target.data );
+
+		STAGE.addEventListener( Event.ENTER_FRAME, updateFrame );
+	}
+
+	/**********************************************************
+	 * UPDATE_FRAME
+	***********************************************************/
+
+	private static function updateFrame( e:Event ):void
+	{
+		if( TESTING_XML && TESTING_XML.OSCPACKET && TESTING_XML.OSCPACKET[ 0 ] )
+		{
+			processXML( TESTING_XML.OSCPACKET[ 0 ] );
+			delete TESTING_XML.OSCPACKET[ 0 ];
+		}
+	}
+
+	/**********************************************************
+	 * GET_OBJECT_BY_ID
+	***********************************************************/
+
+	public static function getObjectById( id:int ):TUIOObject
+	{
+		var listAmount:int = objectArray.length;
+
+		for( var i:int = 0; i < listAmount; i++ )
+		{
+			if( objectArray[ i ].ID == id )
+			{
+				return objectArray[ i ];
+			}
+		}
+		return null;
+	}
+
+	/**********************************************************
+	 * PROCESS_XML
+	***********************************************************/
+
+	public static function processXML( xml:XML ):void
+	{
+		// XML-Node
+		var node:XML;
+
+		// fseq
+		var fseq:String;
+
+		// list of TUIO-Objects
+		var tuioObjList:Array;
+
+		// TUIO-Object
+		var tuioObj:Object;
+
+		// type can be set / alive
+		var type:String;
+
+		// store positions
+		var localPoint:Point;
+		var stagePoint:Point
+
+		// sessionID
+		var sID:int;
+
+		// classID or unique id for every touchEvent
+		var id:int;
+
+		// new x,y coordinates
+		var x:Number;
+		var y:Number;
+
+		// old x,y coordinates
+		var X:Number;
+		var Y:Number;
+
+		// rotation vector
+		var a:Number;
+		var A:Number;
+
+		// motion acceleration
+		var m:Number;
+
+		// rotation accel
+		var r:Number;
+
+		for each( node in xml.MESSAGE )
+		{
+			// detect fseq
+
+			if( node.ARGUMENT[0] && node.ARGUMENT[0].@VALUE == 'fseq' )
+			{
+				// in the moment not in use
+				fseq = node.ARGUMENT[ 1 ].@VALUE;
+			}
+
+			// detect alive status
+
+			if( node.ARGUMENT[ 0 ] && node.ARGUMENT[ 0 ].@VALUE == 'alive' )
+			{
+				for each ( var obj:TUIOObject in objectArray )
+				{
+					obj.isAlive = false;
+				}
+
+				for each( var aliveItem:XML in node.ARGUMENT.( @VALUE != 'alive' ) )
+				{
+					if( getObjectById( aliveItem.@VALUE ) )
+					{
+						getObjectById( aliveItem.@VALUE ).isAlive = true;
+					}
+				}
+			}
+
+			// detect new blobs / input
+
+			if( node.ARGUMENT[ 0 ] )
+			{
+				stagePoint = new Point( x,y );
+				tuioObjList = STAGE.stage.getObjectsUnderPoint( stagePoint );
+
+				if( node.@NAME == '/tuio/2Dobj' )
+				{
+
+					type = node.ARGUMENT[0].@VALUE;
+
+					if( type == 'set' )
+					{
+						var dobj:InteractiveObject = null;
+						sID = node.ARGUMENT[ 1 ].@VALUE;
+						id = node.ARGUMENT[ 2 ].@VALUE;
+						x = Number( node.ARGUMENT[ 3 ].@VALUE ) * STAGE_WIDTH;
+						y = Number( node.ARGUMENT[ 4 ].@VALUE ) * STAGE_HEIGHT;
+						a = Number( node.ARGUMENT[ 5 ].@VALUE );
+						X = Number( node.ARGUMENT[ 6 ].@VALUE );
+						Y = Number( node.ARGUMENT[ 7 ].@VALUE );
+						A = Number( node.ARGUMENT[ 8 ].@VALUE );
+						m = node.ARGUMENT[ 9 ].@VALUE;
+						r = node.ARGUMENT[ 10 ].@VALUE;
+
+						tuioObj = getObjectById( id );
+						if( tuioObj == null )
+						{
+							tuioObj = new TUIOObject('2Dobj', id, x, y, X, Y, objectArray.length, a );
+							STAGE.addChild( tuioObj.spr );
+							objectArray.push( tuioObj );
+						} else {
+							tuioObj.spr.x = x;
+							tuioObj.spr.y = y;
+							tuioObj.x = x;
+							tuioObj.y = y;
+							tuioObj.dX = X;
+							tuioObj.dY = Y;
+							tuioObj.setObjOver( dobj );
+						}
+					}
+				} else if( node.@NAME == '/tuio/2Dcur' )
+				{
+
+					type = node.ARGUMENT[ 0 ].@VALUE;
+					if( type == 'set' )
+					{
+						//var dobj:InteractiveObject = null;
+						id = node.ARGUMENT[ 1 ].@VALUE;
+						x = Number( node.ARGUMENT[ 2 ].@VALUE ) * STAGE_WIDTH;
+						y = Number( node.ARGUMENT[ 3 ].@VALUE ) * STAGE_HEIGHT;
+						X = Number( node.ARGUMENT[ 4 ].@VALUE );
+						Y = Number( node.ARGUMENT[ 5 ].@VALUE );
+						m = node.ARGUMENT[ 6 ].@VALUE;
+						//a = node.ARGUMENT[ 7 ].@VALUE;
+
+						tuioObj = getObjectById( id );
+						if( tuioObj == null )
+						{
+							tuioObj = new TUIOObject('2Dcur', id, x, y, X, Y, objectArray.length, 0 );
+							//tuioObj.area = a;
+							STAGE.addChild( tuioObj.spr );
+							objectArray.push( tuioObj );
+						} else {
+							tuioObj.spr.x = x;
+							tuioObj.spr.y = y;
+							tuioObj.x = x;
+							tuioObj.y = y;
+							//tuioObj.area = a;
+							tuioObj.dX = X;
+							tuioObj.dY = Y;
+							tuioObj.setObjOver( dobj );
+						}
+					}
+				}
+			}
+		}
+		if(DEBUG_MODE)
+		{
+			DEBUG_TEXT.text = '';
+
+			for ( var i:int=0; i<objectArray.length; i++ )
+			{
+				if( objectArray[i].isAlive == false )
+				{
+					// TODO: cast objects
+					objectArray[i].disposeObject();
+					STAGE.removeChild(objectArray[i].spr);
+					objectArray.splice(i, 1);
+					i--;
+
+				} else {
+				//DEBUG DATA
+			    if(DEBUG_MODE)
+						DEBUG_TEXT.appendText('  ' + (i+1) + ' - ' + objectArray[i].ID + '  X: ' + int(objectArray[i].x) + '  Y: ' + int(objectArray[i].y) +  '   \n' );
+						DEBUG_TEXT.y = STAGE_HEIGHT-300;
+						DEBUG_TEXT.x = STAGE_WIDTH-250;
+				}
+			}
+		}
+	}
+
+	/**********************************************************
+	 * STOP_RECORDING
+	***********************************************************/
+
+	private static function stopRecording( e:TUIOEvent ):void
+	{
+		RECORD_MODE = false;
+		DEBUG_MODE = false;
+		trace("Dump the XML");
+		//System.setClipboard( RECORDED_XML.toString() );
+	}
+
+	/**********************************************************
+	 * SOCKET_SERVER - CLODE_HANDLER
+	***********************************************************/
+
+	private static function closeHandler( e:Event ):void
+	{
+	}
+
+	/**********************************************************
+	 * SOCKET_SERVER - CONNECT_HANDLER
+	***********************************************************/
+
+	private static function connectHandler( e:Event ):void
+	{
+		trace( 'TUIO Socket Enabled:' + e );
+	}
+
+	/**********************************************************
+	 * SOCKET_SERVER - DATA_HANDLER
+	***********************************************************/
+
+	private static function dataHandler( e:DataEvent ):void
+	{
+		if( RECORD_MODE )
+		{
+			RECORDED_XML.appendChild( XML( e.data ) );
+		}
+
+		processXML( XML( e.data ) );
+	}
+
+	/**********************************************************
+	 * SOCKET_SERVER - IO_ERROR_HANDLER
+	***********************************************************/
+
+	private static function ioErrorHandler( e:IOErrorEvent ):void
+	{
+		trace( 'ioErrorHandler:' + e );
+	}
+
+	/**********************************************************
+	 * SOCKET_SERVER - PROGRESS_HANDLER
+	***********************************************************/
+
+	private static function progressHandler( e:ProgressEvent ):void
+	{
+	    //trace( 'progressHandler loaded:' + e.bytesLoaded + ' total: ' + e.bytesTotal );
+	}
+
+	/**********************************************************
+	 * SOCKET_SERVER - SECURITY_ERROR_HANDLER
+	***********************************************************/
+
+	private static function securityErrorHandler( e:SecurityErrorEvent ):void
+	{
+	}
+
+	/**********************************************************
+	 * TUIO
+	***********************************************************/
+
+	public function TUIO( caller:Function ):void
+	{
+		if( caller == TUIO.init )
+		{
+
+		}
+		else
+		{
+			throw new Error( 'TUIO is a singleton, use TUIO.init' );
+		}
+	}
+}
+}


Applying a fix for Issue #7

Applying a fix for Issue #7

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/OnCircle/vpaid-wrapper.git/'


A parser for http://xmpp.org/extensions/xep-0082.html

error: pathspec 'src/org/igniterealtime/xiff/util/DateTimeParser.as' did not match any file(s) known to git

--- src/org/igniterealtime/xiff/util/DateTimeParser.as
+++ src/org/igniterealtime/xiff/util/DateTimeParser.as
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2003-2009 Igniterealtime Community Contributors
+ *
+ *     Daniel Henninger
+ *     Derrick Grigg <dgrigg@rogers.com>
+ *     Juga Paazmaya <olavic@gmail.com>
+ *     Nick Velloff <nick.velloff@gmail.com>
+ *     Sean Treadway <seant@oncotype.dk>
+ *     Sean Voisen <sean@voisen.org>
+ *
+ *
+ * Licensed 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
+ *
+ *     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 org.igniterealtime.xiff.util
+{
+
+	/**
+	 * A set of static functions to parse the time and date values.
+	 * All date related methods are the UTC versions.
+	 * @see http://xmpp.org/extensions/xep-0082.html
+	 */
+	public class DateTimeParser
+	{
+		/**
+		 * CCYY-MM-DD
+		 * @param	date
+		 * @return CCYY-MM-DD
+		 */
+		public static function date2string(date:Date):String
+		{
+			var value:String = date.getUTCFullYear() + "-";
+			value += (date.getUTCMonth() < 9 ? "0" : "") + (date.getUTCMonth() + 1) + "-";
+			value += (date.getUTCDate() < 10 ? "0" : "") + date.getUTCDate();
+			return value;
+		}
+
+		/**
+		 * CCYY-MM-DD
+		 * @param	stamp
+		 * @return Date object
+		 */
+		public static function string2date(stamp:String):Date
+		{
+			var date:Date = new Date();
+			date.setUTCFullYear(stamp.substr(0, 4));
+			date.setUTCMonth(parseInt(stamp.substr(5, 2)) - 1);
+			date.setUTCDate(stamp.substr(8, 2));
+			return date;
+		}
+
+		/**
+		 * hh:mm:ss[.sss][TZD]
+		 * @param	time
+		 * @param	ms	Include milliseconds in the resulting string
+		 * @return hh:mm:ss[.sss][TZD]
+		 */
+		public static function time2string(time:Date, ms:Boolean = false):String
+		{
+			var value:String = (time.getUTCHours() < 10 ? "0" : "") + time.getUTCHours() + ":";
+			value += (time.getUTCMinutes() < 10 ? "0" : "") + time.getUTCMinutes() + ":";
+			value += (time.getUTCSeconds() < 10 ? "0" : "") + time.getUTCSeconds();
+			if (ms)
+			{
+				value += "." + (time.getUTCMilliseconds() < 10 ? "0" : "")
+					+ (time.getUTCMilliseconds() < 100 ? "0" : "") + time.getUTCMilliseconds();
+			}
+			return value;
+		}
+
+		/**
+		 * hh:mm:ss[.sss][TZD]
+		 * @param	stamp
+		 * @return Date object
+		 */
+		public static function string2time(stamp:String):Date
+		{
+			var date:Date = new Date();
+			date.setUTCHours(stamp.substr(0, 2));
+			date.setUTCMinutes(stamp.substr(3, 2));
+			date.setUTCSeconds(stamp.substr(6, 2));
+			if (stamp.length > 10)
+			{
+				date.setUTCMilliseconds(parseInt(stamp.substr(10, 3)));
+			}
+			return date;
+		}
+
+		/**
+		 * CCYY-MM-DDThh:mm:ss[.sss]TZD
+		 * @param	dateTime
+		 * @param	ms	Include milliseconds in the resulting string
+		 * @return CCYY-MM-DDThh:mm:ss[.sss]TZD
+		 */
+		public static function dateTime2string(dateTime:Date, ms:Boolean = false):String
+		{
+			var value:String = date2string(dateTime) + "T";
+			value += time2string(dateTime, ms);
+			return value;
+		}
+
+		/**
+		 * CCYY-MM-DDThh:mm:ss[.sss]TZD
+		 * @param	stamp
+		 * @return Date object
+		 */
+		public static function string2dateTime(stamp:String):Date
+		{
+			var date:Date = string2date(stamp.substring(0, stamp.indexOf("T")));
+			var time:Date = string2time(stamp.substring(stamp.indexOf("T") + 1));
+			date.setUTCHours(time.getUTCHours(), time.getUTCMinutes(),
+				time.getUTCSeconds(), time.getUTCMilliseconds());
+			return date;
+		}
+	}
+}


TLS support via AS3Crypto (http://code.google.com/p/as3crypto/). Totally non complete, work in progress but as it takes so long, help is welcome.

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

error: pathspec 'src/org/igniterealtime/xiff/core/XMPPTLSConnection.as' did not match any file(s) known to git

--- src/org/igniterealtime/xiff/core/XMPPTLSConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPTLSConnection.as
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2003-2009 Igniterealtime Community Contributors
+ *
+ *     Daniel Henninger
+ *     Derrick Grigg <dgrigg@rogers.com>
+ *     Juga Paazmaya <olavic@gmail.com>
+ *     Nick Velloff <nick.velloff@gmail.com>
+ *     Sean Treadway <seant@oncotype.dk>
+ *     Sean Voisen <sean@voisen.org>
+ *
+ *
+ * Licensed 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
+ *
+ *     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 org.igniterealtime.xiff.core
+{
+	import flash.net.Socket;
+	import flash.events.*;
+	import flash.utils.ByteArray;
+
+	import org.igniterealtime.xiff.events.*;
+
+	import com.hurlant.crypto.tls.*;
+
+	/**
+	 * TLS supporting connection. You need to have AS3Crypto library
+	 * in order to use this class.
+	 *
+	 *
Work in progress. Not expected to work.

+	 *
+	 * @see org.igniterealtime.xiff.core.XMPPConnection
+	 */
+	public class XMPPTLSConnection extends XMPPConnection
+	{
+		private var _config:TLSConfig;
+		private var tlsSocket:TLSSocket;
+
+		public function XMPPTLSConnection()
+		{
+			super();
+		}
+
+		/**
+		 * @see com.hurlant.crypto.tls.TLSSocket
+		 */
+		override protected function createSocket():void
+		{
+			tlsSocket = new TLSSocket();
+	        tlsSocket.addEventListener(Event.CLOSE, socketClosed);
+	        tlsSocket.addEventListener(Event.CONNECT, socketConnected);
+	        tlsSocket.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
+			tlsSocket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataReceived);
+	        tlsSocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
+			tlsSocket.addEventListener(TLSSocket.ACCEPT_PEER_CERT_PROMPT, onAcceptPeerCertPrompt);
+			if (_config != null)
+			{
+				tlsSocket.setTLSConfig(_config);
+			}
+	    }
+		override public function connect( streamType:uint = 0 ):Boolean
+		{
+			createSocket();
+			_streamType = streamType;
+
+			active = false;
+			loggedIn = false;
+
+			chooseStreamTags(streamType);
+
+			tlsSocket.connect( server, port );
+			return true;
+		}
+		override public function disconnect():void
+		{
+			if ( isActive() )
+			{
+				sendXML( closingStreamTag ); // String
+				if (tlsSocket)
+				{
+					tlsSocket.close();
+				}
+				active = false;
+				loggedIn = false;
+
+				var disconnectionEvent:DisconnectionEvent = new DisconnectionEvent();
+				dispatchEvent(disconnectionEvent);
+			}
+		}
+		override protected function socketDataReceived( event:ProgressEvent ):void
+		{
+			var bytedata:ByteArray = new ByteArray();
+			// The default value of 0 causes all available data to be read.
+			tlsSocket.readBytes(bytedata);
+			parseDataReceived( bytedata );
+		}
+		override protected function sendXML( someData:* ):void
+		{
+			var bytedata:ByteArray = new ByteArray();
+			bytedata.writeUTFBytes(someData);
+
+			bytedata.position = 0;
+			if (compressionNegotiated)
+			{
+				bytedata.compress();
+				bytedata.position = 0; // maybe not needed.
+			}
+			tlsSocket.writeBytes( bytedata, 0, bytedata.length );
+			tlsSocket.flush();
+
+			_outgoingBytes += bytedata.length;
+
+			var event:OutgoingDataEvent = new OutgoingDataEvent();
+			event.data = bytedata;
+			dispatchEvent( event );
+		}
+
+		/**
+		 *
+		 * @param	event
+		 */
+		private function onAcceptPeerCertPrompt(event:Event):void
+		{
+			trace("onAcceptPeerCertPrompt. " + event.toString());
+		}
+
+		/**
+		 * TLS configuration. Set after creating the socket.
+		 */
+		public function get config():TLSConfig
+		{
+			return _config;
+		}
+		public function set config(value:TLSConfig):void
+		{
+			_config = value;
+			if (tlsSocket != null && _config != null)
+			{
+				tlsSocket.setTLSConfig(_config);
+			}
+		}
+	}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 2810
Author:   jszeto@adobe.com
Date:     2008-08-12T00:48:51.955897Z

Log Message:
-----------
FXG Bug Fix

MXMLG-210 - [Gumbo_Priority] Unable to create second item after masked item

Masks were broken for GraphicElements after the lifecycle consolidation work. Added hacks to Group to get the masks working again. The graphic element mask code and the commitProperties logic will eventually change, removing the need for this hack.

Bug: MXMLG-210
QA: Yes
Doc: No
Review: Evtim

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -1222,7 +1222,9 @@

         maskElements[mask] = target;
         contentChanged = true;
-        invalidateProperties();
+        // TODO!! Remove this once GraphicElements use the LayoutManager. Currently the
+        // callLater is necessary because addMaskElement gets called inside of commitProperties
+        callLater(invalidateProperties);

     }

@@ -1232,7 +1234,9 @@
         {
             delete maskElements[mask];
             contentChanged = true;
-            invalidateProperties();
+             // TODO!! Remove this once GraphicElements use the LayoutManager. Currently the
+        	// callLater is necessary because removeMaskElement gets called inside of commitProperties
+            callLater(invalidateProperties);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11189
Author:   clucier@adobe.com
Date:     2009-10-27T19:33:04.160990Z

Log Message:
-----------
Adding better support for deferred instantiation and states. State overrides can now correctly override targets that are instantiated after a state change.  Moving the commitment of the initial state to earlier (during commit properties), this should avoid the secondary layout pass that used to occur after applicationComplete.  Removed creationComplete handler in UIComponent as it is no longer needed.  Fixing an issue in Group that was causing blendMode to be stuck as 'layered' when setting alpha to 0 then resetting it to a non zero value.

QE notes: None
Doc notes: None
Bugs: SDK-23105, SDK-23470, SDK-23790
Reviewer: Deepa, Glenn
Tests run: Full Cyclone, Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/OverrideBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetEventHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/RemoveChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -295,16 +295,8 @@
         if (super.alpha == value)
             return;

-        if (value > 0 && value < 1 && !blendModeExplicitlySet && _blendMode == "auto")
-        {
-            _blendMode = BlendMode.LAYER;
-            blendModeChanged = true;
-            invalidateDisplayObjectOrdering();
-            invalidateProperties();
-        }
-        else if ((value == 1 || value == 0) && !blendModeExplicitlySet && _blendMode == "auto")
-        {
-            _blendMode = BlendMode.NORMAL;
+        if (!blendModeExplicitlySet && _blendMode == "auto")
+        {
             blendModeChanged = true;
             invalidateDisplayObjectOrdering();
             invalidateProperties();
@@ -365,27 +357,16 @@
         //case we set the blendMode to layer to avoid the performance
         //overhead that comes with a non-normal blendMode.

-        if (alpha > 0 && alpha < 1 && !blendModeExplicitlySet && value == "auto")
-        {
-            if (_blendMode != BlendMode.LAYER)
+        if (!blendModeExplicitlySet && value == "auto")
+        {
+            if (((alpha > 0 && alpha < 1) && super.blendMode != BlendMode.LAYER) ||
+                ((alpha == 1 || alpha == 0) && super.blendMode != BlendMode.NORMAL) )
             {
-                _blendMode = BlendMode.LAYER;
                 blendModeChanged = true;
                 invalidateDisplayObjectOrdering();
                 invalidateProperties();
             }
         }
-        else if ((alpha == 1 || alpha == 0) && !blendModeExplicitlySet && value == "auto")
-        {
-            if (_blendMode != BlendMode.NORMAL)
-            {
-                _blendMode = BlendMode.NORMAL;
-                blendModeChanged = true;
-                invalidateDisplayObjectOrdering();
-                invalidateProperties();
-            }
-        }
-
         else
         {
 			var oldValue:String = _blendMode;


adds method chaining to payloads

adds method chaining to payloads


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

--- frameworks/projects/framework/src/mx/events/PropertyChangeEventKind.as
+++ frameworks/projects/framework/src/mx/events/PropertyChangeEventKind.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.events
 {


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

--- frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as
@@ -45,6 +45,11 @@
  *  when the data property changes.

  *
  *  @eventType mx.events.FlexEvent.DATA_CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="dataChange", type="mx.events.FlexEvent")]

@@ -55,6 +60,11 @@
 /**
  *  Text color of a component label.
  *  @default 0x0B333C
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="color", type="uint", format="Color", inherit="yes")]

@@ -62,6 +72,11 @@
  *  Text color of the component if it is disabled.
  *
  *  @default 0xAAB3B3
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="disabledColor", type="uint", format="Color", inherit="yes")]

@@ -77,6 +92,11 @@
  *  @see mx.controls.List
  *  @see mx.core.IDataRenderer
  *  @see mx.controls.listClasses.IDropInListItemRenderer
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ListItemRenderer extends UIComponent
                               implements IDataRenderer,
@@ -93,6 +113,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function ListItemRenderer()
     {
@@ -168,6 +193,11 @@
      *  to trigger a relayout of the component.
      *
      *  @see mx.core.IDataRenderer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get data():Object
     {
@@ -192,6 +222,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get fontContext():IFlexModuleFactory
     {
@@ -212,6 +247,11 @@

     /**
      *  The internal IFlexDisplayObject that displays the icon in this renderer.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected var icon:IFlexDisplayObject;

@@ -221,6 +261,11 @@

     /**
      *  The internal UITextField that displays the text in this renderer.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected var label:IUITextField;

@@ -241,6 +286,11 @@
      *  as defined by the IDropInListItemRenderer interface.
      *
      *  @see mx.controls.listClasses.IDropInListItemRenderer
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get listData():BaseListData
     {
@@ -457,6 +507,11 @@
      *  Positions the ToolTip object.
      *
      *  @param The Event object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function toolTipShowHandler(event:ToolTipEvent):void
     {


Added basic Actionscript API

Added basic Actionscript API

error: pathspec 'actionscript/src/com/freshplanet/ane/AirImagePicker/AirImagePicker.as' did not match any file(s) known to git

--- actionscript/src/com/freshplanet/ane/AirImagePicker/AirImagePicker.as
+++ actionscript/src/com/freshplanet/ane/AirImagePicker/AirImagePicker.as
@@ -0,0 +1,174 @@
+//////////////////////////////////////////////////////////////////////////////////////
+//
+//  Copyright 2012 Freshplanet (http://freshplanet.com | opensource@freshplanet.com)
+//
+//  Licensed 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
+//
+//    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 com.freshplanet.ane.AirImagePicker
+{
+	import flash.events.EventDispatcher;
+	import flash.events.StatusEvent;
+	import flash.external.ExtensionContext;
+	import flash.system.Capabilities;
+
+	public class AirImagePicker extends EventDispatcher
+	{
+		// --------------------------------------------------------------------------------------//
+		//																						 //
+		// 									   PUBLIC API										 //
+		// 																						 //
+		// --------------------------------------------------------------------------------------//
+
+		/** AirImagePicker is supported on iOS and Android devices. */
+		public static function get isSupported() : Boolean
+		{
+			return Capabilities.manufacturer.indexOf("iOS") != 1 || Capabilities.manufacturer.indexOf("Android") != -1;
+		}
+
+		public function AirImagePicker()
+		{
+			if (!_instance)
+			{
+				_context = ExtensionContext.createExtensionContext(EXTENSION_ID, null);
+				if (!_context)
+				{
+					log("ERROR - Extension context is null. Please check if extension.xml is setup correctly.");
+					return;
+				}
+				_context.addEventListener(StatusEvent.STATUS, onStatus);
+
+				_instance = this;
+			}
+			else
+			{
+				throw Error("This is a singleton, use getInstance(), do not call the constructor directly.");
+			}
+		}
+
+		public static function getInstance() : AirImagePicker
+		{
+			return _instance ? _instance : new AirImagePicker();
+		}
+
+		/**
+		 * If true, logs will be displayed at the Actionscript level.
+		 * If false, logs will be displayed only at the native level.
+		 */
+		public function get logEnabled() : Boolean
+		{
+			return _logEnabled;
+		}
+
+		public function set logEnabled( value : Boolean ) : void
+		{
+			_logEnabled = value;
+		}
+
+		/**
+		 * Returns true if the gallery image picker is available on the
+		 * current device, false otherwise.
+		 *
+		 * @see #displayImagePicker()
+		 */
+		public function isImagePickerAvailable() : Boolean
+		{
+			return isSupported && _context.call("isImagePickerAvailable");
+		}
+
+		/**
+		 * Display the gallery image picker if it is available on the current device.
+		 * Otherwise, do nothing.

+		 *
+		 * Once the user picks an image, it is returned as a parameter to the provided
+		 * callback function. If the user cancels, null is returned to the
+		 * callback. The callback can take an optional error parameter that will be
+		 * passed if something wrong happens.
+		 *
+		 * @param callback A callback function of the following form:
+		 * function myCallback(image:BitmapData, error:String = null)
+		 *
+		 * @see #isImagePickerAvailable()
+		 */
+		public function displayImagePicker( callback : Function ) : void
+		{
+			if (!isImagePickerAvailable()) callback(null);
+
+			_callback = callback;
+			_context.call("displayImagePicker");
+		}
+
+		/**
+		 * Returns true if the camera is available on the current device,
+		 * false otherwise.
+		 *
+		 * @see #displayCamera()
+		 */
+		public function isCameraAvailable() : Boolean
+		{
+			return isSupported && _context.call("isCameraAvailable");
+		}
+
+		/**
+		 * Display the camera if it is available on the current device. Otherwise, do
+		 * nothing.

+		 *
+		 * Once the user takes a picture, it is returned as a parameter to the provided
+		 * callback function. If the user cancels, null is returned to the
+		 * callback. The callback can take an optional error parameter that will be
+		 * passed if something wrong happens.
+		 *
+		 * @param callback A callback function of the following form:
+		 * function myCallback(image:BitmapData, error:String = null)
+		 *
+		 * @see #isCameraAvailable()
+		 */
+		public function displayCamera( callback : Function ) : void
+		{
+			if (!isCameraAvailable()) callback(null);
+
+			_callback = callback;
+			_context.call("displayCamera");
+		}
+
+
+		// --------------------------------------------------------------------------------------//
+		//																						 //
+		// 									 	PRIVATE API										 //
+		// 																						 //
+		// --------------------------------------------------------------------------------------//
+
+		private static const EXTENSION_ID : String = "com.freshplanet.AirImagePicker";
+		private static const LOG_TAG : String = "AirImagePicker";
+
+		private static var _instance : AirImagePicker;
+
+		private var _context : ExtensionContext;
+		private var _logEnabled : Boolean = false;
+		private var _callback : Function = null;
+
+		private function onStatus( event : StatusEvent ) : void
+		{
+			if (event.code == "LOGGING") // Simple log message
+			{
+				log(event.level);
+			}
+		}
+
+		private function log( message : String ) : void
+		{
+			if (_logEnabled) trace("["+LOG_TAG+"] " + message);
+		}
+	}
+}


Added HugeObjectCount sample. Todo: add animation, add C++ version.

error: pathspec 'Bin/Data/Scripts/20_HugeObjectCount.as' did not match any file(s) known to git

--- Bin/Data/Scripts/20_HugeObjectCount.as
+++ Bin/Data/Scripts/20_HugeObjectCount.as
@@ -0,0 +1,139 @@
+// Huge object count example.
+// This sample demonstrates:
+//     - Creating a scene with 250 x 250 simple objects;
+//     - Competing with http://yosoygames.com.ar/wp/2013/07/ogre-2-0-is-up-to-3x-faster/ :)
+//     - Allowing examination of performance hotspots in the rendering code;
+
+#include "Utilities/Sample.as"
+
+Scene@ scene_;
+Node@ cameraNode;
+float yaw = 0.0f;
+float pitch = 0.0f;
+
+void Start()
+{
+    // Execute the common startup for samples
+    SampleStart();
+
+    // Create the scene content
+    CreateScene();
+
+    // Create the UI content
+    CreateInstructions();
+
+    // Setup the viewport for displaying the scene
+    SetupViewport();
+
+    // Hook up to the frame update events
+    SubscribeToEvents();
+}
+
+void CreateScene()
+{
+    scene_ = Scene();
+
+    // Create the Octree component to the scene so that drawable objects can be rendered. Use default volume
+    // (-1000, -1000, -1000) to (1000, 1000, 1000)
+    scene_.CreateComponent("Octree");
+
+    // Create a Zone component for ambient lighting & fog control
+    Node@ zoneNode = scene_.CreateChild("Zone");
+    Zone@ zone = zoneNode.CreateComponent("Zone");
+    zone.boundingBox = BoundingBox(-1000.0f, 1000.0f);
+    zone.fogColor = Color(0.2f, 0.2f, 0.2f);
+    zone.fogStart = 200.0f;
+    zone.fogEnd = 300.0f;
+
+    // Create a directional light
+    Node@ lightNode = scene_.CreateChild("DirectionalLight");
+    lightNode.direction = Vector3(0.5f, -1.0f, 0.5f); // The direction vector does not need to be normalized
+    Light@ light = lightNode.CreateComponent("Light");
+    light.lightType = LIGHT_DIRECTIONAL;
+    light.color = Color(0.7f, 0.35f, 0.0f);
+
+    // Create box StaticModels in the scene
+    for (int y = -125; y < 125; ++y)
+    {
+        for (int x = -125; x < 125; ++x)
+        {
+            Node@ boxNode = scene_.CreateChild("Box");
+            boxNode.position = Vector3(x * 0.3f, 0.0f, y * 0.3f);
+            boxNode.SetScale(0.25f);
+            StaticModel@ boxObject = boxNode.CreateComponent("StaticModel");
+            boxObject.model = cache.GetResource("Model", "Models/Box.mdl");
+        }
+    }
+
+    // Create the camera
+    cameraNode = scene_.CreateChild("Camera");
+    cameraNode.position = Vector3(0.0f, 10.0f, -100.0f);
+    Camera@ camera = cameraNode.CreateComponent("Camera");
+    camera.farClip = 300.0f;
+}
+
+void CreateInstructions()
+{
+    // Construct new Text object, set string to display and font to use
+    Text@ instructionText = ui.root.CreateChild("Text");
+    instructionText.text = "Use WASD keys and mouse to move";
+    instructionText.SetFont(cache.GetResource("Font", "Fonts/Anonymous Pro.ttf"), 15);
+
+    // Position the text relative to the screen center
+    instructionText.horizontalAlignment = HA_CENTER;
+    instructionText.verticalAlignment= VA_CENTER;
+    instructionText.SetPosition(0, ui.root.height / 4);
+}
+
+void SetupViewport()
+{
+    // Set up a viewport to the Renderer subsystem so that the 3D scene can be seen
+    Viewport@ viewport = Viewport(scene_, cameraNode.GetComponent("Camera"));
+    renderer.viewports[0] = viewport;
+}
+
+void MoveCamera(float timeStep)
+{
+    // Do not move if the UI has a focused element (the console)
+    if (ui.focusElement !is null)
+        return;
+
+    // Movement speed as world units per second
+    const float MOVE_SPEED = 20.0f;
+    // Mouse sensitivity as degrees per pixel
+    const float MOUSE_SENSITIVITY = 0.1f;
+
+    // Use this frame's mouse motion to adjust camera node yaw and pitch. Clamp the pitch between -90 and 90 degrees
+    IntVector2 mouseMove = input.mouseMove;
+    yaw += MOUSE_SENSITIVITY * mouseMove.x;
+    pitch += MOUSE_SENSITIVITY * mouseMove.y;
+    pitch = Clamp(pitch, -90.0f, 90.0f);
+
+    // Construct new orientation for the camera scene node from yaw and pitch. Roll is fixed to zero
+    cameraNode.rotation = Quaternion(pitch, yaw, 0.0f);
+
+    // Read WASD keys and move the camera scene node to the corresponding direction if they are pressed
+    if (input.keyDown['W'])
+        cameraNode.TranslateRelative(Vector3(0.0f, 0.0f, 1.0f) * MOVE_SPEED * timeStep);
+    if (input.keyDown['S'])
+        cameraNode.TranslateRelative(Vector3(0.0f, 0.0f, -1.0f) * MOVE_SPEED * timeStep);
+    if (input.keyDown['A'])
+        cameraNode.TranslateRelative(Vector3(-1.0f, 0.0f, 0.0f) * MOVE_SPEED * timeStep);
+    if (input.keyDown['D'])
+        cameraNode.TranslateRelative(Vector3(1.0f, 0.0f, 0.0f) * MOVE_SPEED * timeStep);
+}
+
+void SubscribeToEvents()
+{
+    // Subscribe HandleUpdate() function for processing update events
+    SubscribeToEvent("Update", "HandleUpdate");
+}
+
+void HandleUpdate(StringHash eventType, VariantMap& eventData)
+{
+    // Take the frame time step, which is stored as a float
+    float timeStep = eventData["TimeStep"].GetFloat();
+
+    // Move the camera, scale movement with time step
+    MoveCamera(timeStep);
+}


exception handler should have type, no more warnings

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/dave-hansen/vpaidjs.git/'


Actually added the file

Actually added the file

git-svn-id: f772d44cbf86d9968f12179c1556189f5afcea6e@635 e0ac87d7-b42b-0410-9034-8248a05cb448

error: pathspec 'braineditor/ModeToggleButton.as' did not match any file(s) known to git

--- braineditor/ModeToggleButton.as
+++ braineditor/ModeToggleButton.as
@@ -0,0 +1,28 @@
+import ButtonControl;
+import Drawable;
+
+class ModeToggleButton extends ButtonControl{
+
+    function ModeToggleButton(mc:MovieClip,ul:Point,lr:Point){
+    super(mc,ul,lr,"Drag Mode");
+    status=Drawable.DRAGMODE;
+    }
+    var status;
+      function onPress():Void {
+        if(status == Drawable.DRAGMODE){
+            Drawable.mMode= Drawable.DRAWMODE;
+            setText("Draw Mode");
+            status=Drawable.DRAWMODE;
+        }
+        else if(status == Drawable.DRAWMODE){
+            setText("Erase Mode");
+            Drawable.mMode=Drawable.ERASEMODE;
+            status = Drawable.ERASEMODE;
+        }
+        else if(status == Drawable.ERASEMODE){
+            setText("Drag Mode");
+            Drawable.mMode=Drawable.DRAGMODE;
+            status = Drawable.DRAGMODE;
+        }
+      }
+}


Uint64.as 应该是 UInt64.as

Uint64.as 应该是 UInt64.as

error: pathspec 'as3/com/netease/protobuf/UInt64.as' did not match any file(s) known to git

--- as3/com/netease/protobuf/UInt64.as
+++ as3/com/netease/protobuf/UInt64.as
@@ -0,0 +1,19 @@
+// vim: tabstop=4 shiftwidth=4
+
+// Copyright (c) 2010 , NetEase.com,Inc. All rights reserved.
+//
+// Author: Yang Bo (pop.atry@gmail.com)
+//
+// Use, modification and distribution are subject to the "New BSD License"
+// as listed at <url: http://www.opensource.org/licenses/bsd-license.php >.
+
+package com.netease.protobuf {
+	public final class UInt64 {
+		public var low:uint;
+		public var high:uint;
+		public function UInt64(low:uint = 0, high:uint = 0) {
+			this.low = low
+			this.high = high
+		}
+	}
+}


Tidied logging, including commenting out super-annoying unload messages.

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

--- src/as/com/threerings/flash/MediaContainer.as
+++ src/as/com/threerings/flash/MediaContainer.as
@@ -333,7 +333,7 @@

             if (_media is Loader) {
                 var loader :Loader = (_media as Loader);
-                var url :String = loader.contentLoaderInfo.url;
+                //var url :String = loader.contentLoaderInfo.url;

                 // remove any listeners
                 removeListeners(loader.contentLoaderInfo);
@@ -343,8 +343,8 @@
                 dispatchEvent(new Event(Event.UNLOAD));

                 removeChild(loader);
-                var extra :String  = (url == _url) ? "" : (", _url=" + _url);
-                log.debug("Unloaded media [url=" + url + extra + "].");
+                //var extra :String  = (url == _url) ? "" : (", _url=" + _url);
+                //log.debug("Unloaded media [url=" + url + extra + "].");

             } else if (_media is SimpleVideoDisplay) {
                 var vid :SimpleVideoDisplay = SimpleVideoDisplay(_media);
@@ -356,8 +356,7 @@
                 removeChild(_media);
             }
         } catch (ioe :IOError) {
-            log.warning("Error shutting down media: " + ioe);
-            log.logStackTrace(ioe);
+            log.warning("Error shutting down media", ioe);
         }

         // clean everything up


changes: splitting params from uri

changes: splitting params from uri

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rafaelcordoba/cocktail-demo.git/'


Belatedly added linkpotential

Belatedly added linkpotential

error: pathspec 'src/Components/LinkPotential.as' did not match any file(s) known to git

--- src/Components/LinkPotential.as
+++ src/Components/LinkPotential.as
@@ -0,0 +1,26 @@
+package Components {
+	import Modules.Module;
+	/**
+	 * ...
+	 * @author Nicholas "PleasingFungus" Feinberg
+	 */
+	public class LinkPotential {
+
+		public var sourcePortIndex:int;
+		public var sourceModuleIndex:int;
+		public var destPortIndex:int;
+		public var destModuleIndex:int;
+		public function LinkPotential(SourcePortIndex:int, SourceModuleIndex:int, DestPortIndex:int, DestModuleIndex:int) {
+			sourceModuleIndex = SourceModuleIndex;
+			sourcePortIndex = SourcePortIndex;
+			destModuleIndex = DestModuleIndex;
+			destPortIndex = DestPortIndex;
+		}
+
+		public function manifestPotential(contextModules:Vector.<Module>):Link {
+			return new Link(contextModules[sourceModuleIndex].layout.ports[sourcePortIndex].port,
+							contextModules[destModuleIndex].layout.ports[destPortIndex].port);
+		}
+	}
+
+}


PopUp utilities for centering or fitting a popup inside a rectangle
(or the stage).

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

error: pathspec 'src/as/com/threerings/flex/PopUpUtil.as' did not match any file(s) known to git

--- src/as/com/threerings/flex/PopUpUtil.as
+++ src/as/com/threerings/flex/PopUpUtil.as
@@ -0,0 +1,64 @@
+//
+// $Id$
+
+package com.threerings.flex {
+
+import flash.geom.Point;
+import flash.geom.Rectangle;
+
+import mx.core.UIComponent;
+
+import com.threerings.flash.DisplayUtil;
+
+/**
+ * Flex popup utilities.
+ */
+public class PopUpUtil
+{
+    /**
+     * Center the popup inside the stage, to which it should already be added.
+     */
+    public static function center (popup :UIComponent) :void
+    {
+        centerInRect(popup, createStageRect(popup));
+    }
+
+    /**
+     * Center the popup within the specified rectangle.
+     */
+    public static function centerInRect (popup :UIComponent, rect :Rectangle) :void
+    {
+        var p :Point = DisplayUtil.centerRectInRect(new Rectangle(0, 0,
+            popup.getExplicitOrMeasuredWidth(), popup.getExplicitOrMeasuredHeight()), rect);
+        popup.x = p.x;
+        popup.y = p.y;
+    }
+
+    /**
+     * Fit the popup inside the stage.
+     */
+    public static function fit (popup :UIComponent) :void
+    {
+        fitInRect(popup, createStageRect(popup));
+    }
+
+    /**
+     * Fit the popup inside the specified rectangle.
+     */
+    public static function fitInRect (popup :UIComponent, rect :Rectangle) :void
+    {
+        var p :Point = DisplayUtil.fitRectInRect(new Rectangle(popup.x, popup.y,
+            popup.getExplicitOrMeasuredWidth(), popup.getExplicitOrMeasuredHeight()), rect);
+        popup.x = p.x;
+        popup.y = p.y;
+    }
+
+    /**
+     * Wee utility method.
+     */
+    protected static function createStageRect (popup :UIComponent) :Rectangle
+    {
+        return new Rectangle(0, 0, popup.stage.stageWidth, popup.stage.stageHeight);
+    }
+}
+}


307 Sorts an array of DOs by their x/y locations, in customizable order!!!wow

error: pathspec 'raw/src/org/yellcorp/lib/display/DisplaySort.as' did not match any file(s) known to git

--- raw/src/org/yellcorp/lib/display/DisplaySort.as
+++ raw/src/org/yellcorp/lib/display/DisplaySort.as
@@ -0,0 +1,82 @@
+package org.yellcorp.lib.display
+{
+import flash.display.DisplayObject;
+import flash.geom.Point;
+import flash.utils.Dictionary;
+
+
+public class DisplaySort
+{
+    public static const UP:String = "up";
+    public static const DOWN:String = "down";
+    public static const LEFT:String = "left";
+    public static const RIGHT:String = "right";
+
+    private static var sortMemo:Dictionary;
+    private static var zero:Point = new Point();
+
+    public static function sortByCoordinates(arrayOfDisplayObjects:Array,
+        primary:String, secondary:String):void
+    {
+        var prop1:String = primary == UP || primary == DOWN ? "y" : "x";
+        var lower1:int = primary == DOWN || primary == RIGHT ? -1 : 1;
+
+        var prop2:String = secondary == LEFT || secondary == RIGHT ? "x" : "y";
+        var lower2:int = secondary == DOWN || secondary == RIGHT ? -1 : 1;
+
+        sortMemo = new Dictionary(true);
+
+        function getMemoPoint(displayObject:DisplayObject):Point
+        {
+            var point:Point = sortMemo[displayObject];
+
+            if (!point)
+            {
+                sortMemo[displayObject] = point = displayObject.localToGlobal(zero);
+            }
+
+            return point;
+        }
+
+        function compare(a:DisplayObject, b:DisplayObject):int
+        {
+            var aPoint:Point = getMemoPoint(a);
+            var bPoint:Point = getMemoPoint(b);
+
+            var a1:Number = aPoint[prop1];
+            var b1:Number = bPoint[prop1];
+            var a2:Number;
+            var b2:Number;
+
+            if (a1 < b1)
+            {
+                return lower1;
+            }
+            else if (a1 > b1)
+            {
+                return -lower1;
+            }
+            else
+            {
+                a2 = aPoint[prop2];
+                b2 = bPoint[prop2];
+
+                if (a2 < b2)
+                {
+                    return lower2;
+                }
+                else if (a2 > b2)
+                {
+                    return -lower2;
+                }
+                else
+                {
+                    return 0;
+                }
+            }
+        }
+
+        arrayOfDisplayObjects.sort(compare);
+    }
+}
+}


[utils] Adds ObjectUtil class.

[utils] Adds ObjectUtil class.

fatal: unable to access 'https://github.com/skeinlib/skein.git/': The requested URL returned error: 403


disable capLevelonFPSDrop feature

disable capLevelonFPSDrop feature

it is currently broken

--- src/org/mangui/hls/HLSSettings.as
+++ src/org/mangui/hls/HLSSettings.as
@@ -139,9 +139,9 @@
          *
          * Note: this setting is ignored in manual mode so all the levels could be selected manually.
          *
-         * Default is true
-         */
-        public static var capLevelonFPSDrop : Boolean = true;
+         * Default is false
+         */
+        public static var capLevelonFPSDrop : Boolean = false;

         /**
          * smoothAutoSwitchonFPSDrop


- added first working version of TextInput component. Focus management is disabled for now

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

error: pathspec 'src/reprise/controls/TextInput.as' did not match any file(s) known to git

--- src/reprise/controls/TextInput.as
+++ src/reprise/controls/TextInput.as
@@ -0,0 +1,155 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Fork unstable media GmbH
+//  Copyright 2006-2008 Fork unstable media GmbH
+//  All Rights Reserved.
+//
+//  NOTICE: Fork unstable media permits you to use, modify, and distribute this
+//  file in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package reprise.controls
+{
+	import flash.events.Event;
+	import flash.text.TextFormat;
+
+	public class TextInput extends Label
+	{
+		/***************************************************************************
+		*							public properties							   *
+		***************************************************************************/
+		public static const className : String = "TextInput";
+
+
+		/***************************************************************************
+		*							protected properties							   *
+		***************************************************************************/
+		protected var m_enabled : Boolean;
+		protected var m_labelStr : String;
+		protected var m_hasFocus : Boolean;
+
+		/***************************************************************************
+		*							public methods								   *
+		***************************************************************************/
+		public function TextInput ()
+		{
+
+		}
+
+		/**
+		 * disables the TextInput, making it non-editable
+		 */
+		public override function set enabled(value:Boolean) : void
+		{
+			m_enabled = value;
+			if (!value)
+			{
+				addPseudoClass("disabled");
+				m_labelDisplay.type = "dynamic";
+			}
+			else
+			{
+				removePseudoClass("disabled");
+				m_labelDisplay.type = "input";
+			}
+			invalidate();
+		}
+		public override function get enabled () : Boolean
+		{
+			return m_enabled;
+		}
+
+		/**
+		 * sets the input focus to this TextInputs' Label field
+		 */
+		public function setFocus() : void
+		{
+//			Selection.setFocus(m_labelDisplay);
+		}
+
+		public override function setLabel(label:String) : void
+		{
+			m_labelStr = label;
+			m_labelDisplay.text = label;
+		}
+
+		public override function getLabel() : String
+		{
+			return m_labelStr;
+		}
+
+		public function getValue() : Object
+		{
+			return getLabel();
+		}
+
+
+		/***************************************************************************
+		*							protected methods
+		***************************************************************************/
+		protected override function initialize () : void
+		{
+			super.initialize();
+			enabled = true;
+//			m_labelDisplay.onSetFocus = label_focusIn;
+//			m_labelDisplay.onKillFocus = label_focusOut;
+//			m_labelDisplay.onChanged = label_change;
+		}
+
+		protected override function initDefaultStyles() : void
+		{
+			super.initDefaultStyles();
+			m_elementDefaultStyles.setStyle('multiline', 'false');
+			m_elementDefaultStyles.setStyle('display', 'block');
+			m_elementDefaultStyles.setStyle('wordWrap', 'false');
+			m_elementDefaultStyles.setStyle('height', '18px');
+			m_elementDefaultStyles.setStyle('padding', '2px');
+		}
+		protected override function applyStyles() : void
+		{
+			super.applyStyles();
+			m_labelDisplay.restrict = m_currentStyles.inputCharRestrict;
+			m_labelDisplay.maxChars = m_currentStyles.inputLengthRestrict;
+		}
+
+		protected override function renderLabel() : void
+		{
+			m_labelXML = <p>[[!]]</p>;
+			super.renderLabel();
+			var format:TextFormat = m_labelDisplay.getTextFormat();
+			m_labelDisplay.styleSheet = null;
+			m_labelDisplay.defaultTextFormat = format;
+			m_labelDisplay.text = m_labelStr || '';
+			m_labelDisplay.width = calculateContentWidth();
+			m_labelDisplay.height = calculateContentHeight();
+		}
+
+		protected function label_change() : void
+		{
+			m_labelStr = m_labelDisplay.text;
+			dispatchEvent(new Event(Event.CHANGE));
+			applyOverflowProperty();
+		}
+
+		protected override function draw () : void
+		{
+			super.draw();
+			if (!isNaN(m_tabIndex))
+			{
+				m_labelDisplay.tabIndex = m_tabIndex;
+			}
+		}
+		protected function label_focusIn() : void
+		{
+			m_hasFocus = true;
+			removeErrorMark();
+//			dispatchEvent(new FocusEvent(FocusEvent.FOCUS_IN, true, false, this));
+		}
+		protected function label_focusOut() : void
+		{
+			m_hasFocus = false;
+//			dispatchEvent(new FocusEvent(FocusEvent.FOCUS_OUT, true, false, this));
+		}
+	}
+}


Added swf objects-

Added swf objects-

Anyway we can push TUIO events into a loaded SWF?

error: pathspec 'AS3/lib/app/core/object/SWFObject.as' did not match any file(s) known to git

--- AS3/lib/app/core/object/SWFObject.as
+++ AS3/lib/app/core/object/SWFObject.as
@@ -0,0 +1,18 @@
+package app.core.object {
+	import com.touchlib.*;
+	import app.core.action.RotatableScalable;
+
+	import flash.display.*;
+	import flash.events.*;
+	import flash.net.*;
+	import flash.geom.*;
+	import flash.text.*;
+
+	public class SWFObject extends RotatableScalable
+	{
+		public function SWFObject()
+		{
+
+		}
+	}
+}


changing drawCircle

changing drawCircle


Update to GIFRequest

Update to GIFRequest

- Changed url encode override to true
- Updated url reference to utmhn to local property

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ign/gaforflash.git/'


using string literal instead of FULL_SCREEN_INTERACTIVE constant

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/tpeace/set_openvv.git/'


fixed newlines after keywords

fixed newlines after keywords


adding SystemUtil class with a first gc method


Transferred from the Adobe Open Source Subversion Repository

Revision: 14377
Author:   jszeto@adobe.com
Date:     2010-02-24T00:35:29.121565Z

Log Message:
-----------
Merging revision 14376 from 4.x to trunk

Mirroring bug fixes

http://bugs.adobe.com/jira/browse/SDK-25427 - HTML AIR component should not be mirrored even when layoutDirection=rtl

Set layoutDirection=ltr in defaults.css

http://bugs.adobe.com/jira/browse/SDK-25626 - The Spark VSlider dataTip is not positioned correctly when layoutDirection=rtl. It obscures the thumb.

Translate the position from mirrored local coordinate to global coordinates.

http://bugs.adobe.com/jira/browse/SDK-25584 - MX MenuBar displays menus offscreen when layoutDirection is rtl

Added logic to keep the menus from going off the left side of the screen.

QE notes: none
Doc notes: none
Bugs: SDK-25427, SDK-25626, SDK-25584
Reviewer: Hans
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/defaults.css</path>

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

--- frameworks/projects/mx/src/mx/controls/MenuBar.as
+++ frameworks/projects/mx/src/mx/controls/MenuBar.as
@@ -1811,6 +1811,7 @@
             pt.y += item.height + 1;
         if (pt.x + menu.getExplicitOrMeasuredWidth() > screen.width + screen.x)
             pt.x = screen.x + screen.width - menu.getExplicitOrMeasuredWidth();
+        pt.x = Math.max(screen.x, pt.x);
         pt = sm.getSandboxRoot().globalToLocal(pt);

         // If inside an ACB, slight offset looks much better.


Version 1.4.

Version 1.4.

--- net/flashpunk/FP.as
+++ net/flashpunk/FP.as
@@ -22,7 +22,7 @@
 		/**
 		 * The FlashPunk major version.
 		 */
-		public static const VERSION:String = "1.3";
+		public static const VERSION:String = "1.4";

 		/**
 		 * Width of the game.


Prevent editor view change when there is a modal window.

--- Bin/Data/Scripts/Editor/EditorView.as
+++ Bin/Data/Scripts/Editor/EditorView.as
@@ -1086,8 +1086,11 @@

 void UpdateView(float timeStep)
 {
+    if (ui.HasModalElement() || ui.focusElement !is null)
+        return;
+
     // Move camera
-    if (ui.focusElement is null && !input.keyDown[KEY_LCTRL])
+    if (!input.keyDown[KEY_LCTRL])
     {
         float speedMultiplier = 1.0;
         if (input.keyDown[KEY_LSHIFT])
@@ -1171,7 +1174,7 @@
         orbiting = false;

     // Move/rotate/scale object
-    if (!editNodes.empty && editMode != EDIT_SELECT && ui.focusElement is null && input.keyDown[KEY_LCTRL])
+    if (!editNodes.empty && editMode != EDIT_SELECT && input.keyDown[KEY_LCTRL])
     {
         Vector3 adjust(0, 0, 0);
         if (input.keyDown[KEY_UP])


cosmetic

cosmetic

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/pubnub/flash.git/'


I'm never write the ActionScript, no more.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Ju2ender/CommentLib.git/'


fix namespace remover

fix namespace remover


Transferred from the Adobe Open Source Subversion Repository

Revision: 8044
Author:   chaase@adobe.com
Date:     2009-06-22T17:01:54.701660Z

Log Message:
-----------
Final (!) PARB changes for effects.
- renamed ArrayInterpolator to MultiValueInterpolator (and enhanced behavior to handle Vectors as well as Arrays).
- Created new AnimateTransform3D subclass of AnimateTransform (to hold 3D-specific properties/defaults), and moved Move3D, Rotate3D, Scale3D to subclass from this new class.

QE Notes: Change to default value of applyLocalProjection (matches former default on 3D effects, but not default on AnimateTransform).
Doc Notes: None
Bugs: None
Reviewer: Hans
Tests: checkintests, effects cyclone from QE

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as" copyfrom-rev="7917" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/MultiValueInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Animate.as
+++ frameworks/projects/spark/src/spark/effects/Animate.as
@@ -118,7 +118,7 @@
     //--------------------------------------------------------------------------

     // Cached version of the affected properties. By default, we simply return
-    // the list of properties specified in the motionPaths array.
+    // the list of properties specified in the motionPaths Vector.
     // Subclasses should override getAffectedProperties() if they wish to
     // specify a different set.
     private var affectedProperties:Array = null;
@@ -147,7 +147,6 @@
      * Storage for the motionPaths property.
      */
     private var _motionPaths:Vector.<MotionPath>;
-    [Inspectable(category="General", arrayType="spark.effects.MotionPath")]
     /**
      * A Vector of MotionPath objects, each of which holds the
      * name of a property being animated and the values that the property
@@ -234,14 +233,15 @@
      * the start and end values of a property.
      * By default, interpolation is handled
      * by the NumberInterpolator class or, in the case of the start
-     * and end values being Arrays, by the ArrayInterpolator class.
+     * and end values being Arrays or Vectors, by the
+     * MultiValueInterpolator class.
      * Interpolation of other types, or of Numbers that should be interpolated
      * differently, such as uint values that hold color
      * channel information, can be handled by supplying a different
      * interpolator.
      *
      *  @see spark.effects.interpolation.NumberInterpolator
-     *  @see spark.effects.interpolation.ArrayInterpolator
+     *  @see spark.effects.interpolation.MultiValueInterpolator
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 5310
Author:   jszeto@adobe.com
Date:     2009-03-13T22:10:52.856444Z

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

SDK-19845 Straight-line paths do not seem to render properly.

The Path was not protecting against zero value width or height when drawing the segments.

Fixed bug in FxSpinner where all keyboard events were not bubbling. Instead, what we want is for the UP/DOWN/HOME/END keyDown events to not bubble.

Updated function name in FxSlider to follow event handler function naming convention.

QE Notes: Add tests for vertical or horizontal line Paths
Doc Notes: n/a
Bugs: SDK-19845
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Path.as
+++ frameworks/projects/spark/src/spark/primitives/Path.as
@@ -700,8 +700,8 @@
     	if (graphicsPathChanged)
     	{
     	    var rcBounds:Rectangle = getBounds();
-    	    var sx:Number = width/((rcBounds.width == 0)? 0:rcBounds.width);
-    	    var sy:Number = height/((rcBounds.height == 0)? 0:rcBounds.height);
+    	    var sx:Number = rcBounds.width == 0 ? 1 : width/rcBounds.width;
+    	    var sy:Number = rcBounds.height == 0 ? 1 : height/rcBounds.height;

 	        renderGraphicsAtScale(drawX,drawY,sx,sy);
 	        graphicsPathChanged = false;


updating win animation

updating win animation

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jkanchelov/VideoPoker.git/'


Added LinkablePromise; not tested yet.

Added LinkablePromise; not tested yet.

error: pathspec 'WeaveCore/src/weave/core/LinkablePromise.as' did not match any file(s) known to git

--- WeaveCore/src/weave/core/LinkablePromise.as
+++ WeaveCore/src/weave/core/LinkablePromise.as
@@ -0,0 +1,108 @@
+/*
+    Weave (Web-based Analysis and Visualization Environment)
+    Copyright (C) 2008-2011 University of Massachusetts Lowell
+
+    This file is a part of Weave.
+
+    Weave is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License, Version 3,
+    as published by the Free Software Foundation.
+
+    Weave is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with Weave.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package weave.core
+{
+	import mx.rpc.AsyncResponder;
+	import mx.rpc.AsyncToken;
+	import mx.rpc.events.FaultEvent;
+	import mx.rpc.events.ResultEvent;
+
+	import weave.api.core.ICallbackCollection;
+	import weave.api.core.IDisposableObject;
+	import weave.api.core.ILinkableObject;
+
+	/**
+	 * @author adufilie
+	 */
+	public class LinkablePromise implements ILinkableObject, IDisposableObject
+	{
+		public function LinkablePromise(invoke:Function, invokeParams:Array = null)
+		{
+			this.invoke = invoke;
+			this.invokeParams = invokeParams;
+			this.callbackCollection = WeaveAPI.SessionManager.getCallbackCollection(this);
+
+			callbackCollection.addGroupedCallback(null, groupedCallback);
+		}
+
+		private var callbackCollection:ICallbackCollection;
+		private var invoke:Function;
+		private var invokeParams:Array;
+		private var asyncToken:AsyncToken;
+		private var resultTriggerCount:int = 0;
+
+		public var result:Object;
+		public var error:Error;
+
+		private function groupedCallback():void
+		{
+			if (callbackCollection.triggerCounter == resultTriggerCount)
+				return;
+
+			this.result = null;
+			this.error = null;
+
+			WeaveAPI.ProgressIndicator.addTask(groupedCallback, this);
+
+			asyncToken = invoke.apply(null, invokeParams) as AsyncToken;
+			if (asyncToken)
+			{
+				asyncToken.addResponder(new AsyncResponder(handleResult, handleFault, asyncToken));
+			}
+			else
+			{
+				asyncToken = null;
+				WeaveAPI.StageUtils.callLater(this, handleResult);
+			}
+		}
+
+		private function handleResult(event:ResultEvent = null, asyncToken:AsyncToken = null):void
+		{
+			if (this.asyncToken != asyncToken)
+				return;
+
+			WeaveAPI.ProgressIndicator.removeTask(groupedCallback);
+
+			this.result = event && event.result;
+			this.error = null;
+
+			resultTriggerCount = callbackCollection.triggerCounter + 1;
+			callbackCollection.triggerCallbacks();
+		}
+
+		private function handleFault(event:FaultEvent, asyncToken:AsyncToken):void
+		{
+			if (this.asyncToken != asyncToken)
+				return;
+
+			WeaveAPI.ProgressIndicator.removeTask(groupedCallback);
+
+			this.result = null;
+			this.error = event.fault;
+
+			resultTriggerCount = callbackCollection.triggerCounter + 1;
+			callbackCollection.triggerCallbacks();
+		}
+
+		public function dispose():void
+		{
+		}
+	}
+}


Fingers examples (FingersExmaple.as) added.

error: pathspec 'test/com/filimanjaro/fingers/FingersExample.as' did not match any file(s) known to git

--- test/com/filimanjaro/fingers/FingersExample.as
+++ test/com/filimanjaro/fingers/FingersExample.as
@@ -0,0 +1,52 @@
+package com.filimanjaro.fingers
+{
+import flash.display.MovieClip;
+
+public class FingersExample
+{
+    public function FingersExample()
+    {
+        // This is a sample use of `Fingers`.
+        // Fingers are micro AS3 extension for
+        // handling events, inspired on C#.
+        // --
+        // Enjoy,
+        // Filip Zawada (the author)
+
+        // We will use MovieClip, however you
+        // can use any IEventDispatcher you wish.
+        var obj:MovieClip = new MovieClip();
+
+        // go to next frame, when user click obj.
+        // (listening for an event example)
+        on(obj).click = obj.nextFrame;
+
+        // Pure AS3 isn't so friendly:
+        // obj.addEventListener(MouseEvent.CLICK, function ():void {
+        //     obj.nextFrame();
+        // });
+
+        // add another listener
+        // (without removing previous one)
+        on(obj).click += function():void
+        {
+            obj.alpha = 0.5;
+        }
+
+        // dispatch an event!
+        on(obj).click();
+
+        // remove all obj click listeners (only those added with `on`)
+        on(obj).click = null;
+
+        // remove all obj listeners added (only those added with `on`)
+        on(obj).removeAllListeners();
+
+
+        // more docs soon...
+        //
+        // homepage: http://filimanjaro.com/fingers
+        // download: https://github.com/FilipZawada/Fingers
+    }
+}
+}


Automated merge with http://bitbucket.org/ovidiu/conflexplore/

error: pathspec 'src/logic/NaiveConceptProcessor.as' did not match any file(s) known to git

--- src/logic/NaiveConceptProcessor.as
+++ src/logic/NaiveConceptProcessor.as
@@ -0,0 +1,21 @@
+package logic
+{
+	import com.adobe.flex.extras.controls.springgraph.Graph;
+
+	import mx.collections.ArrayCollection;
+
+	public class NaiveConceptProcessor implements IConceptProcessor
+	{
+		public function NaiveConceptProcessor()
+		{
+		}
+
+		public function computeConcept(objects:Array, attributes:Array, data:ArrayCollection):Graph
+		{
+
+
+			return new Graph();
+		}
+
+	}
+}


Bug 458419: Add regression test case (r=me)

error: pathspec 'test/acceptance/regress/bug_458419.as' did not match any file(s) known to git

--- test/acceptance/regress/bug_458419.as
+++ test/acceptance/regress/bug_458419.as
@@ -0,0 +1,67 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is [Open Source Virtual Machine.].
+ *
+ * The Initial Developer of the Original Code is
+ * Adobe System Incorporated.
+ * Portions created by the Initial Developer are Copyright (C) 2009
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   Adobe AS3 Team
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+package
+{
+    var SECTION="";
+    var VERSION = "";
+
+    startTest();
+
+    writeHeaderToLog("Bug 458419");
+
+
+    function f():String
+    {
+        var v : Vector.<String> = Vector.<String>(["one", "two"]);
+        var ans:String = "";
+
+        if( 5.5 in v )
+            ans = "5.5 in v";
+        else
+            ans = "5.5 not in v";
+
+        return ans
+    }
+
+    AddTestCase("hasAtomProperty for Vector should not throw an exception",
+                "5.5 not in v",
+                f()
+                );
+
+    test();
+
+}


Added a DateUtil class with a convenience function I need.

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

error: pathspec 'src/as/com/threerings/util/DateUtil.as' did not match any file(s) known to git

--- src/as/com/threerings/util/DateUtil.as
+++ src/as/com/threerings/util/DateUtil.as
@@ -0,0 +1,86 @@
+//
+// $Id: TimeUtil.java 3372 2005-03-01 01:16:01Z ray $
+//
+// Narya library - tools for developing networked games
+// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/narya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.util {
+
+/**
+ * Utility for dates.
+ */
+public class DateUtil
+{
+    /**
+     * Calculates a brief, conversational representation of the given date relative to 'now':
+     *
+     * Date occured in a past year:
+     *    10/10/1969
+     * Date occured over 6 days ago:
+     *    Oct 10
+     * Date occured over 23 hours ago:
+     *    Wed 15:10
+     * Date occured in the past 23 hours:
+     *   15:10
+     **/
+    public static function getConversationalDateString (date :Date, now :Date = null) :String
+    {
+        if (now == null) {
+            now = new Date();
+        }
+        if (date.fullYear != now.fullYear) {
+            // e.g. 25/10/06
+            return date.day + "/" + date.month + "/" + date.fullYear;
+        }
+        var hourDiff :uint = (now.time - date.time) / (3600 * 1000);
+        if (hourDiff > 6*24) {
+            // e.g. Oct 25
+            return getMonthName(date.month) + " " + date.day;
+        }
+        if (hourDiff > 23) {
+            // e.g. Wed 15:10
+            return getDayName(date.day) + " " + date.hours + ":" +
+                   (date.minutes < 10 ? "0" : "") + date.minutes;
+           }
+        // e.g. 15:10
+        return date.hours + ":" + (date.minutes < 10 ? "0" : "") + date.minutes;
+    }
+
+    /**
+     * Return the name of the given (integer) month; 0 is January, and so on.
+     */
+    public static function getMonthName (month :uint, full :Boolean = false) :String
+    {
+        return full ? _months[month] : _months[month].substr(0, 3);
+    }
+
+    /**
+     * Return the name of the given (integer) day; 0 is Sunday, and so on.
+     */
+    public static function getDayName (day :uint, full :Boolean = false) :String
+    {
+        return full ? _days[day] : _days[day].substr(0, 3);
+    }
+
+    protected static var _days :Array =
+        [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
+    protected static var _months :Object =
+        [ "January", "February", "March", "April", "May", "June",
+          "July", "August", "September", "October", "November", "December" ];
+}
+}


change interval checking to use viewabilityState


adding getter/setter for the last updated property and value

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/rafaelcordoba/cocktail-demo.git/'


Added AngleTween class for tweening from one angle to another.

error: pathspec 'net/flashpunk/tweens/misc/AngleTween.as' did not match any file(s) known to git

--- net/flashpunk/tweens/misc/AngleTween.as
+++ net/flashpunk/tweens/misc/AngleTween.as
@@ -0,0 +1,58 @@
+package net.flashpunk.tweens.misc
+{
+	import net.flashpunk.FP;
+	import net.flashpunk.Tween;
+
+	/**
+	 * Tweens from one angle to another.
+	 */
+	public class AngleTween extends Tween
+	{
+		/**
+		 * The current value.
+		 */
+		public var angle:Number = 0;
+
+		/**
+		 * Constructor.
+		 * @param	complete	Optional completion callback.
+		 * @param	type		Tween type.
+		 */
+		public function AngleTween(complete:Function = null, type:uint = 0)
+		{
+			super(0, type, complete);
+		}
+
+		/**
+		 * Tweens the value from one angle to another.
+		 * @param	fromAngle		Start angle.
+		 * @param	toAngle			End angle.
+		 * @param	duration		Duration of the tween.
+		 * @param	ease			Optional easer function.
+		 */
+		public function tween(fromAngle:Number, toAngle:Number, duration:Number, ease:Function = null):void
+		{
+			_start = angle = fromAngle;
+			var d:Number = toAngle - angle,
+				a:Number = Math.abs(d);
+			if (a > 181) _range = (360 - a) * (d > 0 ? -1 : 1);
+			else if (a < 179) _range = d;
+			else _range = FP.choose(180, -180);
+			_target = duration;
+			_ease = ease;
+			start();
+		}
+
+		/** @private Updates the Tween. */
+		override public function update():void
+		{
+			super.update();
+			angle = (_start + _range * _t) % 360;
+			if (angle < 0) angle += 360;
+		}
+
+		// Tween information.
+		/** @private */ private var _start:Number;
+		/** @private */ private var _range:Number;
+	}
+}


playSound was missing some args.

playSound was missing some args.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/c0d3m0nk3y/Konata.git/'


some example code for 6502

some example code for 6502

error: pathspec '6502/easy6502/11.as' did not match any file(s) known to git


booting classes before start listening

booting classes before start listening


Added hls_internal namespace

Added hls_internal namespace

error: pathspec 'src/org/mangui/hls/utils/hls_internal.as' did not match any file(s) known to git

--- src/org/mangui/hls/utils/hls_internal.as
+++ src/org/mangui/hls/utils/hls_internal.as
@@ -0,0 +1,4 @@
+package org.mangui.hls.utils
+{
+	public namespace hls_internal;
+}