HorizontalFlow, which lays out displayobjects like inline HTML

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

--- raw/src/org/yellcorp/lib/layout/HorizontalFlow.as
+++ raw/src/org/yellcorp/lib/layout/HorizontalFlow.as
@@ -0,0 +1,141 @@
+package org.yellcorp.lib.layout
+{
+import org.yellcorp.lib.collections.LinkedSet;
+import org.yellcorp.lib.iterators.readonly.Iterator;
+
+import flash.display.DisplayObject;
+import flash.geom.Point;
+
+
+public class HorizontalFlow
+{
+    public var topLeft:Point;
+    public var xGutter:Number;
+    public var yGutter:Number;
+    public var width:Number;
+    public var rowVerticalAlignment:Number;
+
+    private var members:LinkedSet;
+
+    public function HorizontalFlow(topLeft:Point = null,
+        xGutter:Number = 0, yGutter:Number = 0,
+        rowVerticalAlignment:Number = 1,
+        width:Number = Number.POSITIVE_INFINITY)
+    {
+        this.topLeft = topLeft;
+        this.xGutter = xGutter;
+        this.yGutter = yGutter;
+        this.width = width;
+        this.rowVerticalAlignment = rowVerticalAlignment;
+
+        members = new LinkedSet();
+    }
+
+    public function clear():void
+    {
+        members.clear();
+    }
+
+    public function append(member:DisplayObject):void
+    {
+        members.pushBack(member);
+    }
+
+    public function insertAfter(
+        newMember:DisplayObject, referenceMember:DisplayObject):void
+    {
+        members.insertAfter(newMember, referenceMember);
+    }
+
+    public function insertBefore(
+        newMember:DisplayObject, referenceMember:DisplayObject):void
+    {
+        members.insertBefore(newMember, referenceMember);
+    }
+
+    public function appendMany(newMembers:*):void
+    {
+        for each (var d:DisplayObject in newMembers)
+        {
+            members.pushBack(d);
+        }
+    }
+
+    public function remove(member:DisplayObject):Boolean
+    {
+        return members.remove(member);
+    }
+
+    public function contains(member:DisplayObject):Boolean
+    {
+        return members.contains(member);
+    }
+
+    public function getMemberAt(index:int):DisplayObject
+    {
+        return DisplayObject(members.get(index));
+    }
+
+    public function removeAt(index:int):Boolean
+    {
+        return members.removeAt(index);
+    }
+
+    public function insertAt(newMember:DisplayObject, index:int):void
+    {
+        members.insertAt(newMember, index);
+    }
+
+    public function layout():void
+    {
+        var i:Iterator;
+        var d:DisplayObject;
+
+        var cx:Number = topLeft ? topLeft.x : 0;
+        var cy:Number = topLeft ? topLeft.y : 0;
+
+        var gx:Number = isFinite(xGutter) ? xGutter : 0;
+        var gy:Number = isFinite(yGutter) ? yGutter : 0;
+
+        var row:Array = [ ];
+        var rowHeight:Number = 0;
+        var rowAlignment:Number = isFinite(rowVerticalAlignment) ? rowVerticalAlignment : 0;
+
+        for (i = members.iterator; i.valid; i.next())
+        {
+            d = i.current;
+
+            if (row.length > 0 && cx + d.width > width)
+            {
+                alignRow(row, cy, rowHeight, rowAlignment);
+                cx = 0;
+                cy += rowHeight + gy;
+                row = [ ];
+                rowHeight = 0;
+            }
+
+            if (d.height > rowHeight)
+            {
+                rowHeight = d.height;
+            }
+            d.x = cx;
+            cx += d.width + gx;
+            row.push(d);
+        }
+        alignRow(row, cy, rowHeight, rowAlignment);
+    }
+
+    private function alignRow(row:Array, cy:Number,
+        rowHeight:Number, rowAlignment:Number):void
+    {
+        if (row.length == 0)
+        {
+            return;
+        }
+        for each (var d:DisplayObject in row)
+        {
+            d.y = cy + rowAlignment * (rowHeight - d.height);
+        }
+    }
+}
+}


Bug 504695: testcase for toString with radix 2 broken for values >= 1e117 (r=cpeyer)

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

--- test/acceptance/ecma3/Number/e15_7_4_2_5.as
+++ test/acceptance/ecma3/Number/e15_7_4_2_5.as
@@ -0,0 +1,98 @@
+/* ***** 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 ***** */
+
+var SECTION = ".toString Radix";
+var VERSION = "";
+startTest();
+
+writeHeaderToLog( SECTION );
+
+AddTestCase("(0).toString(16)",
+        "0",
+        (0).toString(16));
+
+AddTestCase("Math.PI.toString(16)",
+        "3",
+        Math.PI.toString(16));
+
+AddTestCase("Number.MIN_VALUE.toString(16)",
+        "0",
+        Number.MIN_VALUE.toString(16));
+
+AddTestCase("Number.MAX_VALUE.toString(16)",
+        "fffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+        Number.MAX_VALUE.toString(16));
+
+AddTestCase("(65535).toString(16)",
+        "ffff",
+        (65535).toString(16));
+
+AddTestCase("(1e100).toString(16)",
+        "1249ad2594c37d0000000000000000000000000000000000000000000000000000000000000000000000",
+        (1e100).toString(16));
+
+AddTestCase("(1e307).toString(2)",
+        "111000111101100011111001111001010110001110100001100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+        (1e307).toString(2));
+
+AddTestCase("(-65535).toString(16)",
+        "-ffff",
+        (-65535).toString(16));
+
+AddTestCase("(-1e100).toString(16)",
+        "-1249ad2594c37d0000000000000000000000000000000000000000000000000000000000000000000000",
+        (-1e100).toString(16));
+
+AddTestCase("(-1e307).toString(2)",
+        "-111000111101100011111001111001010110001110100001100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+        (-1e307).toString(2));
+
+AddTestCase("Infinity.toString(5)",
+        "Infinity",
+        Infinity.toString(5));
+
+AddTestCase("(1e117).toString(2)",
+        "11001011000010010000110010000000000000011010101101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+        (1e117).toString(2));
+
+AddTestCase("(-1e117).toString(2)",
+        "-11001011000010010000110010000000000000011010101101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+        (-1e117).toString(2));
+
+
+test();
+


scheme is being loaded at Model!

scheme is being loaded at Model!

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/'


Setting sub timeout to default of 310s

Setting sub timeout to default of 310s

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/'


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
+		}
+	}
+}


putting method descriptions in master. its like documentation

error: pathspec 'method_descriptions/ktu/utils/align/methods/MethodDescriptions.as' did not match any file(s) known to git

--- method_descriptions/ktu/utils/align/methods/MethodDescriptions.as
+++ method_descriptions/ktu/utils/align/methods/MethodDescriptions.as
@@ -0,0 +1,33 @@
+package {
+	import flash.display.Sprite;
+
+	/**
+	 *
+	 * This swf explains how each method works.
+	 *
+	 * once it is done, you should only have to modify the xml to add more options
+	 *
+	 *
+	 *
+	 * 	So, place the overlay, loading data
+	 * if fail, show fail
+	 *
+	 * on data
+	 * parse it and create ui
+	 *
+	 * once settled, just handle button interactions
+	 *
+	 *
+	 *
+	 * ...
+	 * @author ktu
+	 */
+	public class MethodDescriptions extends Sprite {
+
+		public function MethodDescriptions() {
+
+		}
+
+	}
+
+}


improving loading logic

improving loading logic


Create new utility class: ClassUtil.

Create new utility class: ClassUtil.

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

--- dolly-framework/src/main/actionscript/dolly/utils/ClassUtil.as
+++ dolly-framework/src/main/actionscript/dolly/utils/ClassUtil.as
@@ -0,0 +1,18 @@
+package dolly.utils {
+import flash.net.registerClassAlias;
+import flash.utils.getQualifiedClassName;
+
+public class ClassUtil {
+
+	public static function getFullClassName(clazz:Class):String {
+		return getQualifiedClassName(clazz).replace("::", ".");
+	}
+
+	public static function registerAliasFor(clazz:Class):void {
+		registerClassAlias(
+				getFullClassName(clazz),
+				clazz
+		);
+	}
+}
+}


Bugfix i forbindelse med ticket:22.

Bugfix i forbindelse med ticket:22.

--- app/src/no/makingwaves/cust/dss/code/TravelExpenceCalculator.as
+++ app/src/no/makingwaves/cust/dss/code/TravelExpenceCalculator.as
@@ -188,6 +188,9 @@
 					var locationList:ArrayCollection = new ArrayCollection();
 					var specStartDate:Date = new Date();
 					var specStopDate:Date = new Date();
+					var activeCity:String = "";
+					var specFromCity:String = "";
+					var specToCity:String = "";
 					for (var t:int = 0; t < timeFrameSpecs.length; t++) {
 						var spec:TravelSpecificationVO = timeFrameSpecs.getItemAt(t) as TravelSpecificationVO;
 						var testTravelEnd:Boolean = true;
@@ -200,7 +203,10 @@
 							activeLocation.startDate = (specStartDate.getTime() > dateStart.getTime()) ? specStartDate : dateStart;

 						} else {
-							if (activeLocation.country != spec.from_country || activeLocation.city != spec.from_city) {
+							activeCity = activeLocation.city;
+							specFromCity = (spec.from_city == "-") ? "" : spec.from_city;
+							specToCity = (spec.to_city == "-") ? "" : spec.to_city;
+							if (activeLocation.country != spec.from_country || (activeCity != specFromCity)) {
 								specStopDate.setTime(spec.to_date.getTime() - (spec.to_timezone*msPerHour));
 								activeLocation.stopDate = (specStopDate.getTime() < dateStop.getTime()) ? specStopDate : dateStop;;
 								locationList.addItem(activeLocation);
@@ -210,11 +216,11 @@
 								activeLocation = null;
 								activeLocation = new Object();
 								activeLocation.country = spec.from_country;
-								activeLocation.city = (spec.from_city == "-") ? "" : spec.from_city;;
+								activeLocation.city = (spec.from_city == "-") ? "" : spec.from_city;
 								specStartDate.setTime(spec.from_date.getTime() - (spec.from_timezone*msPerHour));
 								activeLocation.startDate = (specStartDate.getTime() > dateStart.getTime()) ? specStartDate : dateStart;

-							} else if (activeLocation.country != spec.to_country || activeLocation.city != spec.to_city) {
+							} else if (activeLocation.country != spec.to_country || activeCity != specToCity) {
 								specStopDate.setTime(spec.to_date.getTime() - (spec.to_timezone*msPerHour));
 								activeLocation.stopDate = (specStopDate.getTime() < dateStop.getTime()) ? specStopDate : dateStop;
 								locationList.addItem(activeLocation);
@@ -231,7 +237,10 @@

 							}
 						}
-						if ((activeLocation != null && testTravelEnd && (spec.from_country != spec.to_country || spec.from_city != spec.to_city)) ||
+
+						specFromCity = (spec.from_city == "-") ? "" : spec.from_city;
+						specToCity = (spec.to_city == "-") ? "" : spec.to_city;
+						if ((activeLocation != null && testTravelEnd && (spec.from_country != spec.to_country || specFromCity != specToCity)) ||
 						    (activeLocation != null && t == (timeFrameSpecs.length-1))) {
 							// current country rate has reached its end - register it
 							specStopDate.setTime(spec.to_date.getTime() - (spec.to_timezone*msPerHour));
@@ -265,6 +274,7 @@
 						for (var l:int=0; l < locationList.length; l++) {
 							var ranger:DateRanger = new DateRanger();
 							ranger.getDateRange(locationList.getItemAt(l).startDate, locationList.getItemAt(l).stopDate);
+							trace(locationList.getItemAt(l).country + ", (" + locationList.getItemAt(l).city + "): " + ranger.total_min + " minutes");
 							if (ranger.total_min > maxTimeframe) {
 								maxTimeframe = ranger.total_min;
 								maxTimeframeObject = locationList.getItemAt(l);


temporarily commenting methods in order to avoid dumb errors while developing


Add AS3 example.

Add AS3 example.

error: pathspec 'tests/examplefiles/as3_test.as' did not match any file(s) known to git

--- tests/examplefiles/as3_test.as
+++ tests/examplefiles/as3_test.as
@@ -0,0 +1,143 @@
+			import flash.events.MouseEvent;
+			import com.example.programmingas3.playlist.PlayList;
+			import com.example.programmingas3.playlist.Song;
+			import com.example.programmingas3.playlist.SortProperty;
+
+			// constants for the different "states" of the song form
+			private static const ADD_SONG:uint = 1;
+			private static const SONG_DETAIL:uint = 2;
+
+			private var playList:PlayList = new PlayList();
+
+			private function initApp():void
+			{
+				// set the initial state of the song form, for adding a new song
+				setFormState(ADD_SONG);
+
+				// prepopulate the list with a few songs
+				playList.addSong(new Song("Nessun Dorma", "Luciano Pavarotti", 1990, "nessundorma.mp3", ["90's", "Opera"]));
+				playList.addSong(new Song("Come Undone", "Duran Duran", 1993, "comeundone.mp3", ["90's", "Pop"]));
+				playList.addSong(new Song("Think of Me", "Sarah Brightman", 1987, "thinkofme.mp3", ["Showtunes"]));
+				playList.addSong(new Song("Unbelievable", "EMF", 1991, "unbelievable.mp3", ["90's", "Pop"]));
+
+				songList.dataProvider = playList.songList;
+			}
+
+
+			private function sortList(sortField:SortProperty):void
+			{
+				// Make all the sort type buttons enabled.
+				// The active one will be grayed-out below
+				sortByTitle.selected = false;
+				sortByArtist.selected = false;
+				sortByYear.selected = false;
+
+				switch (sortField)
+				{
+					case SortProperty.TITLE:
+						sortByTitle.selected = true;
+						break;
+					case SortProperty.ARTIST:
+						sortByArtist.selected = true;
+						break;
+					case SortProperty.YEAR:
+						sortByYear.selected = true;
+						break;
+				}
+
+				playList.sortList(sortField);
+
+				refreshList();
+			}
+
+
+			private function refreshList():void
+			{
+				// remember which song was selected
+				var selectedSong:Song = Song(songList.selectedItem);
+
+				// re-assign the song list as the dataprovider to get the newly sorted list
+				// and force the List control to refresh itself
+				songList.dataProvider = playList.songList;
+
+				// reset the song selection
+				if (selectedSong != null)
+				{
+					songList.selectedItem = selectedSong;
+				}
+			}
+
+
+			private function songSelectionChange():void
+			{
+				if (songList.selectedIndex != -1)
+				{
+					setFormState(SONG_DETAIL);
+				}
+				else
+				{
+					setFormState(ADD_SONG);
+				}
+			}
+
+
+			private function addNewSong():void
+			{
+				// gather the values from the form and add the new song
+				var title:String = newSongTitle.text;
+				var artist:String = newSongArtist.text;
+				var year:uint = newSongYear.value;
+				var filename:String = newSongFilename.text;
+				var genres:Array = newSongGenres.selectedItems;
+
+				playList.addSong(new Song(title, artist, year, filename, genres));
+
+				refreshList();
+
+				// clear out the "add song" form fields
+				setFormState(ADD_SONG);
+			}
+
+
+			private function songListLabel(item:Object):String
+			{
+				return item.toString();
+			}
+
+
+			private function setFormState(state:uint):void
+			{
+				// set the form title and control state
+				switch (state)
+				{
+					case ADD_SONG:
+						formTitle.text = "Add New Song";
+						// show the submit button
+						submitSongData.visible = true;
+						showAddControlsBtn.visible = false;
+						// clear the form fields
+						newSongTitle.text = "";
+						newSongArtist.text = "";
+						newSongYear.value = (new Date()).fullYear;
+						newSongFilename.text = "";
+						newSongGenres.selectedIndex = -1;
+						// deselect the currently selected song (if any)
+						songList.selectedIndex = -1;
+						break;
+
+					case SONG_DETAIL:
+						formTitle.text = "Song Details";
+						// populate the form with the selected item's data
+						var selectedSong:Song = Song(songList.selectedItem);
+						newSongTitle.text = selectedSong.title;
+						newSongArtist.text = selectedSong.artist;
+						newSongYear.value = selectedSong.year;
+						newSongFilename.text = selectedSong.filename;
+						newSongGenres.selectedItems = selectedSong.genres;
+						// hide the submit button
+						submitSongData.visible = false;
+						showAddControlsBtn.visible = true;
+						break;
+				}
+			}
+


renaming cocktail variable, adding route as default uri


added Bar class

added Bar class

error: pathspec 'apparat-test-harness/src/main/as3/apparat/foo/Bar.as' did not match any file(s) known to git

--- apparat-test-harness/src/main/as3/apparat/foo/Bar.as
+++ apparat-test-harness/src/main/as3/apparat/foo/Bar.as
@@ -0,0 +1,28 @@
+package apparat.foo {
+	/**
+	 * The Bar class is the philosopher's stone.
+	 *
+	 * The holy grail of programming. We could not exist without the foo and the bar.
+	 * It releates to Jing and Jang. It is Black and White. The Good and the Evil.
+	 *
+	 * @author Joa Ebert
+	 */
+	public final class Bar {
+		/**
+		 * Creates and returns a new Bar object.
+		 */
+		public function Bar() {
+		}
+
+
+		/**
+		 * Generates and returns the string representation
+		 * of the current object.
+		 *
+		 * @return The string representation of the current object.
+		 */
+		public function toString(): String {
+			return '[Bar]';
+		}
+	}
+}


added Gigya Wildfire helper

added Gigya Wildfire helper

error: pathspec 'vendor/ras3r/com/gigya/Wildfire.as' did not match any file(s) known to git

--- vendor/ras3r/com/gigya/Wildfire.as
+++ vendor/ras3r/com/gigya/Wildfire.as
@@ -0,0 +1,66 @@
+// maybe this should become WildfireHelper?
+// or part of a broader GigyaHelper?
+package com.gigya
+{
+	import ras3r.*;
+
+	import flash.display.*;
+	import flash.events.*;
+	import flash.external.*;
+	import flash.net.*;
+	import flash.system.*;
+	import flash.text.*;
+
+	public class Wildfire extends Sprite
+	{
+		private var config:Object = {
+			defaultContent	:	'', // <-- YOUR EMBED CODE GOES HERE
+			height			:	250,
+			width 			:	200,
+			partner			:	000, // <-- YOUR PARTNER ID GOES HERE
+			UIConfig		:	<config baseTheme="v2"><display showDesktop="false" showEmail="true" showBookmark="true" showCloseButton="true"></display><controls><snbuttons iconsOnly="true"></snbuttons></controls></config>
+		};
+		private var module_id:String = 'PostModule1';
+		private var url:String = 'http://cdn.gigya.com/Wildfire/swf/WildfireInAS3.swf?ModuleID=';
+		private var wildfire:MovieClip = new MovieClip();
+
+		public function Wildfire (options:Object = null)
+		{
+			super();
+
+			// allow cross-domain script for Gigya
+			Security.allowDomain('cdn.gigya.com');
+			Security.allowInsecureDomain('cdn.gigya.com');
+
+			// merge options into default config
+			config = new Hash(config).update(options);
+
+			// add Wildfire container to stage
+			addChild(wildfire);
+
+			// load Wildfire remote .swf
+			var loader:Loader = new Loader();
+			wildfire[module_id] = config;
+			loader.load(new URLRequest(url + module_id));
+			wildfire.addChild(loader);
+		}
+	}
+}
+
+
+/*    //This code assigns the configurations you set in our site to the Wildfire configuration object
+    cfg['width']='340';
+cfg['height']='260';
+cfg['widgetTitle']='Thunder Lizard';
+cfg['advancedTracking']='true';
+cfg['useFacebookMystuff']='false';
+cfg['partner']='738331';
+cfg['UIConfig']='<config baseTheme="v2"><display showDesktop="false" showEmail="true" showBookmark="true" showCloseButton="true"></display><controls><snbuttons iconsOnly="true"></snbuttons></controls></config>';;
+
+    // set up an event handler for the onClose event, this is called when the Wildfire UI is closed.
+    cfg['onClose']=function(eventObj:Object):void{
+        mcWF.visible = false;
+        ldr.content['INIT']();
+        //you can do additional cleanup here
+    }
+*/


CommandLinkButton, just like CommandButton.

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

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

--- src/as/com/threerings/flex/CommandLinkButton.as
+++ src/as/com/threerings/flex/CommandLinkButton.as
@@ -0,0 +1,79 @@
+//
+// $Id$
+//
+// Nenya library - tools for developing networked games
+// Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/nenya/
+//
+// 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.flex {
+
+import flash.events.MouseEvent;
+
+import mx.controls.LinkButton;
+
+import com.threerings.util.CommandEvent;
+
+/**
+ * A CommandLinkButton looks like a link but dispatches a Controller command
+ * when clicked.
+ */
+public class CommandLinkButton extends LinkButton
+{
+    public function CommandLinkButton (cmd :String = null, arg :Object = null)
+    {
+        setCommand(cmd, arg);
+    }
+
+    /**
+     * Set the command and argument to be issued when this button is pressed.
+     */
+    public function setCommand (cmd :String, arg :Object = null) :void
+    {
+        _cmdOrFn = cmd;
+        _arg = arg;
+    }
+
+    /**
+     * Set a callback function to call when the button is pressed.
+     */
+    public function setCallback (fn :Function, arg :Object = null) :void
+    {
+        _cmdOrFn = fn;
+        _arg = arg;
+    }
+
+    override protected function clickHandler (event :MouseEvent) :void
+    {
+        super.clickHandler(event);
+
+        if (enabled) {
+            // stop the click event
+            event.stopImmediatePropagation();
+
+            // dispatch the command event
+            CommandEvent.dispatch(this, _cmdOrFn, _arg);
+        }
+    }
+
+    /** The command (String) to submit, or the function (Function) to call
+     * when clicked,  */
+    protected var _cmdOrFn :Object;
+
+    /** Any argument that accompanies our command. */
+    protected var _arg :Object;
+}
+}


Mapdata

Mapdata

error: pathspec 'src/ageofai/map/vo/MapDataVO.as' did not match any file(s) known to git

--- src/ageofai/map/vo/MapDataVO.as
+++ src/ageofai/map/vo/MapDataVO.as
@@ -0,0 +1,17 @@
+package ageofai.map.vo
+{
+    import ageofai.map.geom.IntPoint;
+    import ageofai.map.model.MapNode;
+	/**
+     * ...
+     * @author
+     */
+    public class MapDataVO
+    {
+        public var map:Vector.<Vector.<MapNode>>;
+        public var homes:Vector.<IntPoint>;
+        public var fruits:Vector.<IntPoint>;
+        public var trees:Vector.<IntPoint>;
+    }
+
+}


Added Null implementation of V1 CommandMap as it'll be needed in the end.

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/'


simplifying some logic

simplifying some logic


XIFF-80 Add universally unique identifier generator for XMPP stanzas.

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

--- src/org/igniterealtime/xiff/data/id/UUIDGenerator.as
+++ src/org/igniterealtime/xiff/data/id/UUIDGenerator.as
@@ -0,0 +1,81 @@
+/*
+* Copyright (C) 2003-2011 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>
+*     Mark Walters <mark@yourpalmark.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 org.igniterealtime.xiff.data.id
+{
+	/**
+	 * Generates a universally unique identifier.
+	 * RFC4122 Version 4.
+	 * http://tools.ietf.org/html/rfc4122#section-4.4
+	 */
+	public class UUIDGenerator implements IIDGenerator
+	{
+		private var _prefix:String;
+
+		public function UUIDGenerator()
+		{
+		}
+
+		/**
+		 * The prefix to use for the generated ID (for namespacing purposes).
+		 */
+		public function get prefix():String
+		{
+			return _prefix;
+		}
+
+		/**
+		 * @private
+		 */
+		public function set prefix( value:String ):void
+		{
+			_prefix = value;
+		}
+
+		/**
+		 * Generates the unique ID.
+		 *
+		 * @return The generated ID
+		 */
+		public function generateID():String
+		{
+			var uuid:String = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace( /[xy]/g, replaceChar );
+			var id:String;
+
+			if ( _prefix != null ) {
+				id = _prefix + uuid;
+			} else {
+				id = uuid;
+			}
+			return id;
+		}
+
+		private function replaceChar():String
+		{
+			var r:Number = Math.random() * 16 | 0;
+			var v:Number = arguments[ 0 ] == "x" ? r : ( r&0x3 | 0x8 );
+			return v.toString( 16 );
+		}
+	}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 15923
Author:   chaase@adobe.com
Date:     2010-05-06T18:05:24.751600Z

Log Message:
-----------
Initial checkin of "Transition Interruption" feature. Set Transition.interruptionBehavior="stop" to get the new behavior, where interrupting transitions start from where the previous transition is at, rather than end()'ing the previous transition first. The default behavior is the same as it always was; transitionBehavior="end" is the default property, and that uses the previous behavior of ending the previous Transition.
New API: Transition.interruptionBehavior, mx.states.InterruptionBehavior

QE notes: Check out the spec for the details on the new API
Doc notes: none
Bugs: none
Reviewer: Jason
Tests run: checkintests, Mustella (mx/effects, spark/effects)
Is noteworthy for integration: Yes - feature requested by downstream teams

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/Transition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/InterruptionBehavior.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
@@ -19,6 +19,7 @@
 import mx.core.IVisualElementContainer;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
+import mx.effects.Effect;
 import mx.effects.EffectInstance;
 import mx.events.EffectEvent;
 import mx.managers.SystemManager;
@@ -631,7 +632,23 @@
                 }
                 else
                 {
-                    keyframes[0].value = getCurrentValue(motionPath.property);
+                    // An interrupting transition effect should grab its start
+                    // values from the propertyChanges array, which has been populated
+                    // in UIComponent.commitCurrentState() with the values of target
+                    // objects when the previous transition was interrupted. The
+                    // current values of the objects, from getCurrentValue(), may be
+                    // set to the end values of that previous transition, so we do not
+                    // want those values for the animation
+                    if (Effect(effect).transitionInterruption &&
+                        propertyChanges &&
+                        propertyChanges.start[motionPath.property] !== undefined)
+                    {
+                        keyframes[0].value = propertyChanges.start[motionPath.property];
+                    }
+                    else
+                    {
+                        keyframes[0].value = getCurrentValue(motionPath.property);
+                    }
                 }
             }
             // set any other invalid values based on information in surrounding


convert tabs to spaces in PubNub.as

convert tabs to spaces in PubNub.as


Makes removeMapping optional

Makes removeMapping optional


polishing code

polishing code


tweaking settings back

tweaking settings back


Adding the test runner that's called by the .fla.

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

--- src/PureMVCTestRunner.as
+++ src/PureMVCTestRunner.as
@@ -0,0 +1,13 @@
+import asunit.textui.TestRunner;
+
+class PureMVCTestRunner extends TestRunner {
+
+	public function PureMVCTestRunner() {
+		fscommand("fullscreen", "true");
+		start(AllTests);
+	}
+
+	public static function main():Void {
+		var runner = new PureMVCTestRunner();
+	}
+}


Fix for pawn promotion bug.

Fix for pawn promotion bug.

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/rlowke/lowkemedia.git/'


changing load/unload workflow;

changing load/unload workflow;


Removed dispatcherListeningEnabled cruft from EventMap as it's of no purpose.


making "trigger" a private member with a public access (through getter)


Issue 54; <g> node will not use the x and y attributes, unless they come from a <use> node.

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/'


rename to TestRunner

rename to TestRunner

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

--- src/TestRunner.as
+++ src/TestRunner.as
@@ -0,0 +1,36 @@
+
+/*
+ * Copyright 2008 Adobe Systems Inc., 2008 Google Inc.
+ *
+ * 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.
+ *
+ * Contributor(s):
+ *   Zwetan Kjukov <zwetan@gmail.com>.
+ */
+
+package
+{
+    import library.ASTUce.Runner;
+
+    import com.google.analytics.AllTests;
+    import flash.display.Sprite;
+
+    public class TestRunner extends Sprite
+    {
+        public function TestRunner()
+        {
+            Runner.main( com.google.analytics.AllTests.suite( ) );
+        }
+
+    }
+}


adding fixed Embedder template.

adding fixed Embedder template.

dreaming with not being lazy and amend this commit
with HEAD^2


Create new test class CopyingOfCopyableCloneableClassTest for testing of creation copies for CopyableCloneableClass.

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

--- dolly-framework/src/test/actionscript/dolly/CopyingOfCopyableCloneableClassTest.as
+++ dolly-framework/src/test/actionscript/dolly/CopyingOfCopyableCloneableClassTest.as
@@ -0,0 +1,61 @@
+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 CopyingOfCopyableCloneableClassTest {
+
+	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> = Copier.findCopyableFieldsForType(copyableCloneableClassType);
+		assertNotNull(writableFields);
+		assertEquals(2, writableFields.length);
+	}
+
+	[Test]
+	public function cloningByCloner():void {
+		const clone:CopyableCloneableClass = Copier.copy(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 = copy(copyableCloneableClass);
+
+		assertNotNull(cloneInstance);
+		assertNotNull(cloneInstance.property1);
+		assertEquals(cloneInstance.property1, copyableCloneableClass.property1);
+		assertNotNull(cloneInstance.writableField1);
+		assertEquals(cloneInstance.writableField1, copyableCloneableClass.writableField1);
+	}
+}
+}


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.

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);
+			}
+		}
+	}
+}


FLEX-34775 Added a unit test to reproduce the bug.

error: pathspec 'frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as' did not match any file(s) known to git

--- frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as
+++ frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as
@@ -0,0 +1,79 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      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 mx.collections
+{
+    import org.flexunit.asserts.assertEquals;
+
+    public class HierarchicalCollectionView_FLEX_34775_Tests
+	{
+		private static var _utils:HierarchicalCollectionViewTestUtils = new HierarchicalCollectionViewTestUtils();
+		private static var _sut:HierarchicalCollectionView;
+		private var _level0:ArrayCollection;
+
+		[Before]
+		public function setUp():void
+		{
+            _sut = generateHierarchyViewWithClosedNodes();
+            _level0 = _utils.getRoot(_sut) as ArrayCollection;
+		}
+
+		[After]
+		public function tearDown():void
+		{
+            _sut = null;
+            _level0 = null;
+		}
+
+
+
+        [Test]
+        public function test_navigation_after_opening_hidden_node():void
+        {
+            //given
+            var company:DataNode = _level0.getItemAt(0) as DataNode;
+            var location:DataNode = company.children.getItemAt(0) as DataNode;
+
+            //when
+            _sut.openNode(location);
+
+            var cursor:IViewCursor = _sut.createCursor();
+            var i:int = 0;
+            while(!cursor.afterLast && i++ < 100)
+            {
+                cursor.moveNext();
+            }
+
+            //then
+            assertEquals(1, i);
+            assertEquals(1, _sut.length);
+        }
+
+		private static function generateHierarchyViewWithClosedNodes():HierarchicalCollectionView
+		{
+			return _utils.generateHCV(_utils.generateHierarchySourceFromString(HIERARCHY_STRING));
+		}
+
+		private static const HIERARCHY_STRING:String = (<![CDATA[
+			Adobe
+			Adobe->London
+            Adobe->London->FlexDept
+		]]>).toString();
+	}
+}


removing fixme code block and injecting controller in model/layout

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/'


Fixed AngelScript sample script file.

Fixed AngelScript sample script file.

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/nyaki-HUN/DESIRE.git/'


adding silent param

adding silent param


Made optional String parameters default to empty quotes instead of null (more proper).


Removed relayEvent() helper method. Though, it did bring up the idea for: addRelayerTo(view, MouseEvent.CLICK, ContextEvent, ContextEvent.BOOM, ... args)


Bug 550269: add testcases (r=rwinchel)

Bug 550269: add testcases (r=rwinchel)

fatal: unable to access 'https://github.com/pfgenyun/tamarin-redux.git/': The requested URL returned error: 403


ViewMapBase.enabled setter had code that must be a copy-paste error from contextView setter. The enabled setter was calling removeListeners(), which (in subclasses) checked enabled.


Added Compass class.

Added Compass class.

error: pathspec 'src/sentinel/gameplay/util/Compass.as' did not match any file(s) known to git

--- src/sentinel/gameplay/util/Compass.as
+++ src/sentinel/gameplay/util/Compass.as
@@ -0,0 +1,52 @@
+package sentinel.gameplay.util
+{
+
+	import sentinel.gameplay.physics.Vector2D;
+
+
+	/**
+	 * The Compass utility provides methods for translating compass directions into more useful data
+	 * structures e.g. degrees, vectors, etc.
+	 * @author Marty Wallace.
+	 */
+	public class Compass
+	{
+
+		public static const NORTH:String = 'n';
+		public static const SOUTH:String = 's';
+		public static const EAST:String = 'e';
+		public static const WEST:String = 'w';
+		public static const NORTH_EAST:String = 'ne';
+		public static const SOUTH_EAST:String = 'se';
+		public static const NORTH_WEST:String = 'nw';
+		public static const SOUTH_WEST:String = 'sw';
+
+
+		public static function toVector(direction:String, length:Number = 1):Vector2D
+		{
+			return Vector2D.inDirection(toAngle(direction), length);
+		}
+
+
+		public static function toAngle(direction:String):Number
+		{
+			var ei:Number = Math.PI / 4;
+
+			switch(direction)
+			{
+				case EAST: return 0; break;
+				case SOUTH_EAST: return ei; break;
+				case SOUTH: return ei * 2; break;
+				case SOUTH_WEST: return ei * 3; break;
+				case WEST: return ei * 4; break;
+				case NORTH_WEST: return ei * 5; break;
+				case NORTH: return ei * 6; break;
+				case NORTH_EAST: return ei * 7; break;
+			}
+
+			return 0;
+		}
+
+	}
+
+}


fixed misspelling of discernible

fixed misspelling of discernible

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/'


Added DataSet and DataTable classes
Updated IDataConverter interface
Added GraphMLConverter class
Added DataIOTests class
Added fromArray and fromDataSet to Data
Added toDataArray to DataList

git-svn-id: 6aa7ccb0a2048310a30f08a72aaff4ca39d980ed@102 91848ab2-c4ae-4e4f-8e6a-6a52ea0dccc3

error: pathspec 'flare.tests/flare/tests/DataIOTests.as' did not match any file(s) known to git

--- flare.tests/flare/tests/DataIOTests.as
+++ flare.tests/flare/tests/DataIOTests.as
@@ -0,0 +1,146 @@
+package flare.tests
+{
+	import flare.data.DataSet;
+	import flare.data.converters.GraphMLConverter;
+	import flare.data.converters.JSONConverter;
+	import flare.vis.data.Data;
+
+	import flash.utils.ByteArray;
+
+	import unitest.TestCase;
+
+	public class DataIOTests extends TestCase
+	{
+		public function DataIOTests()
+		{
+			addTest("testJSONConverter");
+			addTest("testGraphMLConverter");
+		}
+
+		// --------------------------------------------------------------------
+
+		public function testJSONConverter():void
+		{
+			var jc:JSONConverter = new JSONConverter();
+			var data:Array = jc.parse(JSON, null);
+
+			assertEquals(DATA.length, data.length);
+			for (var i:int=0; i<DATA.length; ++i) {
+				for (var name:String in DATA[i]) {
+					assertEquals(DATA[i][name], data[i][name]);
+				}
+			}
+		}
+
+		private static const DATA:Array = [
+			{id:1, cat:"a", val:10, b:true},
+			{id:2, cat:"a", val:20, b:true},
+			{id:3, cat:"b", val:30, b:true},
+			{id:4, cat:"b", val:40, b:false},
+			{id:5, cat:"c", val:50, b:false},
+			{id:6, cat:"c", val:60, b:false}
+		];
+
+		private static const JSON:String =
+			"[" +
+				"{\"id\":1,\"cat\":\"a\",\"val\":10,\"b\":true}," +
+				"{\"id\":2,\"cat\":\"a\",\"val\":20,\"b\":true}," +
+				"{\"id\":3,\"cat\":\"b\",\"val\":30,\"b\":true}," +
+				"{\"id\":4,\"cat\":\"b\",\"val\":40,\"b\":false}," +
+				"{\"id\":5,\"cat\":\"c\",\"val\":50,\"b\":false}," +
+				"{\"id\":6,\"cat\":\"c\",\"val\":60,\"b\":false}" +
+			"]";
+
+		// --------------------------------------------------------------------
+
+		public function testGraphMLConverter():void
+		{
+			var gmlc:GraphMLConverter = new GraphMLConverter();
+			var data:DataSet = gmlc.parse(GRAPHML);
+			var i:int;
+
+			// test nodes
+			var nids:Array = ["n0", "n1", "n2", "n3", "n4", "n5"];
+			var colors:Array = ["green", "yellow", "blue", "red", "yellow", "turquoise"];
+
+			assertEquals(nids.length, data.nodes.data.length);
+			for (i=0; i<nids.length; ++i) {
+				assertEquals(nids[i], data.nodes.data[i].id);
+				assertEquals(colors[i], data.nodes.data[i].color);
+			}
+
+			// test edges
+			var eids:Array = ["e0", "e1", "e2", "e3", "e4", "e5", "e6"];
+			var srcs:Array = ["n0", "n0", "n1", "n3", "n2", "n3", "n5"];
+			var trgs:Array = ["n2", "n1", "n3", "n2", "n4", "n5", "n4"];
+			var wgts:Array = [1.0, 1.0, 2.0, null, null, null, 1.1];
+
+			assertEquals(7, data.edges.data.length);
+			for (i=0; i<eids.length; ++i) {
+				assertEquals(eids[i], data.edges.data[i].id);
+				assertEquals(srcs[i], data.edges.data[i].source);
+				assertEquals(trgs[i], data.edges.data[i].target);
+				assertEquals(wgts[i], data.edges.data[i].weight);
+				assertEquals(false, data.edges.data[i].directed);
+			}
+
+			// read in graphml, write graph data back to xml
+			var out:ByteArray = gmlc.write(data) as ByteArray;
+			out.position = 0;
+			var s1:String = out.readUTFBytes(out.length);
+
+			// now do a round-trip comparison test
+			out = gmlc.write(gmlc.parse(XML(s1))) as ByteArray;
+			out.position = 0;
+			var s2:String = out.readUTFBytes(out.length);
+
+			assertEquals(s1, s2);
+
+			// finally, do a test of data construction
+			var d:Data = Data.fromDataSet(data);
+			assertEquals(data.nodes.data.length, d.nodes.size);
+			assertEquals(data.edges.data.length, d.edges.size);
+		}
+
+		private static const GRAPHML:XML =
+			<graphml>
+			  <key id="d0" for="node" attr.name="color" attr.type="string">
+			  	<default>yellow</default>
+			  </key>
+			  <key id="d1" for="edge" attr.name="weight" attr.type="double"/>
+			  <graph id="G" edgedefault="undirected">
+			    <node id="n0">
+			      <data key="d0">green</data>
+			    </node>
+			    <node id="n1"/>
+			    <node id="n2">
+			      <data key="d0">blue</data>
+			    </node>
+			    <node id="n3">
+			      <data key="d0">red</data>
+			    </node>
+			    <node id="n4"/>
+			    <node id="n5">
+			      <data key="d0">turquoise</data>
+			    </node>
+			    <edge id="e0" source="n0" target="n2">
+			      <data key="d1">1.0</data>
+			    </edge>
+			    <edge id="e1" source="n0" target="n1">
+			      <data key="d1">1.0</data>
+			    </edge>
+			    <edge id="e2" source="n1" target="n3">
+			      <data key="d1">2.0</data>
+			    </edge>
+			    <edge id="e3" source="n3" target="n2"/>
+			    <edge id="e4" source="n2" target="n4"/>
+			    <edge id="e5" source="n3" target="n5"/>
+			    <edge id="e6" source="n5" target="n4">
+			      <data key="d1">1.1</data>
+			    </edge>
+			  </graph>
+			</graphml>;
+
+
+	} // end of class DataIOTests
+}


adding Router class

adding Router class


302 LCS

302 LCS

error: pathspec 'raw/src/scratch/lcs/LCS.as' did not match any file(s) known to git

--- raw/src/scratch/lcs/LCS.as
+++ raw/src/scratch/lcs/LCS.as
@@ -0,0 +1,73 @@
+package scratch.lcs
+{
+import org.yellcorp.lib.core.StringBuilder;
+import org.yellcorp.lib.core.StringUtil;
+
+import flash.display.Sprite;
+
+
+public class LCS extends Sprite
+{
+    public function LCS()
+    {
+        var n:int = 5;
+        var m:int = 7;
+
+        var x:int, y:int;
+
+        var output:StringBuilder = new StringBuilder();
+
+        for (y = 0; y < m; y++)
+        {
+            for (x = 0; x < n; x++)
+            {
+                output.append(StringUtil.padLeft(x - y, 5));
+            }
+            output.append("\n");
+        }
+
+        trace(output.toString());
+    }
+
+    public function shortestEditScriptLength(a:Array, b:Array):int
+    {
+        // just copied from the paper, don't understand it yet
+
+        var m:int = a.length;   // length is poss 1 too many? may need
+        var n:int = b.length;   // to subtract 1
+        var max:int = m + n;
+        var v:Array = new Array(2 * max + 1);
+
+        var d:int;
+        var k:int;
+
+        var x:int, y:int;
+
+        for (d = 0; d < max; d++)
+        {
+            for (k = -d; k < d; k += 2)
+            {
+                if (k == -d || (k != d && v[k-1 + max] < v[k+1 + max]))
+                {
+                    x = v[k+1 + max];
+                }
+                else
+                {
+                    x = v[k-1 + max] + 1;
+                }
+                y = x - k;
+                while (x < n && y < m && a[x+1] == b[y+1])
+                {
+                    x++; y++;
+                }
+                v[k + max] = x;
+                if (x >= n && y >= m)
+                {
+                    return d;
+                }
+            }
+        }
+        return -1;
+    }
+}
+}


Add new test data subclass: PropertyLevelCopyableSubclass.

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

--- dolly-framework/src/test/resources/dolly/data/PropertyLevelCopyableSubclass.as
+++ dolly-framework/src/test/resources/dolly/data/PropertyLevelCopyableSubclass.as
@@ -0,0 +1,35 @@
+package dolly.data {
+
+public class PropertyLevelCopyableSubclass extends PropertyLevelCopyableClass {
+
+	[Copyable]
+	public static var staticProperty3:String = "Value of second-level static property 3.";
+
+	public static var staticProperty4:String = "Value of second-level static property 4.";
+
+	[Copyable]
+	private var _writableField2:String = "Value of second-level writable field.";
+
+	[Copyable]
+	public var property3:String = "Value of second-level public property 3.";
+
+	public var property4:String = "Value of second-level public property 4.";
+
+	public function PropertyLevelCopyableSubclass() {
+	}
+
+	[Copyable]
+	public function get writableField2():String {
+		return _writableField2;
+	}
+
+	public function set writableField2(value:String):void {
+		_writableField2 = value;
+	}
+
+	[Copyable]
+	public function get readOnlyField2():String {
+		return "Value of second-level read-only field.";
+	}
+}
+}


Added BufferInitialzier

Added BufferInitialzier

error: pathspec 'src/org/flintparticles/integration/away3d/v4/initializers/BufferInitializer.as' did not match any file(s) known to git

--- src/org/flintparticles/integration/away3d/v4/initializers/BufferInitializer.as
+++ src/org/flintparticles/integration/away3d/v4/initializers/BufferInitializer.as
@@ -0,0 +1,100 @@
+package org.flintparticles.threeD.away3d.away4.initializers
+{
+	import away3d.containers.ObjectContainer3D;
+	import away3d.core.base.Object3D;
+	import away3d.entities.Sprite3D;
+
+	import org.flintparticles.common.emitters.Emitter;
+	import org.flintparticles.common.events.ParticleEvent;
+	import org.flintparticles.common.initializers.InitializerBase;
+	import org.flintparticles.common.particles.Particle;
+	import org.flintparticles.common.utils.construct;
+
+	public class BufferInitializer extends InitializerBase
+	{
+		private var _imageClass:Class;
+		private var _parameters:Array;
+		private var _buffer:Vector.<Object3D>=new Vector.<Object3D>();
+		private var _bufferLength:uint=0;
+		public function BufferInitializer(imageClass:Class,bufferLength:uint, parameters:Array)
+		{
+			//TODO: implement function
+			_imageClass=imageClass;
+			_parameters=parameters;
+			_bufferLength=bufferLength;
+			init();
+
+		}
+		private function init():void{
+			//var sph:Sphere=new Sphere(
+			//	var s:Sprite3D=new Sprite3D(
+			var obj3d:Object3D=construct(_imageClass,_parameters);//new _imageClass(null,0,0);
+
+
+			initBuffer(obj3d);
+
+
+		}
+		private function initBuffer(obj3d:Object3D):void{
+			for(var i:uint=0;i<_bufferLength;++i){
+				_buffer.push(obj3d.clone()as Object3D);
+			}
+		}
+		private var _firstTime:Boolean=true;
+		override public function initialize( emitter:Emitter, particle:Particle):void
+		{
+			if(_firstTime){
+				emitter.addEventListener(ParticleEvent.PARTICLE_DEAD,onParticleDead,false,0,true);
+				_firstTime=false;
+			}
+			if(_buffer.length>0){
+				particle.image=_buffer.shift();
+			//	trace(particle.image);
+			}
+			if(_buffer.length==0){
+			//	trace("out of particles");
+			}
+		}
+		override public function removedFromEmitter(emitter:Emitter) : void{
+			if(emitter.hasEventListener(ParticleEvent.PARTICLE_DEAD)){
+
+				emitter.removeEventListener(ParticleEvent.PARTICLE_DEAD,onParticleDead);
+			}
+		}
+		private function onParticleDead(e:ParticleEvent):void{
+		//	e.particle.isDead=false;
+		//	trace(e.particle.image);
+
+			_buffer.push(e.particle.image);
+		//	trace(e.particle.image);
+		}
+
+		////////////////getters/setters//////////////////////
+		/**
+		 * The class to use when creating
+		 * the particles' DisplayObjects.
+		 */
+		public function get imageClass():Class
+		{
+			return _imageClass;
+		}
+		public function set imageClass( value:Class ):void
+		{
+			_imageClass = value;
+		}
+
+		/**
+		 * The parameters to pass to the constructor
+		 * for the image class.
+		 */
+		public function get parameters():Array
+		{
+			return _parameters;
+		}
+		public function set parameters( value:Array ):void
+		{
+			_parameters = value;
+		}
+
+	}
+}


Improve example UI

Improve example UI

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/'


fixed up UX issues with selection, rolls, and glows.


Added an email address validity checker.

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

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

--- src/as/com/threerings/util/MailUtil.as
+++ src/as/com/threerings/util/MailUtil.as
@@ -0,0 +1,46 @@
+//
+// $Id$
+//
+// Narya library - tools for developing networked games
+// Copyright (C) 2002-2008 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 methods relating to the electronic mails.
+ */
+public class MailUtil
+{
+    /**
+     * Returns true if the supplied email address appears valid (according to a widely used regular
+     * expression). False if it does not.
+     */
+    public static function isValidAddress (email :String) :Boolean
+    {
+        var matches :Array = email.match(EMAIL_REGEX);
+        // in theory there should only be one match and we should check for 'matches.length == 1',
+        // but Flash's regular expression code likes to return nonsensical things, so we just check
+        // that the first match is equal to the entire supplied address
+        return (matches != null && matches.length > 0) && ((matches[0] as String) == email);
+    }
+
+    /** Originally formulated by lambert@nas.nasa.gov. */
+    protected static const EMAIL_REGEX :RegExp = new RegExp(
+        "^([-a-z0-9_.!%+]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[-a-z0-9]+)$", "i");
+}
+}


KAN-14162 ( HTML VPAID Viewability requires video playing while Flash VPAID does not ) [ ad pause not detected on click thru - defaulting to remaining time check ]

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/7thsky/openvv.git/'


Adding BoolOut decoder.

Adding BoolOut decoder.

error: pathspec 'driver/src/org/postgresql/codec/decode/BoolOut.as' did not match any file(s) known to git

--- driver/src/org/postgresql/codec/decode/BoolOut.as
+++ driver/src/org/postgresql/codec/decode/BoolOut.as
@@ -0,0 +1,39 @@
+package org.postgresql.codec.decode {
+    import org.postgresql.Oid;
+    import org.postgresql.EncodingFormat;
+    import org.postgresql.codec.IPGTypeDecoder;
+    import org.postgresql.febe.IFieldInfo;
+    import org.postgresql.io.ICDataInput;
+
+    /**
+     * Parse a PostgreSQL bool into an ActionScript Boolean.
+     */
+    public class BoolOut implements IPGTypeDecoder {
+        /**
+         * @inheritDoc
+         */
+        public function decode(bytes:ICDataInput, format:IFieldInfo, serverParams:Object):Object {
+            switch (format.format) {
+                case EncodingFormat.TEXT:
+                    return Boolean(bytes.readUTFBytes(bytes.bytesAvailable));
+                case EncodingFormat.BINARY:
+                    switch (format.typeOid) {
+                        case Oid.BOOL:
+                            return bytes.readBoolean();
+                        default:
+                            throw new ArgumentError("Unable to decode oid: " + format.typeOid);
+                    }
+                default:
+                    throw new ArgumentError("Unknown format: " + format.format);
+            }
+        }
+
+        /**
+         * This decoder returns Boolean.
+         * @see Boolean
+         */
+        public function getOutputClass(typeOid:int):Class {
+            return Boolean;
+        }
+    }
+}


Add autorepeat for buttons

Add autorepeat for buttons

git-svn-id: 00225d326fbeb9978ee2ea3564602c0fe18eb5d2@1441561 13f79535-47bb-0310-9956-ffa450edef68

error: pathspec 'frameworks/as/src/org/apache/flex/html/staticControls/beads/controllers/ButtonAutoRepeatController.as' did not match any file(s) known to git

--- frameworks/as/src/org/apache/flex/html/staticControls/beads/controllers/ButtonAutoRepeatController.as
+++ frameworks/as/src/org/apache/flex/html/staticControls/beads/controllers/ButtonAutoRepeatController.as
@@ -0,0 +1,101 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      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.apache.flex.html.staticControls.beads.controllers
+{
+	import flash.events.IEventDispatcher;
+    import flash.events.Event;
+	import flash.events.MouseEvent;
+	import flash.utils.clearInterval;
+	import flash.utils.clearTimeout;
+    import flash.utils.setInterval;
+    import flash.utils.setTimeout;
+
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IStrand;
+
+    public class ButtonAutoRepeatController implements IBead
+	{
+		public function ButtonAutoRepeatController()
+		{
+		}
+
+        private var _strand:IStrand;
+
+        public function get strand():IStrand
+        {
+            return _strand;
+        }
+
+        public function set strand(value:IStrand):void
+        {
+            _strand = value;
+            IEventDispatcher(value).addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
+        }
+
+        public var delay:int = 250;
+        public var interval:int = 100;
+
+        private var timeout:uint;
+        private var repeater:uint;
+
+        private function mouseDownHandler(event:MouseEvent):void
+        {
+            event.target.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
+            event.target.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
+            setTimeout(sendFirstRepeat, delay);
+        }
+
+        private function mouseOutHandler(event:MouseEvent):void
+        {
+            event.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
+            event.target.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
+            if (repeater > 0)
+                clearInterval(repeater);
+            repeater = 0;
+            if (timeout > 0)
+                clearTimeout(timeout);
+            timeout = 0;
+        }
+
+        private function mouseUpHandler(event:MouseEvent):void
+        {
+            event.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
+            event.target.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
+            if (repeater > 0)
+                clearInterval(repeater);
+            repeater = 0;
+            if (timeout > 0)
+                clearTimeout(timeout);
+            timeout = 0;
+        }
+
+        private function sendFirstRepeat():void
+        {
+            clearTimeout(timeout);
+            timeout = 0;
+            repeater = setInterval(sendRepeats, interval);
+            IEventDispatcher(_strand).dispatchEvent(new Event("buttonRepeat"));
+        }
+
+        private function sendRepeats():void
+        {
+            IEventDispatcher(_strand).dispatchEvent(new Event("buttonRepeat"));
+        }
+	}
+}


flipHorizontally was being called in both condition branches.

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


Bug 752506: missed the testcase

Bug 752506: missed the testcase

{{mercurial 2035e7b37481ae854bb8c91897abd85b1031b6ef}}

CL@1061417


remove timer event listener on dispose()

should reduce memory leaks
related to https://github.com/mangui/flashls/pull/414

--- src/org/mangui/hls/demux/TSDemuxer.as
+++ src/org/mangui/hls/demux/TSDemuxer.as
@@ -162,6 +162,7 @@
             _avcc = null;
             _tags = new Vector.<FLVTag>();
             _timer.stop();
+            _timer.removeEventListener(TimerEvent.TIMER, _parseTimer);
         }

         public function notifycomplete() : void {


improving

improving


Add empty CopierTest class.

Add empty CopierTest class.

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

--- dolly-framework/src/test/actionscript/dolly/CopierTest.as
+++ dolly-framework/src/test/actionscript/dolly/CopierTest.as
@@ -0,0 +1,16 @@
+package dolly {
+public class CopierTest {
+
+	[Before]
+	public function before():void {
+	}
+
+	[After]
+	public function after():void {
+	}
+
+	[Test]
+	public function testSmth():void {
+	}
+}
+}


Informal test to remind me what kind of multiplication Matrix.concat actually does

error: pathspec 'raw/src/scratch/TestNativeMatrix.as' did not match any file(s) known to git

--- raw/src/scratch/TestNativeMatrix.as
+++ raw/src/scratch/TestNativeMatrix.as
@@ -0,0 +1,48 @@
+package scratch
+{
+import flash.display.Sprite;
+import flash.geom.Matrix;
+import flash.geom.Point;
+
+
+public class TestNativeMatrix extends Sprite
+{
+    public function TestNativeMatrix()
+    {
+        // The lesson is A.concat(B) == B . A
+
+        var A:Matrix = new Matrix(2, -5, -11, 17, 0.5, 0.25);
+        var B:Matrix = new Matrix(3, -7, -13, 19, 0.125, 0.0625);
+        var p:Point = new Point(23, 29);
+
+        var expect_AB:Matrix = new Matrix(83, -134, -235, 388, 0.0625, 0.6875);
+        var expect_BA:Matrix = new Matrix(71, -109, -254, 400, -1.625, 1.3125);
+
+        var BA:Matrix = A.clone();
+        BA.concat(B);
+        compareMatrix(BA, expect_BA);
+
+        var AB:Matrix = B.clone();
+        AB.concat(A);
+        compareMatrix(AB, expect_AB);
+    }
+
+    private function compareMatrix(got:Matrix, expect:Matrix):void
+    {
+        trace("expect: " + expect);
+        trace("got:    " + got);
+        compareProp(got, expect, 'a');
+        compareProp(got, expect, 'b');
+        compareProp(got, expect, 'c');
+        compareProp(got, expect, 'd');
+        compareProp(got, expect, 'tx');
+        compareProp(got, expect, 'ty');
+    }
+
+    private function compareProp(got:Matrix, expect:Matrix, prop:String):void
+    {
+        trace("Property " + prop + ": " +
+              (got[prop] == expect[prop] ? "PASS" : "FAIL"));
+    }
+}
+}


Fikset en feil i utregningen ved dagsreiser til utlandet, samt ticket:71

--- app/src/no/makingwaves/cust/dss/code/TravelExpenceCalculator.as
+++ app/src/no/makingwaves/cust/dss/code/TravelExpenceCalculator.as
@@ -65,7 +65,7 @@
 			if (travelInfo.travel_type == travelInfo.DOMESTIC) {
 				// DOMESTIC TRAVEL
 				// only travels over 5 hours will get a calculated allowance - any travel below 5 hours must specify manually
-				if (travelDateInfo.total_hours > 5) {
+				if (travelDateInfo.total_hours > 5 || (travelDateInfo.total_hours == 5 && travelDateInfo.minutes > 0)) {
 					rateRule = this.getAllowanceRate(travelInfo, travelDateInfo);
 					dailyAllowance = Number(rateRule.cost.toFixed(2));
 					// if travel is over more than a day
@@ -452,8 +452,14 @@

 					}

+					var addPeriod:Boolean = false;
+					if (travelInfo.total_min == totalTripTime && totalTripTime < timePer24) {
+						// short trip (under 24 hours)
+						addPeriod = true;
+					}
+
 					// check if period is completely registered
-					if (timeSpent == timePer24) {
+					if (timeSpent == timePer24 || addPeriod) {
 						// this 24-hours periode is registered - add it to periode list
 						trace("PERIOD " + (i+1) + ": " + periodeLocation.country + "/" + periodeLocation.city + ": " + periodeLocation.time + " min - (mellomlanding: " + periodeLocation.intermediate_landing + ")");
 						var regPeriode:Object = periodeLocation;


test: Added hello world test case.

test: Added hello world test case.

error: pathspec 'src/avm2/tests/hello-world.as' did not match any file(s) known to git

--- src/avm2/tests/hello-world.as
+++ src/avm2/tests/hello-world.as
@@ -0,0 +1 @@
+trace("Hello World");


Added support for Facebook Chat with the X-FACEBOOK-PLATFORM authentication mechanism.

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

--- src/org/igniterealtime/xiff/auth/XFacebookPlatform.as
+++ src/org/igniterealtime/xiff/auth/XFacebookPlatform.as
@@ -0,0 +1,163 @@
+/*
+ * 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>
+ *     Mark Walters <mark@yourpalmark.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 org.igniterealtime.xiff.auth
+{
+	import com.hurlant.crypto.hash.MD5;
+	import com.hurlant.util.Base64;
+	import com.hurlant.util.Hex;
+
+	import flash.utils.ByteArray;
+	import flash.utils.Dictionary;
+
+	import org.igniterealtime.xiff.core.XMPPConnection;
+
+	/**
+	 * This class provides SASL authentication using the X-FACEBOOK-PLATFORM mechanism.
+	 */
+	public class XFacebookPlatform extends SASLAuth
+	{
+		public static const MECHANISM:String = "X-FACEBOOK-PLATFORM";
+
+		public static const NS:String = "urn:ietf:params:xml:ns:xmpp-sasl";
+
+		public static var fb_api_key:String;
+		public static var fb_secret:String;
+		public static var fb_session_key:String;
+
+		/**
+		 * Creates a new XFacebookPlatform authentication object.
+		 *
+		 * @param	connection A reference to the XMPPConnection instance in use.
+		 */
+		public function XFacebookPlatform( connection:XMPPConnection )
+		{
+			req.setNamespace( XFacebookPlatform.NS );
+			req.@mechanism = XFacebookPlatform.MECHANISM;
+
+			response.setNamespace( XFacebookPlatform.NS );
+
+			stage = 0;
+		}
+
+		public static function setFacebookSessionValues( api_key:String, secret:String, session_key:String ):void
+		{
+			fb_api_key = api_key;
+			fb_secret = secret;
+			fb_session_key = session_key;
+		}
+
+		/**
+		 * Construct the signature as described by Facebook api documentation.
+		 */
+		public static function formatSig( map:Dictionary ):String
+		{
+			var md5:MD5 = new MD5();
+
+			var a:Array = [];
+
+			for( var p:String in map )
+			{
+				var arg:* = map[ p ];
+
+				a.push( p + '=' + arg.toString() );
+			}
+
+			a.sort();
+
+			var s:String = a.join( '' );
+
+			if( fb_secret != null )
+			{
+				s += fb_secret;
+			}
+
+			var sig:ByteArray = new ByteArray();
+			sig.writeUTFBytes( s );
+			sig = md5.hash( sig );
+
+			return Hex.fromArray( sig );
+		}
+
+		/**
+		 * Called when a challenge to this authentication is received.
+		 *
+		 * @param	stage The current stage in the authentication process.
+		 * @param	challenge The XML of the actual authentication challenge.
+		 *
+		 * @return The XML response to the challenge.
+		 */
+		override public function handleChallenge( stage:int, challenge:XML ):XML
+		{
+			var decodedChallenge:String = Base64.decode( challenge );
+			var challengeKeyValuePairs:Array = decodedChallenge.split( "&" );
+			var challengeMap:Dictionary = new Dictionary();
+			for each( var keyValuePair:String in challengeKeyValuePairs )
+			{
+				var keyValue:Array = keyValuePair.split( "=" );
+				challengeMap[ keyValue[ 0 ] ] = keyValue[ 1 ];
+			}
+
+			var responseMap:Dictionary = new Dictionary();
+			responseMap.api_key = fb_api_key;
+			responseMap.call_id = new Date().time;
+			responseMap.method = challengeMap.method;
+			responseMap.nonce = challengeMap.nonce;
+			responseMap.session_key = fb_session_key;
+			responseMap.v = "1.0";
+			responseMap.sig = formatSig( responseMap );
+
+			var challengeResponse:String = "api_key=" + responseMap.api_key;
+			challengeResponse += "&call_id=" + responseMap.call_id;
+			challengeResponse += "&method=" + responseMap.method;
+			challengeResponse += "&nonce=" + responseMap.nonce;
+			challengeResponse += "&session_key=" + responseMap.session_key;
+			challengeResponse += "&sig=" + responseMap.sig;
+			challengeResponse += "&v=" + responseMap.v;
+			challengeResponse = Base64.encode( challengeResponse );
+
+			var resp:XML = response;
+			resp.setChildren( challengeResponse );
+			return resp;
+		}
+
+		/**
+		 * Called when a response to this authentication is received.
+		 *
+		 * @param	stage The current stage in the authentication process.
+		 * @param	response The XML of the actual authentication response.
+		 *
+		 * @return An object specifying the current state of the authentication.
+		 */
+		override public function handleResponse( stage:int, response:XML ):Object
+		{
+			var success:Boolean = response.localName() == "success";
+			return {
+				authComplete: true,
+				authSuccess: success,
+				authStage: stage++
+			};
+		}
+	}
+}


Various Flex utils.
...like having a decent factory for Spacer.

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

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

--- src/as/com/threerings/flex/FlexUtil.as
+++ src/as/com/threerings/flex/FlexUtil.as
@@ -0,0 +1,42 @@
+//
+// $Id$
+//
+// Nenya library - tools for developing networked games
+// Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/nenya/
+//
+// 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.flex {
+
+import mx.controls.Spacer;
+
+/**
+ * Wraps a non-Flex component for use in Flex.
+ */
+public class FlexUtil
+{
+    /**
+     * How hard would it have been for them make Spacer accept two optional arguments?
+     */
+    public static function createSpacer (width :int = 0, height :int = 0) :Spacer
+    {
+        var spacer :Spacer = new Spacer();
+        spacer.width = width;
+        spacer.height = height;
+        return spacer;
+    }
+}
+}


remove duplicated variable

remove duplicated variable

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/'


Initial cleanup.

Initial cleanup.

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/'


Started to modularize the app

Started to modularize the app

git-svn-id: 27326a786375daad9d33dc990c6f272e4c8f567c@752 fda5f131-174c-0410-8613-e0905860106b

error: pathspec 'org.openwms/trunk/source/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/model/ModelLocator.as' did not match any file(s) known to git

--- org.openwms/trunk/source/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/model/ModelLocator.as
+++ org.openwms/trunk/source/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/model/ModelLocator.as
@@ -0,0 +1,109 @@
+/*
+ * openwms.org, the Open Warehouse Management System.
+ *
+ * This file is part of openwms.org.
+ *
+ * openwms.org 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 3 of the
+ * License, or (at your option) any later version.
+ *
+ * openwms.org 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 software. If not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.openwms.web.flex.client.model
+{
+
+    import com.adobe.cairngorm.model.IModelLocator;
+    import mx.collections.ArrayCollection;
+    import org.openwms.common.domain.system.usermanagement.User;
+
+    /**
+     * A ModelLocator.
+     *
+     * @author Heiko Scherrer
+     * @version $Revision$
+     */
+    [Bindable]
+    public class ModelLocator implements IModelLocator
+    {
+
+        public static const MAIN_VIEW_STACK_LOGIN_VIEW:uint = 0;
+        public static const MAIN_VIEW_STACK_EMPTY_VIEW:uint = 1;
+        public static const MAIN_VIEW_STACK_MODULE_MGMT_VIEW:uint = 2;
+        public static const MAIN_VIEW_STACK_LOCATION_VIEW:uint = 3;
+        public static const MAIN_VIEW_STACK_LOCATIONGROUP_VIEW:uint = 4;
+        public static const MAIN_VIEW_STACK_USER_MGMT_VIEW:uint = 5;
+        public static const MAIN_VIEW_STACK_TRANSPORTUNIT_VIEW:uint = 6;
+        public var mainViewStackIndex:uint = MAIN_VIEW_STACK_EMPTY_VIEW;
+
+        public const UPLOAD_URL:String = "/openwms/upload";
+        public const DIRECTORY_NAME:String = "data";
+
+        public var allLocationGroups:ArrayCollection = new ArrayCollection();
+        public var allLocations:ArrayCollection = new ArrayCollection();
+        public var allTransportUnits:ArrayCollection = new ArrayCollection();
+        public var allModules:ArrayCollection = new ArrayCollection();
+        public var allUsers:ArrayCollection = new ArrayCollection();
+        public var selectedUser:User = null;
+        public var locationGroupTree:TreeNode;
+        public var image:Object;
+        private var views:Array = new Array();
+
+        private static var instance:ModelLocator;
+
+        /**
+         * Used to construct the Singleton instance.
+         */
+        public function ModelLocator(enforcer:SingletonEnforcer)
+        {
+        }
+
+        /**
+         * Return the instance of ModelLocator which is implemented
+         * as Singleton.
+         */
+        public static function getInstance():ModelLocator
+        {
+            if (instance == null)
+            {
+                instance = new ModelLocator(new SingletonEnforcer);
+            }
+            return instance;
+        }
+
+        /**
+         * Access the views array and add the viewObject to the defined
+         * position. The postion is mandatory for the viewStack.
+         */
+        public static function addView(pos:int, view:Object):void
+        {
+
+        }
+
+        /**
+         * Search the viewObject from the array of views and remove it.
+         */
+        public static function removeView(view:Object):void
+        {
+        }
+
+        /**
+         * Shift the view to a new position.
+         **/
+        public static function moveView(destPos:int, view:Object):void
+        {
+        }
+    }
+}
+
+class SingletonEnforcer
+{
+}


提交HashTable工具类

提交HashTable工具类

工具类提交...SuperMap iClient for Flex SP3版本报错的请注意更新该类^_^

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/SuperMap/Flash-Bev.git/'


Add fsdgen Redtamarin script

Add fsdgen Redtamarin script

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

--- utils/fsdgen.as
+++ utils/fsdgen.as
@@ -0,0 +1,208 @@
+import avmplus.System;
+import avmplus.FileSystem;
+import C.stdlib.*;
+
+const USAGE:String = <![CDATA[usage: %cmd options file
+
+This script generate SWF chunks of a font, by calling flex-fontkit.jar of Flex SDK.
+
+Supported font file types are TrueType, OpenType, TrueType Collection and Datafork TrueType.
+
+OPTIONS:
+   -h	 	   Show this message
+   -b	 	   Embeds the fonts bold face.
+   -i	 	   Embeds the fonts italic face.
+   -u          Ouput uncompressed SWF
+   -a alias    Sets the fonts alias. The default is the fonts family name.
+   -c length   Sets the number of chars in each SWF chunks. The default is 100.
+
+Require RedTamarin %minversion, available here: http://code.google.com/p/redtamarin/
+Require FLEX_HOME environment variable, defining location of Flex SDK folder.]]>;
+
+const INVALID_FILE:uint = 2;
+const ARG_ERROR:uint = 10;
+const INVALID_API:uint = 20;
+const MIN_VERSION:Array = [0, 3, 0];//0.3.0
+
+
+
+function usage()
+{
+	trace(USAGE.replace("%cmd", System.programFilename).replace("%minversion", MIN_VERSION.join(".")));
+}
+
+/*
+Check RedTamarin version
+*/
+var redTamarinVersion:Array = System.getRedtamarinVersion().split(".");
+if(parseInt(redTamarinVersion[2]) < MIN_VERSION[2]
+	&& parseInt(redTamarinVersion[1]) < MIN_VERSION[1]
+	&& parseInt(redTamarinVersion[0]) < MIN_VERSION[0])
+{
+	trace("Require RedTamarin shell equal or greated than %minversion. Current version is %currentversion\n".replace("%minversion", MIN_VERSION.join(".")).replace("%currentversion", redTamarinVersion.join(".")));
+	usage();
+	System.exit(INVALID_API);
+}
+/*
+Check FLEX_HOME env var
+*/
+if(getenv("FLEX_HOME") == "" || getenv("FLEX_HOME") == null)
+{
+	trace("Require environment variable FLEX_HOME. To define it, use this command:\n\tset FLEX_HOME=\"" + FileSystem.normalizePath("path/to/flex") + "\"\n");
+	usage();
+	System.exit(INVALID_API);
+}
+/*
+TODO check if java and jar of fontSWF are available
+*/
+
+var javaCmd:String = "java -Dsun.io.useCanonCaches=false -Xms32m -Xmx512m"
+var fontSWFJarCmd:String = " -jar \"%flexhome/lib/flex-fontkit.jar\" -3".replace("%flexhome", getenv("FLEX_HOME"));
+var chunkLength:uint = 100;
+var alias:String = null;
+var bold:Boolean = false, italic:Boolean = false;
+var file:String = null;
+
+/*
+Parse args
+*/
+var argv:Array = System.argv;//C argv[0] is not included (start at 0 without path of current exec)
+var argc:uint = argv.length;
+for(var i:uint = 0; i < argc; i++)
+{
+	var arg:String = argv[i];
+	//Help
+	if(arg == "-h" || arg == "-help" || arg == "--help" || arg == "-?")
+	{
+		usage();
+		System.exit();
+	}
+	//Bold flag
+	else if(arg == "-b" || arg == "-bold" || arg == "--bold")
+	{
+		bold = true;
+	}
+	//Italic flag
+	else if(arg == "-i" || arg == "-italic" || arg == "--italic")
+	{
+		bold = true;
+	}
+	//Alias
+	else if(arg == "-a" || arg == "-alias" || arg == "--alias")
+	{
+		if(i < argc - 1)
+		{
+			alias = argv[++i];
+		}
+		else
+		{
+			trace("%arg requires an argument\n".replace("%arg", arg));
+			usage();
+			System.exit(ARG_ERROR);
+		}
+	}
+	//
+	else if(arg == "-c" || arg == "-chunk" || arg == "--chunk")
+	{
+		if(i < argc - 1)
+		{
+			chunkLength = argv[++i];
+		}
+		else
+		{
+			trace("%arg requires an argument\n".replace("%arg", arg));
+			usage();
+			System.exit(ARG_ERROR);
+		}
+	}
+	//Uncompressed flag
+	/*
+	http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/swfutils/src/java/flash/swf/MovieEncoder.java -> http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/swfutils/src/java/flash/swf/Header.java
+	http://www.rgagnon.com/javadetails/java-0150.html
+	*/
+	else if(arg == "-u" || arg == "-uncompressed" || arg == "--uncompressed")
+	{
+		javaCmd += " -Dflex.swf.uncompressed=\"true\"";
+	}
+	//No more optional arguments, next is file
+	else if(arg == "--")
+	{
+		if(i == argc - 2)
+		{
+			file = argv[++i];
+		}
+		else if(i >= argc - 1)
+		{
+			trace("file is required.\n");
+			usage();
+			System.exit(ARG_ERROR);
+		}
+		else
+		{
+			trace("Can't handle more than one file at the same time.\n");
+			usage();
+			System.exit(ARG_ERROR);
+		}
+	}
+	//Other arguments
+	else if(arg.charAt() == "-")
+	{
+		trace("Invalid option: $arg\n".replace("%arg", arg));
+		usage();
+		System.exit(ARG_ERROR);
+	}
+	//Assumed as file (only one)
+	else
+	{
+		//Is last argument
+		if(i == argc - 1)
+		{
+			file = argv[i];
+		}
+		else
+		{
+			trace("Can't handle more than one file at the same time.\n");
+			usage();
+			System.exit(ARG_ERROR);
+		}
+	}
+}
+
+/*
+File argument not found or file not exist
+*/
+if(file == null || file == "" || !FileSystem.isRegularFile(file))
+{
+	trace("Invalid file.\n");
+	usage();
+	System.exit(INVALID_FILE);
+}
+
+/*
+Alias is set
+*/
+if(alias != null && alias != "")
+	fontSWFJarCmd += " -a " + alias;
+
+/*
+Bold
+*/
+if(bold)
+	fontSWFJarCmd += " -b";
+
+/*
+Italic
+*/
+if(italic)
+	fontSWFJarCmd += " -i";
+
+var max:uint = 0xFFFF;
+var i:uint = 0;
+while(last < max)
+{
+	var first:uint = i++ * chunkLength;
+	last = first + chunkLength - 1;
+	var range:String = "U+" + ("000" + first.toString(16).toUpperCase()).substr(-4, 4) + "-U+" + ("000" + last.toString(16).toUpperCase()).substr(-4, 4);
+	var cmd:String = javaCmd + fontSWFJarCmd + "-u \"%range\" -o \"%range\" \"%file\"".replace("%range", range).replace("%file", file);
+	trace(System.popen(cmd));
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
+++ frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
@@ -34,6 +34,11 @@
  *  this group changes.
  *
  *  @eventType flash.events.Event.CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [Event(name="change", type="flash.events.Event")]

@@ -42,6 +47,11 @@
  *  You can also set a handler for individual FxRadioButton controls.
  *
  *  @eventType mx.events.ItemClickEvent.ITEM_CLICK
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [Event(name="itemClick", type="mx.events.ItemClickEvent")]

@@ -90,6 +100,11 @@
  *

  *
  *  @see mx.components.FxRadioButtonGroup
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class FxRadioButtonGroup extends EventDispatcher implements IMXMLObject
 {
@@ -108,6 +123,11 @@
      *  the document parameter should not be used.
      *
      *  @see flash.events.EventDispatcher
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function FxRadioButtonGroup(document:IFlexDisplayObject = null)
     {
@@ -156,6 +176,11 @@
      *  Determines whether selection is allowed.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get enabled():Boolean
     {
@@ -190,6 +215,11 @@
      *  The number of FxRadioButtons that belong to this FxRadioButtonGroup.
      *
      *  @default "0"
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get numRadioButtons():int
     {
@@ -223,6 +253,11 @@
      *  label property matches this value.

      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get selectedValue():Object
     {
@@ -281,6 +316,11 @@
      *  selected FxRadioButton control.  A change event is not dispatched.
      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get selection():FxRadioButton
     {
@@ -312,6 +352,11 @@
      *  If the object is a deep property on document, id is null.
      *
      *  @see mx.core.IMXMLObject
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function initialized(document:Object, id:String):void
     {
@@ -330,6 +375,11 @@
      *  0 and numRadioButtons, otherwise null.
      *
      *  @see numRadioButtons
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function getRadioButtonAt(index:int):FxRadioButton
     {


add goog.bind to GCL

add goog.bind to GCL

fatal: unable to access 'https://github.com/adufilie/flex-falcon.git/': The requested URL returned error: 403