if I/O error happens while loading first fragment, it was not skipped properly. related to #214

--- src/org/mangui/hls/loader/FragmentLoader.as
+++ src/org/mangui/hls/loader/FragmentLoader.as
@@ -219,7 +219,7 @@
                 case LOADING_STALLED:
                     /* next consecutive fragment not found:
                     it could happen on live playlist :
-                    - if bandwidth available is lower than lowest quality needed bandwidth
+                    - if bandwidth available is lower than lowest quality needed bandwidth
                     - after long pause */
                     CONFIG::LOGGING {
                         Log.warn("loading stalled: restart playback");
@@ -359,6 +359,8 @@
                         Log.warn("max fragment load retry reached, skip fragment and load next one");
                     }
                     _frag_current = _frag_previous;
+                    // set fragment first loaded to be true to ensure that we can skip first fragment as well
+                    _fragment_first_loaded = true;
                     _loading_state = LOADING_IDLE;
                 } else {
                     var hlsError : HLSError = new HLSError(HLSError.FRAGMENT_LOADING_ERROR, _frag_current.url, "I/O Error :" + message);
@@ -779,9 +781,9 @@
             var fragData : FragmentData = _frag_current.data;
             fragData.appendTags(tags);

-            /* try to do progressive buffering here.
+            /* try to do progressive buffering here.
              * only do it in case :
-             * 		first fragment is already loaded
+             * 		first fragment is already loaded
              *      if first fragment is not loaded, we can do it if startlevel is already defined (if startFromLevel is set to -1
              *      we first need to download one fragment to check the dl bw, in order to assess start level ...)
              *      in case startFromLevel is to -1 and there is only one level, then we can do progressive buffering


Fix merge problem

Fix merge problem

Fix merge problem

--- src/ageofai/home/view/HomeView.as
+++ src/ageofai/home/view/HomeView.as
@@ -4,13 +4,10 @@
 package ageofai.home.view
 {
 	import ageofai.building.base.BaseBuildingView;
-<<<<<<< Updated upstream
 	import ageofai.home.view.event.HomeViewEvent;
-	import ageofai.villager.event.VillagerEvent;
 	import ageofai.villager.view.VillagerView;
-=======
+
 	import ageofai.map.constant.CMap;
->>>>>>> Stashed changes

 	public class HomeView extends BaseBuildingView
 	{
@@ -23,18 +20,18 @@
 			this._graphicUI.x = CMap.TILE_SIZE;
 			this._graphicUI.y = CMap.TILE_SIZE;
 		}
-
-		public function showProgressValue( value:Number):void
+
+		public function showProgressValue( value:Number ):void
 		{
 			this._buildProgressBar.show();
 			this._buildProgressBar.drawProcessBar( value );
 		}
-
+
 		public function createVillagerView():void
 		{
-            var homeViewEvent:HomeViewEvent = new HomeViewEvent( HomeViewEvent.VILLAGER_VIEW_CREATED );
-            homeViewEvent.villagerView = new VillagerView( );
-            this.dispatchEvent( homeViewEvent );
+			var homeViewEvent:HomeViewEvent = new HomeViewEvent( HomeViewEvent.VILLAGER_VIEW_CREATED );
+			homeViewEvent.villagerView = new VillagerView();
+			this.dispatchEvent( homeViewEvent );
 		}
 	}
 }


simplified URLRequestUtils code

simplified URLRequestUtils code

--- WeaveJS/src/weavejs/net/URLRequestUtils.as
+++ WeaveJS/src/weavejs/net/URLRequestUtils.as
@@ -45,39 +45,41 @@
 		public function request(relevantContext:Object, urlRequest:URLRequest):WeavePromise
 		{
 			var responseType:String = urlRequest.responseType || ResponseType.UINT8ARRAY;
+			var promise:WeavePromise;

 			if (urlRequest.url.indexOf(LOCAL_FILE_URL_SCHEME) == 0)
 			{
+				var fileName:String = urlRequest.url.substr(LOCAL_FILE_URL_SCHEME.length);
 				var weaveRoot:ILinkableHashMap = Weave.getRoot(relevantContext as ILinkableObject);
-				var promise:WeavePromise = get_d2d_weaveRoot_url_promise(weaveRoot, urlRequest.url);
-				if (!promise.getResult() && !promise.getError())
+				var cachedPromise:WeavePromise = get_d2d_weaveRoot_fileName_promise(weaveRoot, fileName);
+				if (cachedPromise.getResult() == null && cachedPromise.getError() == null)
 				{
-					if (!weaveRoot)
-						promise.setError(new Error(Weave.lang("To request a local:// URL, the relevantContext must be an ILinkableObject that is registered under an instance of Weave.")));
+					if (weaveRoot)
+						removeLocalFile(weaveRoot, fileName);
 					else
-						removeLocalFile(weaveRoot, urlRequest.url.substr(LOCAL_FILE_URL_SCHEME.length));
+						cachedPromise.setError(new Error(Weave.lang("To request a " + LOCAL_FILE_URL_SCHEME + " URL, the relevantContext must be an ILinkableObject registered under an instance of Weave.")));
 				}
-				promise = promise.then(function(byteArray:/*Uint8*/Array):Object {
-					return new WeavePromise(relevantContext, function(resolve:Function, reject:Function):* {
+				promise = new WeavePromise(relevantContext)
+					.setResult(cachedPromise)
+					.then(function(byteArray:/*Uint8*/Array):Object {
 						switch (responseType) {
 							default:
 							case ResponseType.TEXT:
-								return resolve(byteArrayToString(byteArray));
+								return byteArrayToString(byteArray);
 							case ResponseType.JSON:
-								return resolve(JSON.parse(byteArrayToString(byteArray)));
+								return JSON.parse(byteArrayToString(byteArray));
 							case ResponseType.BLOB:
-								return resolve(new JS.global.Blob([byteArray.buffer]));
+								return new JS.global.Blob([byteArray.buffer]);
 							case ResponseType.ARRAYBUFFER:
-								return resolve(byteArray.buffer);
+								return byteArray.buffer;
 							case ResponseType.DOCUMENT:
-								return reject(new Error("responseType " + ResponseType.DOCUMENT + " not supported for local files"));
+								throw new Error("responseType " + ResponseType.DOCUMENT + " not supported for local files");
 							case ResponseType.UINT8ARRAY:
-								return resolve(byteArray);
+								return byteArray;
 							case ResponseType.DATAURI:
-								return resolve(byteArrayToDataUri(byteArray, urlRequest.mimeType));
+								return byteArrayToDataUri(byteArray, urlRequest.mimeType);
 						}
 					});
-				});
 			}
 			else
 			{
@@ -139,47 +141,42 @@

 		public static const LOCAL_FILE_URL_SCHEME:String = 'local://';

-		private const d2d_weaveRoot_url_promise:Dictionary2D = new Dictionary2D(true);
-		private function get_d2d_weaveRoot_url_promise(weaveRoot:ILinkableHashMap, url:String):WeavePromise
+		private const d2d_weaveRoot_fileName_promise:Dictionary2D = new Dictionary2D(true);
+		private function get_d2d_weaveRoot_fileName_promise(weaveRoot:ILinkableHashMap, fileName:String):WeavePromise
 		{
 			var context:Object = weaveRoot || this; // use (this) instead of (null) to avoid WeakMap invalid key error
-			var promise:WeavePromise = d2d_weaveRoot_url_promise.get(context, url);
+			var promise:WeavePromise = d2d_weaveRoot_fileName_promise.get(context, fileName);
 			if (!promise)
 			{
 				promise = new WeavePromise(context).setResult(null);
-				d2d_weaveRoot_url_promise.set(context, url, promise);
+				d2d_weaveRoot_fileName_promise.set(context, fileName, promise);
 			}
 			return promise;
 		}

-		public function saveLocalFile(weaveRoot:ILinkableHashMap, name:String, byteArray:/*Uint8*/Array):String
+		public function saveLocalFile(weaveRoot:ILinkableHashMap, fileName:String, byteArray:/*Uint8*/Array):String
 		{
-			var url:String = LOCAL_FILE_URL_SCHEME + name;
-			var promise:WeavePromise = get_d2d_weaveRoot_url_promise(weaveRoot, url);
+			var promise:WeavePromise = get_d2d_weaveRoot_fileName_promise(weaveRoot, fileName);
 			promise.setResult(byteArray);
-			return url;
+			return LOCAL_FILE_URL_SCHEME + fileName;
 		}

-		public function getLocalFile(weaveRoot:ILinkableHashMap, name:String):/*Uint8*/Array
+		public function getLocalFile(weaveRoot:ILinkableHashMap, fileName:String):/*Uint8*/Array
 		{
-			var url:String = LOCAL_FILE_URL_SCHEME + name;
-			var promise:WeavePromise = get_d2d_weaveRoot_url_promise(weaveRoot, url);
+			var promise:WeavePromise = get_d2d_weaveRoot_fileName_promise(weaveRoot, fileName);
 			var result:* = promise.getResult();
 			return result;
 		}

-		public function removeLocalFile(weaveRoot:ILinkableHashMap, name:String):void
+		public function removeLocalFile(weaveRoot:ILinkableHashMap, fileName:String):void
 		{
-			var url:String = LOCAL_FILE_URL_SCHEME + name;
-			var promise:WeavePromise = get_d2d_weaveRoot_url_promise(weaveRoot, url);
-			promise.setError(new Error(Weave.lang("Local file missing: {0}", name)));
+			var promise:WeavePromise = get_d2d_weaveRoot_fileName_promise(weaveRoot, fileName);
+			promise.setError(new Error(Weave.lang("Local file missing: {0}", fileName)));
 		}

 		public function getLocalFileNames(weaveRoot:ILinkableHashMap):Array
 		{
-			return JS.mapKeys(d2d_weaveRoot_url_promise.map.get(weaveRoot)).sort().map(function(url:String):String {
-				return url.substr(LOCAL_FILE_URL_SCHEME.length);
-			});
+			return d2d_weaveRoot_fileName_promise.secondaryKeys(weaveRoot).sort();
 		}
 	}
 }


Guess what: tabs

Guess what: tabs


added call to new game request dialog

added call to new game request dialog

--- actionscript/src/com/freshplanet/ane/AirFacebook/Facebook.as
+++ actionscript/src/com/freshplanet/ane/AirFacebook/Facebook.as
@@ -390,6 +390,25 @@
                 return;
             }
             _context.call("appInviteDialog", appInviteContent, getNewCallbackName(callback));
+        } else {
+
+            log("You must call init() before any other method!");
+        }
+    }
+
+    /**
+     *
+     * @param gameRequestContent
+     * @param callback
+     */
+    public function gameRequestDialog(gameRequestContent:FBGameRequestContent, frictionless:Boolean, callback:Function):void
+    {
+        if (_initialized) {
+
+            if(gameRequestContent == null){
+                return;
+            }
+            _context.call("gameRequestDialog", gameRequestContent, frictionless, getNewCallbackName(callback));
         } else {

             log("You must call init() before any other method!");


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4460
Author:   gosmith@adobe.com
Date:     2009-01-09T01:53:33.590972Z

Log Message:
-----------
Renamed UIComponentAccImpl to UIComponentAccProps because it extends AccessibilityProperties, not AccessibilityImplementation.

Added comments with the identifier for each magic role constant, so that it is easier to understand what roles our components are using.

Moved two static methods from UIComponentAccProperties to AccImpl because they make more sense there.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: None (no functional changes)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LinkButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/PanelAccImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as" copyfrom-rev="4437" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/SliderAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/SliderAccImpl.as
@@ -162,8 +162,10 @@
 	public function SliderAccImpl(master:UIComponent)
 	{
 		super(master);
+
+		role = 0x33; // ROLE_SYSTEM_SLIDER
+
 		master.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
-		role = 0x33;
 	}

 	//--------------------------------------------------------------------------
@@ -216,7 +218,9 @@
 	override public function get_accValue(childID:uint):String
 	{
 		var val:Number = Slider(master).values[Math.max(childID - 1, 0)];
-		val = (val -  Slider(master).minimum)/(Slider(master).maximum - Slider(master).minimum) * 100;
+
+		val = (val -  Slider(master).minimum) /
+			  (Slider(master).maximum - Slider(master).minimum) * 100;

 		return String(val) + " percent";
 	}
@@ -233,7 +237,10 @@

 		var n:Number = Slider(master).thumbCount;
 		for (var i:int = 0; i < n; i++)
+		{
 			childIDs[i] = i + 1;
+		}
+
 		return childIDs;
 	}
 	/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 4726
Author:   gosmith@adobe.com
Date:     2009-01-29T02:47:59.868818Z

Log Message:
-----------
Accessibility changes to the MSAA name of several components, as requested by Freedom Scientific. These changes make Flex controls behave more like standard Windows controls.

In Accordion and TabBar, the name is now just what is displayed, without " Tab" or " Tab, Active" appended.

In ComboBox, List, and Tree, the name of each item is now just what it displays, without, for example, "2 of 7" appended.

Removed an artificial limit of 100000 items in List and Menu.

A Slider with an MXML id no longer returns that id as its name; no other component does this and id's are certainly no intended to be spoken.

Removed the getName() method of ComboBase, which isn't used.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/TabBarAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/TabBarAccImpl.as
@@ -280,6 +280,7 @@
 			return "";

 		var tabBar:TabBar = TabBar(master);
+
 		var index:int = childID - 1;

 		// With new version of JAWS, when we add a new child, we get nonsense number
@@ -289,14 +290,7 @@

 		var item:Tab = Tab(tabBar.getChildAt(index));

-		var name:String = item.label;
-
-		if (index == tabBar.selectedIndex)
-			name += " Tab, Active";
-		else
-			name += " Tab";
-
-		return name;
+		return item.label;
 	}

 	//--------------------------------------------------------------------------


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/soap/types/DataSetType.as
+++ frameworks/projects/rpc/src/mx/rpc/soap/types/DataSetType.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2007 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 3554
Author:   hmuller@adobe.com
Date:     2008-10-09T23:47:11.193434Z

Log Message:
-----------
Bug fixes: 17258, 17146, 17193

Now correctly handle the
HorizontalLayout::horizontalScrollPositionDelta() special case where
there's just one item the scrollRect, and the item is partially
visible and left justified, and the requested scroll unit is RIGHT.
Likewise for right justified and RIGHT and likewise for
VerticalLayout.

The fix is in findLayoutItemBounds() (defined in both Horizontal
and VerticalLayout), which now deals with this case correctly.
This method's responsibilities have changed as part of a larger
refactoring effort that also supports better step/page behavior
for extremely large items.

QE: No
Doc: No
Checkintests: Pass
Reviewer: Evtim
Bugs:
    SDK-17258 - inView method throws an RTE when passing in invalid indexes
    SDK-17146 - Horizontal Scroller only respond to RIGHT/LEFT buttons
    SDK-17193 - Scroll position delta methods loop when scrolling through items larger than the viewport size

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -11,6 +11,7 @@

 package mx.components
 {
+import flash.ui.Keyboard;
 import mx.components.baseClasses.FxTextBase;
 import mx.components.baseClasses.FxScrollBar;
 import mx.layout.ILayoutItem;
@@ -113,6 +114,41 @@
     {
         return localX;
     }
+
+    /**
+     *  Implicitly update the viewport's verticalScrollPosition per the
+     *  specified scrolling unit, by setting the scrollbar's value.
+     *
+     *  @private
+     */
+    private function updateViewportHSP(unit:uint):void
+    {
+        var delta:Number = viewport.horizontalScrollPositionDelta(unit);
+        setValue(viewport.horizontalScrollPosition + delta);
+    }
+
+    /**
+     *
+     */
+    override public function page(increase:Boolean = true):void
+    {
+        if (!viewport)
+            super.page(increase);
+        else
+            updateViewportHSP((increase) ? Keyboard.PAGE_DOWN : Keyboard.PAGE_UP);
+    }
+
+    /**
+     *
+     */
+    override public function step(increase:Boolean = true):void
+    {
+        if (!viewport)
+            super.step(increase);
+        else
+            updateViewportHSP((increase) ? Keyboard.RIGHT : Keyboard.LEFT);
+    }
+
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7836
Author:   chaase@adobe.com
Date:     2009-06-15T14:37:21.379918Z

Log Message:
-----------
PARB changes for effects. This includes various property renames, a couple of class renames, moving 3 classes to a sub-package, and various doc cleanups. This also includes changing a handful of Array properties to typed Vectors.

QE: This breaks Mustella due to the renames
Doc: Docs will need to be updated to reflect the changes as well
Bugs: None
Reviewer: Jason
Tests: checkintests, Thermo's transitionbug test

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/BitmapUtil.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/KeyFrame.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/RGBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/IInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/CallActionInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CrossFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/HSBColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CrossFade.pbk</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>

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

--- frameworks/projects/spark/src/spark/effects/easing/Linear.as
+++ frameworks/projects/spark/src/spark/effects/easing/Linear.as
@@ -74,26 +74,6 @@
         this.easeOutFraction = easeOutFraction;
     }

-    private static var instance:Linear;
-
-    /**
-     *  Returns the singleton instance of the Linear class.
-     *
-     *  @return The singleton instance of the Linear class.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public static function getInstance():Linear
-    {
-        if (!instance)
-            instance = new Linear();
-
-        return instance;
-    }
-
     /**
      * Storage for the _easeInFraction property
      *
@@ -169,7 +149,7 @@
      *  properties.
      *  If fraction
      *  is less than easeInFraction, it calculates a value
-     *  based on accelerating up to the linear moiton phase.
+     *  based on accelerating up to the linear motion phase.
      *  If fraction
      *  is greater than easeInFraction and less than
      *  (1-easeOutFraction), it calculates a value based


Transferred from the Adobe Open Source Subversion Repository

Revision: 17957
Author:   clucier@adobe.com
Date:     2010-09-30T18:19:26.473648Z

Log Message:
-----------
Moved to using a simple custom layout to manage all of the permutations if icon/label/iconPlacement in the Spark button skins. Label should not properly truncated when overflowed.

Addressed issue with ToggleButtonSkin where if toggled and disabled, the button would not appear disabled.

Added iconPlacement style to ButtonBarBase and addressed several iconField and iconFunction related bugs.

QE notes: None
Doc notes: None
Bugs: SDK-27900, SDK-27896, SDK-27902, SDK-27901, SDK-27894, SDK-27897, SDK-27899
Reviewer: Evtim (Layout logic), Darrell (ButtonBar)
Tests run: Checkin.
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/LabelAndIconLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/SparkButtonSkin.as</path>

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

--- frameworks/projects/spark/src/spark/skins/SparkButtonSkin.as
+++ frameworks/projects/spark/src/spark/skins/SparkButtonSkin.as
@@ -12,14 +12,15 @@
 package spark.skins
 {
     import mx.core.IVisualElement;
-    import spark.components.Button;
+    import mx.styles.IStyleClient;
+
     import spark.components.Group;
     import spark.components.IconPlacement;
     import spark.components.supportClasses.ButtonBase;
+    import spark.components.supportClasses.LabelAndIconLayout;
     import spark.core.IDisplayText;
     import spark.layouts.*;
     import spark.primitives.BitmapImage;
-    import spark.skins.SparkSkin;

     /**
      *  Base class for Spark button skins. Primarily used for
@@ -73,6 +74,12 @@
          */
         private var iconGroup:Group;

+        /**
+         * @private
+         * Saves our label's previous textAlign value.
+         */
+        private var prevTextAlign:String;
+
         //--------------------------------------------------------------------------
         //
         //  Properties
@@ -351,46 +358,29 @@
                 return;

             // If we have an icon to render we ensure the necessary
-            // parts are created and we configure a linear layout
-            // instance to manage our icon and label parts.
+            // parts are created and we configure a helper layout
+            // (LabelAndIconLayout) to manage our display parts.
             if (_hostComponent.icon && labelDisplay)
             {
                 if (iconChanged)
                     constructIconParts(true);

-                if (groupPaddingChanged)
+                var layout:LabelAndIconLayout = iconGroup.layout as LabelAndIconLayout;
+
+                if (groupPaddingChanged || iconChanged)
                 {
-                    iconGroup.left = _iconGroupPaddingLeft;
-                    iconGroup.right = _iconGroupPaddingRight;
-                    iconGroup.top = _iconGroupPaddingTop;
-                    iconGroup.bottom = _iconGroupPaddingBottom;
-                    groupPaddingChanged = false;
+                    layout.gap = _gap;
+                    layout.paddingLeft = _iconGroupPaddingLeft;
+                    layout.paddingRight = _iconGroupPaddingRight;
+                    layout.paddingTop = _iconGroupPaddingTop;
+                    layout.paddingBottom = _iconGroupPaddingBottom;
                 }

-                var iconPlacement:String = getStyle("iconPlacement");
-
-                var horizontal:Boolean =
-                    iconPlacement == IconPlacement.LEFT ||
-                    iconPlacement == IconPlacement.RIGHT;
-
-                iconGroup.layout =  horizontal ?
-                    new HorizontalLayout() : new VerticalLayout();
-
-                // Initialize our layout alignment and position the icon in
-                // the correct child slot per our iconPlacement.
-                Object(iconGroup.layout).horizontalAlign = HorizontalAlign.CENTER;
-                Object(iconGroup.layout).verticalAlign = VerticalAlign.MIDDLE;
-                Object(iconGroup.layout).gap = _gap;
-
-                var firstElement:IVisualElement =
-                    (iconPlacement == IconPlacement.LEFT ||
-                        iconPlacement == IconPlacement.TOP) ?
-                    iconDisplay : IVisualElement(labelDisplay);
-
-                iconGroup.setElementIndex(firstElement, 0);
-
-                // Ensure we account for empty layout so that we don't apply layout gap.
-                IVisualElement(labelDisplay).includeInLayout = labelDisplay.text && labelDisplay.text.length;
+                if (iconPlacementChanged || iconChanged)
+                {
+                    layout.iconPlacement = getStyle("iconPlacement");
+                    alignLabelForPlacement();
+                }
             }
             else
             {
@@ -401,6 +391,7 @@

             iconChanged = false;
             iconPlacementChanged = false;
+            groupPaddingChanged = false;
         }

         /**
@@ -439,18 +430,27 @@
             if (construct)
             {
                 if (!iconDisplay)
+                    iconDisplay = new BitmapImage();
+
+                if (!iconGroup)
                 {
-                    iconDisplay = new BitmapImage();
-                    iconDisplay.verticalCenter = 0;
-                    iconDisplay.horizontalCenter = 0;
+                    iconGroup = new Group();
+                    iconGroup.left = iconGroup.right = 0;
+                    iconGroup.top = iconGroup.bottom = 0;
+                    iconGroup.layout = new LabelAndIconLayout();
                 }

-                if (!iconGroup)
-                    iconGroup = new Group();
-
                 iconGroup.addElement(iconDisplay);
-                iconGroup.addElement(IVisualElement(labelDisplay));
+
+                iconGroup.clipAndEnableScrolling = true;
                 addElement(iconGroup);
+
+                if (labelDisplay && IVisualElement(labelDisplay).parent != iconGroup)
+                {
+                    iconGroup.addElement(IVisualElement(labelDisplay));
+                    if (labelDisplay is IStyleClient)
+                        prevTextAlign = IStyleClient(labelDisplay).getStyle("textAlign");
+                }
             }
             else
             {
@@ -461,7 +461,27 @@
                 {
                     removeElement(iconGroup);
                     addElement(IVisualElement(labelDisplay));
+
+                    if (labelDisplay is IStyleClient)
+                        IStyleClient(labelDisplay).setStyle("textAlign", prevTextAlign);
                 }
+            }
+        }
+
+        /**
+         *  @private
+         */
+        private function alignLabelForPlacement():void
+        {
+            if (labelDisplay is IStyleClient)
+            {
+                var iconPlacement:String = getStyle("iconPlacement");
+
+                var alignment:String =
+                    iconPlacement == IconPlacement.LEFT ||
+                    iconPlacement == IconPlacement.RIGHT ? "left" : "center"
+
+                IStyleClient(labelDisplay).setStyle("textAlign", alignment);
             }
         }


Comparison between 2 null values was not handled in a Signature.

--- src/aerys/minko/type/binding/Signature.as
+++ src/aerys/minko/type/binding/Signature.as
@@ -134,6 +134,9 @@

 		private function compare(value1 : Object, value2 : Object) : Boolean
 		{
+			if (value1 == null && value2 == null)
+				return true;
+
 			if ((value1 == null && value2 != null) || (value1 != null && value2 == null))
 				return false;


Pulled tick mark label code out into a separate function

Change-Id: I93f492fda3687c28854222ac7197c22a450c81f4

--- WeaveUI/src/weave/visualization/plotters/SimpleAxisPlotter.as
+++ WeaveUI/src/weave/visualization/plotters/SimpleAxisPlotter.as
@@ -298,37 +298,7 @@
 				// draw tick mark label
 				if (showLabels.value)
 				{
-					_bitmapText.text = null;
-					// attempt to use label function
-					var labelFunctionResult:String = _labelFunction == null ? null : _labelFunction(tickValue);
-					if (_labelFunction != null && labelFunctionResult != null)
-					{
-						_bitmapText.text = labelFunctionResult;
-					}
-					else if (key == MIN_LABEL_KEY || key == MAX_LABEL_KEY )
-					{
-						if (tickValue == int(tickValue))
-							_numberFormatter.precision = -1;
-						else
-							_numberFormatter.precision = 2;
-
-						_bitmapText.text = _numberFormatter.format(tickValue);
-					}
-					else
-					{
-						_bitmapText.text = labelNumberFormatter.format(tickValue);
-					}
-
-					try
-					{
-						if (labelFunction.value)
-							_bitmapText.text = labelFunction.apply(null, [tickValue, _bitmapText.text]);
-					}
-					catch (e:Error)
-					{
-						_bitmapText.text = '';
-					}
-
+					_bitmapText.text = getLabel(tickValue);
 					_bitmapText.x = xTick + xLabelOffset;
 					_bitmapText.y = yTick + yLabelOffset;
 					_bitmapText.draw(destination);
@@ -521,6 +491,48 @@
 		private const tempPoint:Point = new Point();
 		private const tempPoint2:Point = new Point();

+		public function getLabel(tickValue:Number):String
+		{
+			var minValue:Number = tickMinValue.value;
+			var maxValue:Number = tickMaxValue.value;
+			if (isNaN(minValue))
+				minValue = axisLineMinValue.value;
+			if (isNaN(maxValue))
+				maxValue = axisLineMaxValue.value;
+
+			var result:String = null;
+			// attempt to use label function
+			var labelFunctionResult:String = _labelFunction == null ? null : _labelFunction(tickValue);
+			if (_labelFunction != null && labelFunctionResult != null)
+			{
+				result = labelFunctionResult;
+			}
+			else if (tickValue == minValue || tickValue == maxValue)
+			{
+				if (tickValue == int(tickValue))
+					_numberFormatter.precision = -1;
+				else
+					_numberFormatter.precision = 2;
+
+				result = _numberFormatter.format(tickValue);
+			}
+			else
+			{
+				result = labelNumberFormatter.format(tickValue);
+			}
+
+			try
+			{
+				if (labelFunction.value)
+					result = labelFunction.apply(null, [tickValue, result]);
+			}
+			catch (e:Error)
+			{
+				result = '';
+			}
+
+			return result;
+		}
 		// TEMPORARY SOLUTION
 		public function setLabelFunction(func:Function):void
 		{


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/charts/src/mx/charts/series/LineSeries.as
+++ frameworks/projects/charts/src/mx/charts/series/LineSeries.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 13062
Author:   smgilson@adobe.com
Date:     2009-12-17T19:26:46.231078Z

Log Message:
-----------
add complete event to MXML syntax

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/VideoPlayer.as
+++ frameworks/projects/spark/src/spark/components/VideoPlayer.as
@@ -445,6 +445,7 @@
  *
  *    Events
  *    bytesLoadedChange="No default"
+ *    complete="No default"
  *    currentTimeChange="No default"
  *    durationChange="No default"
  *    mediaPlayerStateChange="No default"


Transferred from the Adobe Open Source Subversion Repository

Revision: 12291
Author:   smgilson@adobe.com
Date:     2009-11-30T20:05:25.519075Z

Log Message:
-----------
update old effects examples and add new ones. Add back the @includeExample tags to effects classes that had them removed for some reason.

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

Modified Paths:
--------------
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/easing/examples</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/easing/examples/assets</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/animation/examples</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/animation/examples/assets</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/examples/Scale3DEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/SimpleMotionPath.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/easing/examples/LinearEffectExample.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/easing/examples/SinePowerEffectExample.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/animation/examples/KeyFrameEffectExample.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/easing/examples/assets/logo.jpg</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/treeClasses/MXTreeItemRenderer.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/easing</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/examples/AnimateFilterEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/examples/Rotate3DEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Bounce.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/easing/examples/BounceElasticEffectExample.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/examples/ScaleEffectExample.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/examples/SetActionEffectExample.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/animation/examples/assets/logo.jpg</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/animation</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/examples/Move3DEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Elastic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/asdoc/en_US/spark/effects/examples/RotateEffectExample.mxml</path>

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

--- frameworks/projects/spark/src/spark/effects/easing/Elastic.as
+++ frameworks/projects/spark/src/spark/effects/easing/Elastic.as
@@ -19,6 +19,8 @@
  *  The effect target decelerates toward the end value, and continues past the end value.
  *  It then oscillates around the end value in smaller and smaller increments,
  *  before reaching the end value.
+ *
+ *  @includeExample examples/BounceElasticEffectExample.mxml
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Change 20091010-bargull-uVg by bargull@dell--p4--2-53 on 2009-10-10 17:05:16
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: ensure pooled timers don't reuse UID

New Features:

Bugs Fixed: LPP-8545 (SWF9: Pooled Timer must not reuse UID)

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

Documentation:

Release Notes:

Details:
Moved timer pool from LzTimeKernelClass to LzKernelTimer. Timers should now be created to the static function "create()" and later returned to the timer pool through "remove()". "create()" takes care that timers won't reuse an UID.

Tests:
test case from bug report works in swf9+

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

--- WEB-INF/lps/lfc/kernel/swf9/LzTimeKernel.as
+++ WEB-INF/lps/lfc/kernel/swf9/LzTimeKernel.as
@@ -15,15 +15,13 @@
     import flash.events.TimerEvent;
     }#

-    private const MAX_POOL :int = 10;
-    private var timerPool :Array = [];
     private var timers :Object = {};

     /**
       * Creates a new timer and returns an unique identifier which can be used to remove the timer.
       */
     private function createTimer (delay:Number, repeatCount:int, closure:Function, args:Array) :uint {
-        var timer:LzKernelTimer = this.timerPool.pop() || new LzKernelTimer();
+        var timer:LzKernelTimer = LzKernelTimer.create();
         this.timers[timer.timerID] = timer;
         timer.delay = delay;
         timer.repeatCount = repeatCount;
@@ -47,9 +45,7 @@
             timer.removeEventListener(TimerEvent.TIMER_COMPLETE, this.timerCompleteHandler);
             timer.reset();
             delete this.timers[id];
-            if (this.timerPool.length < this.MAX_POOL) {
-                this.timerPool.push(timer);
-            }
+            LzKernelTimer.remove(timer);
         }
     }

@@ -106,10 +102,29 @@

   #passthrough {
     private static var idCounter :uint = 0;
+    private static const MAX_POOL :int = 10;
+    private static var timerPool :Array = [];
+
+    /**
+     * Use this method instead of the constructor to create an instance
+     */
+    public static function create () :LzKernelTimer {
+        var timer:LzKernelTimer = timerPool.pop() || new LzKernelTimer();
+        timer._timerID = idCounter++;
+        return timer;
+    }
+
+    /**
+     * Allow timers to be pooled and reused later
+     */
+    public static function remove (timer:LzKernelTimer) :void {
+        if (timerPool.length < MAX_POOL) {
+            timerPool.push(timer);
+        }
+    }

     public function LzKernelTimer () {
         super(0);
-        this._timerID = LzKernelTimer.idCounter++;
     }

     private var _timerID :uint;


Change default API URL to <http://streamio.com/api>.

--- src/goplayer/ConfigurationParser.as
+++ src/goplayer/ConfigurationParser.as
@@ -4,7 +4,7 @@
   {
     public static const DEFAULT_SKIN_URL : String = "goplayer-skin.swf"
     public static const DEFAULT_STREAMIO_API_URL : String
-      = "http://staging.streamio.com/api"
+      = "http://streamio.com/api"
     public static const DEFAULT_STREAMIO_TRACKER_ID : String = "global"

     public static const VALID_PARAMETERS : Array


fix coding style

fix coding style

--- src/aerys/minko/scene/controller/light/SpotLightController.as
+++ src/aerys/minko/scene/controller/light/SpotLightController.as
@@ -37,10 +37,10 @@
 		private function initialize() : void
 		{
 			_worldDirection = new Vector4();
-			_worldPosition	= new Vector4();
-			_projection		= new Matrix4x4();
-			_worldToScreen	= new Matrix4x4();
-			_worldToUV		= new Matrix4x4();
+			_worldPosition = new Vector4();
+			_projection = new Matrix4x4();
+			_worldToScreen = new Matrix4x4();
+			_worldToUV = new Matrix4x4();
 		}

 		override protected function lightAddedHandler(ctrl	: LightController,


Remove debug trace

Remove debug trace

--- as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
@@ -114,10 +114,7 @@
         {
             var isArray:Boolean = false;
             var result:Object = {typeName: null, isArray: false, isArrayCollection: false};
-
-            if (propName == "label")
-                trace("stop");
-
+
             if (className == "Object" || className == "mx.utils::ObjectProxy")
                 return result;


remove trace statement

remove trace statement

--- as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
@@ -235,8 +235,6 @@

         if (typeInfo == null)
         {
-            callCounter++;
-            trace("callCounter "+callCounter);
             typeInfo = new XObjTypeInfo();

             // go look it up (expensive)


The spawnDomain() function moved.

The spawnDomain() function moved.

--- http/test/GameTest.as
+++ http/test/GameTest.as
@@ -1,3 +1,8 @@
+package {
+    public class GameTest {
+    }
+}
+
 import avmplus.*;

 import flash.events.Event;
@@ -38,9 +43,9 @@
 {
     trace("Compiling bytecode into new Domain...");

-    var bridge = new EventDispatcher();
+    var bridge :EventDispatcher = new EventDispatcher();

-    var domain :Domain = Domain.spawnDomain("UserCode", bridge);
+    var domain :Domain = Thane.spawnDomain("UserCode", bridge);
     domain.loadBytes(bytes);

     trace("Successfully loaded! Testing...");


F Fix bug on DataBindings: IDataProviders were adding themselves 2 times to each binding

--- src/aerys/minko/type/data/DataBindings.as
+++ src/aerys/minko/type/data/DataBindings.as
@@ -34,9 +34,7 @@

 		public function add(dataProvider : IDataProvider) : DataBindings
 		{
-			var dataDescriptor 			: Object = dataProvider.dataDescriptor;
-
-			dataProvider.changed.add(dataProviderChangedHandler);
+			var dataDescriptor : Object = dataProvider.dataDescriptor;

 			for (var propertyName : String in dataDescriptor)
 			{
@@ -44,19 +42,9 @@
 				var property 	: IDataProvider = dataProvider[key] as IDataProvider;

 				if (property != null)
-				{
-					addProperty(
-						propertyName,
-						property,
-						null
-					);
-				}
-
-				addProperty(
-					propertyName,
-					dataProvider,
-					key
-				);
+					addProperty(propertyName, property, null);
+
+				addProperty(propertyName, dataProvider, key);
 			}

 			return this;
@@ -152,9 +140,7 @@
 				{
 					var dataProvider : IDataProvider = source as IDataProvider;

-					dataProvider.changed.remove(
-						propertyChangedHandler
-					);
+					dataProvider.changed.remove(propertyChangedHandler);

 					delete _bindings[source];
 				}
@@ -232,40 +218,6 @@
 			return signal;
 		}

-		private function dataProviderChangedHandler(source : IDataProvider, key : Object) : void
-		{
-			var bindingTable 	: Object = _bindings[source] as Object;
-			var propertyName 	: String = null;
-
-			if (key == 'dataDescriptor')
-			{
-				throw new Error('DataDescriptor must be inmutable. Please remove binding and add it again after the change.');
-			}
-			else if (key && source.dataDescriptor[key] != undefined)
-			{
-				// a single property has changed
-				propertyName = bindingTable[key] as String;
-
-				if (!propertyName)
-					addProperty(source.dataDescriptor[key], source, key);
-				else
-					setProperty(propertyName, key !== NO_KEY ? source[key] : source);
-			}
-			else
-			{
-				// "some" properties have changed (ie. DataProvider.invalidate() was called)
-				for (var key : Object in source.dataDescriptor)
-				{
-					propertyName = bindingTable[key];
-
-					if (!propertyName)
-						addProperty(source.dataDescriptor[key], source, key);
-					else
-						setProperty(propertyName, key !== NO_KEY ? source[key] : source);
-				}
-			}
-		}
-
 		private function propertyChangedHandler(source : IDataProvider, key : Object) : void
 		{
 			key ||= NO_KEY;


added clear to bitmapCanvas

added clear to bitmapCanvas

--- src/hype/framework/display/BitmapCanvas.as
+++ src/hype/framework/display/BitmapCanvas.as
@@ -138,6 +138,13 @@
 			}
 		}

+		/**
+		 * Clear the canvas back to base color and alpha
+		 */
+		public function clear():void {
+			_bitmap.bitmapData.fillRect(_rect, _fillColorAlpha);
+		}
+
 		private function capture(...rest):void {
 			_bitmap.bitmapData.fillRect(_rect, _fillColorAlpha);
 			_bitmap.bitmapData.draw(_target, _matrix);


Add datastructure to store layers

Add datastructure to store layers

--- src/aerys/minko/type/loader/AssetsLibrary.as
+++ src/aerys/minko/type/loader/AssetsLibrary.as
@@ -13,7 +13,9 @@
 		private var _numMaterials	: uint 						= 0;
 		private var _numTextures	: uint 						= 0;
 		private var _numSymbols		: uint 						= 0;
-
+		private var _numLayers		: uint 						= 0;
+
+		private var _layerList 		: Vector.<String>			= new Vector.<String>();
 		private var _geometryList	: Vector.<Geometry> 		= new Vector.<Geometry>();
 		private var _materialList	: Vector.<Material> 		= new Vector.<Material>();
 		private var _textureList	: Vector.<TextureResource> 	= new Vector.<TextureResource>();
@@ -36,6 +38,11 @@
 		{
 			initialize();
 			initializeSignals();
+		}
+
+		public function get numLayers() : uint
+		{
+			return _numLayers;
 		}

 		public function get numSymbols() : uint


Change 20080902-bargull-VIW by bargull@dell--p4--2-53 on 2008-09-02 22:12:56
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: LzSprite cleanup

New Features:

Bugs Fixed: LPP-5551 (part 2 - cleanup)

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

Documentation:

Release Notes:

Details:
Next part of cleanup.
LzSprite:
- removed out commented debug-code
- added "__setAAProperty": setAAActive, setAAName, setAADescription, setAASilent where almost identically, so merged into a single function
- removed aactive, aaname, aadescription, aasilent, aatabindex from LzSprite, they belong to LzView
- removed focusable, framesloadratio, loadratio, __LZisView, mask, clickable, all those properties belong to LzView
- removed getWidth and getHeight, both are functions from LzView
- removed all @event-docs, all events are documented in LzView
- removed references to "__LZrightmenuclip", no where defined
- removed "makeMasked", inlined relevant code into "setClip"
- removed "mc.but.__lzview" (see __gotFocus, __lostFocus), can be replace with _parent.myView
- inlined and removed "__LZFinishDestroyOnIdle"
- changed "queuedplayaction", so it won't use an extra array for every queued-action
- removed Flash ContextMenu bwcomp-mode, was already deprecated in LPS3.x
- removed warning if "setContextMenu", will never happen since we create an invisible background-clip

Tests:

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

--- WEB-INF/lps/lfc/kernel/swf/LzSprite.as
+++ WEB-INF/lps/lfc/kernel/swf/LzSprite.as
@@ -15,20 +15,14 @@
 var LzSprite = function(newowner, isroot, args) {
     if (newowner == null) return this;
     this.owner = newowner;
-    //Debug.write('---> New sprite', newowner, newowner.immediateparent, newowner.immediateparent.sprite);
-

     if (isroot) {
         this.isroot = true;
         var is = _root.spriteroot;
         if (! is) {
-            var is = _root.attachMovie('empty', 'spriteroot', 1000);
+            is = _root.attachMovie('empty', 'spriteroot', 1000);
         }
         this.__LZmovieClipRef = is;
-        //is._x=5;
-        //is._y=5;
-        //this.setOpacity(.3);
-        //this.mask = null;

         this.__LZsvdepth = 1;
     } else {
@@ -76,25 +70,27 @@
     _root._focusrect = accessible == true ? true : 0;
 }

+LzSprite.prototype.__setAAProperty = function (aaprop, val, btnval, mc) {
+    if (mc._accProps == null) mc._accProps = {};
+    mc._accProps[aaprop] = val;
+
+    if ((mc = this.__LZbuttonRef.but)){
+        if (mc._accProps == null) mc._accProps = {};
+        mc._accProps[aaprop] = btnval;
+    }
+    //LzBrowser.updateAccessibility();
+}
+
 /**
   * Activate/inactivate children for accessibility
   * @param Boolean s: If true, activate the current view and all of its children
   */
 LzSprite.prototype.setAAActive = function( s, mc ){
     if (mc == null || mc == 'aaactive') mc = this.getMCRef();
-    //Debug.write('setAAActive ', s + ' ' + mc);
-    if (mc._accProps == null) mc._accProps = {};
-    //if forceSimple is true, it is the same as the Make Child Object Accessible option being unchecked. If forceSimple is false, it is the same as the Make Child Object Accessible option being checked.
-    mc._accProps.forceSimple = s == false;
-
-    if (mc = this.__LZbuttonRef.but){
-        if (mc._accProps == null) mc._accProps = {};
-        mc._accProps.forceSimple = s;
-    }
-    //LzSprite.updateAccessibility();
-    this.aaactive = s;
-}
-
+    //if forceSimple is true, it is the same as the Make Child Object Accessible option being unchecked.
+    //If forceSimple is false, it is the same as the Make Child Object Accessible option being checked.
+    this.__setAAProperty('forceSimple', s == false, s, mc);
+}

 /**
   * Set accessibility name
@@ -102,15 +98,7 @@
   */
 LzSprite.prototype.setAAName = function( s, mc ){
     if (mc == null || mc == 'aaname') mc = this.getMCRef();
-    //Debug.write('setAAName ', s + ' ' + mc);
-    if (mc._accProps == null) mc._accProps = {};
-    mc._accProps.name = s;
-    if (mc = this.__LZbuttonRef.but){
-        if (mc._accProps == null) mc._accProps = {};
-        mc._accProps.name = s;
-    }
-    //LzSprite.updateAccessibility();
-    this.aaname = s;
+    this.__setAAProperty('name', s, s, mc);
 }

 /**
@@ -119,26 +107,7 @@
   */
 LzSprite.prototype.setAADescription = function( s, mc ){
     if (mc == null || mc == 'aadescription') mc = this.getMCRef();
-    //Debug.write('setAADescription ', s + ' ' + mc);
-    if (mc._accProps == null) mc._accProps = {};
-    mc._accProps.description = s;
-    if (mc = this.__LZbuttonRef.but){
-        if (mc._accProps == null) mc._accProps = {};
-        mc._accProps.description = s;
-    }
-    //LzSprite.updateAccessibility();
-    this.aadescription = s;
-}
-
-/**
-  * Set accessibility tab order
-  * @param number s: The tab order index for this view.  Must be a unique number.
-  */
-LzSprite.prototype.setAATabIndex = function( s, mc ){
-    if (mc == null || mc == 'aatabindex') mc = this.getMCRef();
-    //Debug.write('setAATabIndex ', mc);
-    mc.tabIndex = s;
-    this.aatabindex = s;
+    this.__setAAProperty('description', s, s, mc);
 }

 /**
@@ -148,16 +117,18 @@
   */
 LzSprite.prototype.setAASilent = function( s, mc ){
     if (mc == null || mc == 'aasilent') mc = this.getMCRef();
-    //Debug.write('setAASilent ', s + ' ' + mc);
-    if (mc._accProps == null) mc._accProps = {};
-    mc._accProps.silent = s;
-    if (mc = this.__LZbuttonRef.but){
-        if (mc._accProps == null) mc._accProps = {};
-        mc._accProps.silent = s;
-    }
-    //LzSprite.updateAccessibility();
-    this.aasilent = s;
-}
+    this.__setAAProperty('silent', s, s, mc);
+}
+
+/**
+  * Set accessibility tab order
+  * @param number s: The tab order index for this view.  Must be a unique number.
+  */
+LzSprite.prototype.setAATabIndex = function( s, mc ){
+    if (mc == null || mc == 'aatabindex') mc = this.getMCRef();
+    mc.tabIndex = s;
+}
+

 // FIRST_SUBVIEW_DEPTH: This is so that default objects (such as
 // buttons, and in swf6 masks) can be attached above the view's
@@ -170,12 +141,6 @@
 LzSprite.prototype.CLIPS_PER_SUBVIEW = 2;
 LzSprite.prototype.BACKGROUND_DEPTH_OFFSET = -1;
 LzSprite.prototype.FOREGROUND_DEPTH_OFFSET = 0;
-
-
-//@field Boolean focusable: If true, this view will participate in keyboard
-// focus and will receive focus events and keyboard events
-// when it has the focus. (see lz.Focus for more details)
-LzSprite.prototype.focusable = false;

 LzSprite.prototype.visible =   true;

@@ -194,6 +159,7 @@
 // takes it's dimensions from the resource and there is no scaling.
 LzSprite.prototype.width =   0;
 LzSprite.prototype.height =   0;
+// @devnote: "LzMouseEvents" is defined in SWFFile.java
 LzSprite.prototype.__LZclickregion =  "LzMouseEvents";

 // @devnote Sprite scale is stored as a fraction, but the runtime clip
@@ -213,14 +179,6 @@

 // Used by loaders to track load state
 LzSprite.prototype.loadperc =   0;
-//@field Number framesloadratio: For views whose resource is loaded at runtime,
-//the ratio of the loaded frames to the total frames. This is a number between
-//zero and 1.
-LzSprite.prototype.framesloadratio =   0;
-//@field Number loadratio: For views whose resource is loaded at runtime,
-//ratio of the loaded bytes to the total bytes. This is a number between
-//zero and 1.
-LzSprite.prototype.loadratio =   0;

 //@field Boolean hassetwidth: If true, then setWidth() has been called on this
 //view, and the view will not be sized to its contents.
@@ -228,9 +186,6 @@
 //@field Boolean hassetheight: If true, then setHeight() has been called on this
 //view, and the view will not be sized to its contents.
 LzSprite.prototype.hassetwidth = false;
-
-//need quick check for viewness
-LzSprite.prototype.__LZisView = true;

 // maximum number of frames to wait to load an mp3 audio
 LzSprite.prototype.__lzskipplaychecklimitmax = 20;
@@ -303,11 +258,9 @@
         //this is easier than figuring out what the depth and name should be
         //from this context, but it's not necessary.
         var mc = this.owner.immediateparent.sprite.attachResourceToChildView( resourceName, this );
-        this.setMovieClip( mc , resourceName );
-        // Copy previous right-click context menu if there is one,
-        // from background-color movieclip.
-        var oldmenu = this.__LZbgRef.menu;
-        mv.menu = oldmenu;
+        this.setMovieClip( mc, resourceName );
+        // Install right-click context menu if there is one
+        mc.menu = this.__contextmenu && this.__contextmenu.kernel.__LZcontextMenu();
     }

     this.updateResourceSize(true);
@@ -330,14 +283,11 @@
     var reclick = this.__LZbuttonRef._visible;
     this.__LZbuttonRef = null;

-    var oldmenu = this.__LZmovieClipRef.menu;
-    if (oldmenu == null) {
-        oldmenu = this.__LZbgRef.menu;
-    }
+    var oldmenu = this.__contextmenu && this.__contextmenu.kernel.__LZcontextMenu();
     var oldname = this.__LZmovieClipRef._name;
     var mc = this.owner.immediateparent.sprite.attachResourceToChildView( resourceName, this, oldname);

-    this.setMovieClip( mc , resourceName );
+    this.setMovieClip( mc, resourceName );
     mc.menu = oldmenu;

     if ( reclick ){
@@ -437,12 +387,6 @@

     var newmc = this.__LZmovieClipRef.attachMovie( resourceName, instName, depth);

-
-
-    //@event onaddsubresource: Sent when a child view adds a resource
-    // not found in view
-    // if (this.owner.onaddsubresource && this.owner.onaddsubresource.ready) this.owner.onaddsubresource.sendEvent( childsprite.owner );
-
     return newmc;
 }

@@ -465,21 +409,16 @@
     var depth = this.FIRST_SUBVIEW_DEPTH +
       (childsprite.__LZdepth * this.CLIPS_PER_SUBVIEW) +
       this.BACKGROUND_DEPTH_OFFSET;
-
-    var mc = this.__LZmovieClipRef.attachMovie( "swatch", "$b" + this.__LZsubUniqueNum, depth );
+
+    // @devnote _xscale, _yscale: See note at LzSprite#width for why this is correct
+    var initObject = { _xscale: childsprite.width, _yscale: childsprite.height,
+                        _x: childsprite.x, _y: childsprite.y,
+                        _alpha: childsprite.opacity * 100,
+                        _rotation: childsprite.rotation % 360,
+                        _visible: childsprite.visible && childsprite.owner.isinited };
+
+    var mc = this.__LZmovieClipRef.attachMovie( "swatch", "$b" + this.__LZsubUniqueNum, depth, initObject );
     childsprite.__LZbgRef = mc;
-
-    // @devnote See note at LzSprite#width for why this is correct
-    childsprite.__LZbgRef._xscale = childsprite.width;
-    childsprite.__LZbgRef._yscale = childsprite.height;
-
-    childsprite.__LZbgRef._x = childsprite.x;
-    childsprite.__LZbgRef._y = childsprite.y;
-
-    childsprite.__LZbgRef._alpha = childsprite.opacity * 100 ;
-    childsprite.__LZbgRef._rotation = childsprite.rotation % 360;
-
-    childsprite.__LZbgRef._visible = childsprite.visible && childsprite.owner.isinited;
 }

@@ -491,13 +430,9 @@
     //@field Number bgcolor: The color of background of this view. Null if there is
     //no bgcolor. A number from 0 - 0xFFFFFF.
     if (bgc != null) {
-        if ( $debug ){
-            var bgcn = Number( bgc );
-            if ( bgcn != bgcn ) {
-                if ( $debug ){
-                    Debug.write( "Invalid value for bgcolor: " +
-                                       bgca,this );
-                }
+        if ($debug) {
+            if (isNaN(Number( bgc ))) {
+                Debug.write( "Invalid value for bgcolor: " + bgca, this );
             }
         }
         this.bgcolor = Number(bgc);
@@ -558,12 +493,10 @@
   * @param Number v: The new value for <attribute>x</attribute>.
   */
 LzSprite.prototype.setX = function ( v ){
-    //Debug.warn('Sprite.setX');
     //@field Number x: The x position of the view
     this.x = v;
     this.__LZmovieClipRef._x = v;
     this.__LZbgRef._x = v;
-    //Debug.write('Sprite.setX', this, v, this.__LZmovieClipRef, this.__LZmovieClipRef._x);
 }

 /**
@@ -610,7 +543,7 @@
             // defaults
             this._xscale = 1;
             // clip scale is in percent
-            this.__LZmovieClipRef._xscale =  100;
+            this.__LZmovieClipRef._xscale = 100;
         }
         return;
     }
@@ -624,7 +557,6 @@
         this._xscale = xscale;
         // clip scale is in percent
         this.__LZmovieClipRef._xscale = xscale * 100;
-        if (this.__LZrightmenuclip) this.__LZrightmenuclip._xscale = xscale * 100;
     } else {
         // If the view does not stretch, we have to resize the mask
         // NOTE: [2008-01-24 ptw] This seems wrong.  If the view is
@@ -635,13 +567,12 @@
         if ( this.masked ){
             this.__LZmaskClip._xscale = v;
         }
-        if (this.__LZrightmenuclip) this.__LZrightmenuclip._xscale = v;
     }

     this.hassetwidth = true;

     if (this.setButtonSize)
-        this.setButtonSize( "width" , v );
+        this.setButtonSize( "width", v );

     if (typeof(this.__LZbgRef._xscale) != 'undefined')
         this.__LZbgRef._xscale = v;
@@ -664,7 +595,7 @@
             // defaults
             this._yscale = 1;
             // clip scale is in percent
-            this.__LZmovieClipRef._yscale =  100;
+            this.__LZmovieClipRef._yscale = 100;
         }
         return;
     }
@@ -678,7 +609,6 @@
         this._yscale = yscale;
         // clip scale is in percent
         this.__LZmovieClipRef._yscale = yscale * 100;
-        if (this.__LZrightmenuclip) this.__LZrightmenuclip._yscale = yscale * 100;
     } else {
         // If the view does not stretch, we have to resize the mask
         // NOTE: [2008-01-24 ptw] This seems wrong.  If the view is
@@ -689,12 +619,11 @@
         if ( this.masked ){
             this.__LZmaskClip._yscale = v;
         }
-        if (this.__LZrightmenuclip) this.__LZrightmenuclip._yscale = v;
     }
     this.hassetheight = true;

     if (this.setButtonSize)
-        this.setButtonSize( "height" , v );
+        this.setButtonSize( "height", v );

     if (typeof(this.__LZbgRef._yscale) != 'undefined')
         this.__LZbgRef._yscale = v;
@@ -766,20 +695,10 @@
   * This function sets or removes the clip/mask
   */
 LzSprite.prototype.setClip = function (c){
-    if (c) {
-        this.makeMasked();
-    } else {
+    if (! c) {
         this.removeMask();
-    }
-}
-
-/**
-  * This function applies the MakeMasked view transformer.
-  * @access private
-  */
-LzSprite.prototype.makeMasked = function ( ){
-    this.masked = true;
-    this.mask = this;
+    }
+    this.masked = c;
 }

 /**
@@ -792,16 +711,17 @@
     mask.removeMovieClip();
     delete this.__LZmaskClip;
     this.masked = false;
-    this.mask = null;
-}
-
-/**
+}
+
+/**
+  * @param Boolean s: used by drawview
   * @access private
   */
 LzSprite.prototype.applyMask = function (s) {
     if ( this.__LZmovieClipRef == null ){
-        Debug.warn("Cannot apply mask before resource has been attached in",
-                    this);
+        if ($debug) {
+            Debug.warn("Cannot apply mask before resource has been attached in", this);
+        }
         return;
     }
     if (s && this.cachebitmap) {
@@ -813,21 +733,15 @@
     if (s) {
         var mask = mc.createEmptyMovieClip("$mcM", this.MASK_DEPTH);
     } else {
-        var mask = mc.attachMovie( "swatch", "$mcM", this.MASK_DEPTH);
-    }
-    //mask.tabIndex = tabindexcounter++;
-    // The mask is attached as a child of the view clip, so we just
-    // align it with the clip and it will follow along if the clip is
-    // scaled, translated or rotated.
-    mask._x = 0;
-    mask._y = 0;
-    if (! s) {
-        mask._width = this.width;
-        mask._height = this.height;
-    }
+        // The mask is attached as a child of the view clip, so we just
+        // align it with the clip and it will follow along if the clip is
+        // scaled, translated or rotated.
+        var mask = mc.attachMovie( "swatch", "$mcM", this.MASK_DEPTH,
+                        {_x: 0, _y: 0, _width: this.width, _height: this.height});
+    }
+
     this.__LZmaskClip = mask;
     this.masked = true;
-    this.mask = this;
     mc.setMask(mask);
 }

@@ -835,6 +749,7 @@
   * @access private
   * */
 LzSprite.prototype.setClickRegion = function ( cr ){
+    //@devnote "LzMouseEvents" is defined in SWFFile.java
     if (cr == null) cr = "LzMouseEvents";
     this.__LZclickregion = cr;
 }
@@ -845,62 +760,27 @@
   * @param amclickable: Boolean indicating the view's clickability
   */
 LzSprite.prototype.setClickable = function ( amclickable ){
-    //@event onmousedown: Sent when the mouse button goes down over a view
-    //onmousedown is only sent by views which are clickable
-    //@event onmouseup:Sent when the mouse button comes up after going down over
-    //a clickable view This event is only sent by views which are clickable
-    //@event onmouseupoutside: Sent when the mouse button comes up outside a
-    //view This event is only sent by views which are clickable
-    //after it went down over the view. This event is only sent by views which
-    //are clickable
-    //@event onclick:Sent when the mouse button comes up over a view after going
-    //down over the same view. This event is only sent by views which are
-    //clickable
-    //@event onmouseover: Sent when the mouse button is up and the mouse rolls
-    //over the view  This event is only sent by views which are clickable
-    //@event onmouseout: Sent when the mouse button is up and the mouse rolls
-    //off the view. This event is only sent by views which are clickable
-    //@event onmousedragin: Sent when the mouse button went down over the view
-    //and the button is still down when mouse rolls back inside the view.
-    //This event is only sent by views which are clickable
-    //@event onmousedragout: Sent when the mouse button went down over the view
-    //and the button is still down when mouse rolls outside the view.
-    //This event is only sent by views which are clickable
-    //@event ondblclick: Sent when the mouse is doubleclicked over the view,
-    //but only if anyone is listening for the event. A view which is clicked
-    //twice in rapid succession, but has no delegates registered for its
-    //ondblclick event, will simply send two click events.
-    //The view's doubleclick time can be adjusted by setting its
-    //DOUBLE_CLICK_TIME attribute
-
-
     if ( this.__LZmovieClipRef == null ){
         this.makeContainerResource( );
     }

     if ( amclickable != false && !this.__LZbuttonRef){
-        var mc = this.__LZmovieClipRef.attachMovie( this.__LZclickregion, "$mcB", this.BUTTON_DEPTH );
-        mc._height = 0;
-        mc._width = 0;
+        var mc = this.__LZmovieClipRef.attachMovie( this.__LZclickregion, "$mcB",
+                    this.BUTTON_DEPTH, {_width: 0, _height: 0} );

         // TODO: turn on only in accessible mode...
-        // attach view ref to Button for callback
-        mc.but.__lzview = this.owner;
         mc.but.onSetFocus = Button.prototype.__gotFocus;
         mc.but.onKillFocus = Button.prototype.__lostFocus;
+        if (this.showhandcursor == false) mc.but.useHandCursor = false;

         this.__LZbuttonRef = mc;
-        //mc.tabIndex = tabindexcounter++;
-        if (this.showhandcursor == false) this.setShowHandCursor(this.showhandcursor);
         this.setButtonSize = this._setButtonSize;
         this.setButtonSize( "width" , this.width );
         this.setButtonSize( "height" , this.height );
-        this.__LZbuttonRef.myView = this.owner;
+        this.__LZbuttonRef.myView = this.owner;//required property, see SWFFile.java
     } else {
         this.__LZbuttonRef._visible = amclickable;
     }
-
-    this.clickable = amclickable;
 }

@@ -916,7 +796,7 @@
   * (100 / <parent scale>) factor.
   */
 LzSprite.prototype._setButtonSize = function ( axis , bsize ){
-    var sc ="_" + ( axis =="width" ? "x" : "y" ) + "scale" ;
+    var sc = "_" + ( axis == "width" ? "x" : "y" ) + "scale" ;
     this.__LZbuttonRef[ sc ] = ( 100 / this.__LZmovieClipRef[ sc ] ) * bsize;
 }

@@ -931,13 +811,8 @@
   * @param String headers: Headers to send with the request, if any.
   */
 LzSprite.prototype.setSource = function ( source, cache, headers, filetype){
-    //@event onerror: Sent when there is an error loading the view's resource.
-    //For proxied loads, the argument sent with the event is the error string
-    //sent by the server.
-    //@event ontimeout: Sent when the request to load media for the view times
-    //out
+    //@devnote: after this call, setSource, setResource, getMCRef and destroy have been over-ridden
     LzMakeLoadSprite.transform( this, source, cache, headers, filetype);
-    //after this call, setSource  and doReplaceResource have been over-ridden
 }

@@ -1001,23 +876,15 @@
         delete this._muDel;
     }

-    this.__LZFinishDestroyOnIdle();
-}
-
-/**
-  * @access private
-  */
-LzSprite.prototype.__LZFinishDestroyOnIdle = function (){
     if ( this.__LZmovieClipRef != null ){
-        //Debug.write( "remove movieclip" );
         removeMovieClip( this.__LZmovieClipRef );
         delete this.__LZmovieClipRef;
     }

-  if ( this.__LZbgRef != null ){
-    removeMovieClip( this.__LZbgRef );
-    delete this.__LZbgRef;
-  }
+    if ( this.__LZbgRef != null ){
+        removeMovieClip( this.__LZbgRef );
+        delete this.__LZbgRef;
+    }
 }

 /**
@@ -1115,31 +982,12 @@

 /**
-  * Returns the width of the view.
-  * @keywords protected
-  * @deprecated
-  */
-LzSprite.prototype.getWidth = function (){
-    return this.width;
-}
-
-/**
-  * Returns the height of the view.
-  * @keywords protected
-  * @deprecated
-  */
-LzSprite.prototype.getHeight = function (){
-    return this.height;
-}
-
-
-/**
   * This method makes this view the frontmost subview of this view's parent.
   * */
 LzSprite.prototype.bringToFront = function ( ){
     //Debug.write('bringToFront', this);
     //this is really a function of the parent view
-    this.owner.immediateparent.sprite.changeOrder ( this , 1);
+    this.owner.immediateparent.sprite.changeOrder( this , 1);
 }

 /**
@@ -1148,7 +996,7 @@
 LzSprite.prototype.sendToBack = function ( ){
     //Debug.write('sendToBack', this);
     //this is really a function of the parent view
-    this.owner.immediateparent.sprite.changeOrder ( this , -1);
+    this.owner.immediateparent.sprite.changeOrder( this , -1);
 }

 /**
@@ -1233,7 +1081,7 @@

     var reback = cSprite.__LZisBackgrounded;
     if (reback) {
-        var menu = cSprite.__LZbgRef.menu;
+        var menu = cSprite.__contextmenu && cSprite.__contextmenu.kernel.__LZcontextMenu();
         var al = cSprite.__LZbgRef._alpha;
     }
     cSprite.removeBG();
@@ -1261,7 +1109,7 @@
         next = dir;

         if ( nv.__LZisBackgrounded ){
-            var menu2 = nv.__LZbgRef.menu;
+            var menu2 = nv.__contextmenu && nv.__contextmenu.kernel.__LZcontextMenu();
             var al2 = nv.__LZbgRef._alpha;
             nv.removeBG();
             nv.applyBG();
@@ -1329,7 +1177,7 @@
   * it
   */
 LzSprite.prototype.setShowHandCursor = function ( s ){
-    if (!this.__LZbuttonRef) {
+    if (! this.__LZbuttonRef) {
         this.setClickable( true );
     }

@@ -1356,7 +1204,7 @@
                                                 this.owner , 'onmouseout');
         }

-        if (!this.__LZbuttonRef) {
+        if (! this.__LZbuttonRef) {
             this.setClickable( true );
         }
     } else {
@@ -1429,18 +1277,13 @@
     }

     var tf = this.getMCRef()._totalframes;
-    if (  this.totalframes != tf ){
-        if (tf != undefined) {
-            this.totalframes = tf;
-            this.owner.resourceevent('totalframes', this.totalframes);
-        }
+    if ( tf != undefined && this.totalframes != tf ){
+        this.totalframes = tf;
+        this.owner.resourceevent('totalframes', this.totalframes);
     }

     if ( this.playing && this.frame == this.totalframes &&
          this.totalframes > 1 ){
-        //@event onlastframe: Sent when the view sets its frame (resource
-        //number) to the last frame. This can be used to find out when a
-        //streaming media clip is done playing.
         this.owner.resourceevent('lastframe', null, true);
         this.checkPlayStatus();
     }
@@ -1462,7 +1305,8 @@
     this.__lzskipplaycheck = 0;
     this.__lzskipplaychecklimit = 4;
     // skip more frames for mp3 audio resources to allow tracking to work correctly
-     if (('isaudio' in this.getMCRef()) && (this.getMCRef().isaudio == true)) this.__lzskipplaychecklimit = LzSprite.prototype.__lzskipplaychecklimitmax;
+    if (('isaudio' in this.getMCRef()) && (this.getMCRef().isaudio == true))
+        this.__lzskipplaychecklimit = LzSprite.prototype.__lzskipplaychecklimitmax;

     //Debug.warn('checkPlayStatus %w %w %w %w', this.__lzcheckframe, this.frame, this.totalframes, this.__lzskipplaychecklimit);
     this.checkPlayStatusDel.register( lz.Idle, "onidle" );
@@ -1503,7 +1347,8 @@
   *
   * @param Integer f: If defined, begin playing at the given frame. Otherwise,
   * begin playing at the current frame.
-  * @param Boolean rel: If true, f is relative to the current frame.  Otherwise f is relative to the beginning of the resource.
+  * @param Boolean rel: If true, f is relative to the current frame.
+  * Otherwise f is relative to the beginning of the resource.
   */
 LzSprite.prototype.play = function (f, rel){
     var m = this.getMCRef();
@@ -1520,7 +1365,6 @@
     }

     this.trackPlay();
-    //@event onplay: Sent when a view begins playing its resource
     this.owner.resourceevent('play', null, true);
 }

@@ -1528,7 +1372,8 @@
   * Stop playing the attached resource
   * @param Integer f: If defined, stop playing at the given frame. Otherwise,
   * stop at the current frame.
-  * @param Boolean rel: If true, f is relative to the current frame.  Otherwise it is relative to the start position of the resource.
+  * @param Boolean rel: If true, f is relative to the current frame.
+  * Otherwise it is relative to the start position of the resource.
   */
 LzSprite.prototype.stop = function (f, rel){
     var m = this.getMCRef();
@@ -1545,36 +1390,36 @@
         m.stop();
     }

-    //@event onstop: Sent when a view's resource that is capable of playing is
-    //stopped. This is only called if stop is called directly; when a resource
-    //hits its last frame, the LzView event onlastframe is called.
     if ( this.playing ) this.owner.resourceevent('stop', null, true);
     this.stopTrackPlay();
 }

 /**
-  * @access private
-  */
-LzSprite.prototype.queuePlayAction = function ( a , arg1 , arg2 ){
-    //Debug.write('queuePlayAction', a, arg1, arg2);
+  * @param String a: method to call, one of: "play", "stop", "checkPlayStatus"
+  * @param * arg1: optional argument
+  * @param * arg2: optional argument
+  * @access private
+  */
+LzSprite.prototype.queuePlayAction = function ( a, arg1, arg2 ){
     if ( this.queuedplayaction == null ){
         this.queuedplayaction = [];
         if ( this.doQueuedDel == null ){
-            this.doQueuedDel = new LzDelegate( this , "doQueuedPlayAction" );
+            this.doQueuedDel = new LzDelegate( this, "doQueuedPlayAction" );
         }
         this.doQueuedDel.register( this.owner, "onload" );
     }
-    this.queuedplayaction.push([ a , arg1 , arg2 ]);
+    this.queuedplayaction.push( a, arg1, arg2 );
 }

 /**
   * @access private
   */
 LzSprite.prototype.doQueuedPlayAction = function (ignore){
-    for (var i=0; i < this.queuedplayaction.length; i++) {
-        var qa = this.queuedplayaction[i];
-        //Debug.write('doQueuedPlayAction', qa);
-        this[ qa[0] ] ( qa[1] , qa[2] );
+    this.doQueuedDel.unregisterAll();
+
+    var qa = this.queuedplayaction;
+    for (var i = 0; i < qa.length; i += 3) {
+        this[ qa[i] ] ( qa[i + 1], qa[i + 2] );
     }
     this.queuedplayaction = null;
 }
@@ -1653,51 +1498,35 @@
   * @param LzContextMenu cmenu: LzContextMenu to install on this view
   */
 LzSprite.prototype.setContextMenu = function ( cmenu ){
-    // For back compatibility, we accept either LzContextMenu or (Flash primitive) ContextMenu
-    if (! (cmenu instanceof ContextMenu)) {
-        this.__contextmenu = cmenu;
-        cmenu = cmenu.kernel.__LZcontextMenu();
-    } else {
-      if ($debug) {
-        Debug.info("Passing a Flash ContextMenu to LzView.setContextMenu is deprecated, use LzContextMenu instead");
-      }
-    }
-
-    // [todo hqm 01-24-07] SWF-specific
-    if (this.owner == canvas || this instanceof LzTextSprite) {
-        // check canvas for LPP-4214, instanceof LzTextSprite for LPP-5533
-        var mc = this.getMCRef();
-        if (this.owner == canvas) {
-            // must use _root if canvas
-            var mc = _root;
-        }
-        if (mc != null) {
-            mc.menu = cmenu;
-        }
-    } else {
+    this.__contextmenu = cmenu;
+    cmenu = cmenu.kernel.__LZcontextMenu();
+
+    if (! (this.owner == canvas || this instanceof LzTextSprite)) {
+        // normal views install the context-menu on their background-clip
         var mb = this.__LZbgRef;
         if (mb == null) {
+            // if not present, create an invisible clip
             this.setBGColor(0xffffff);
             var mb = this.__LZbgRef;
             mb._alpha = 0;
         }
         this._bgcolorhidden = true;
         mb.menu = cmenu;
-
-        // Install menu on foreground resource clip if there is one
-        var mc = this.getMCRef();
-        if (mc != null) {
-            mc.menu = cmenu;
-        }
-    }
-
-    if ($debug) {
-        if (mb == null && mc == null) {
-        Debug.warn("LzView.setContextMenu: cannot set menu on view %w, it has no foreground or background movieclip", this.owner);
-        }
-    }
-}
-
+    }
+
+    // Install menu on foreground resource clip if there is one,
+    // must use _root if canvas
+    var mc = this.owner == canvas ? _root : this.getMCRef();
+    if (mc != null) {
+        mc.menu = cmenu;
+    }
+}
+
+/**
+  * LzSprite.setDefaultContextMenu
+  * Install the default menu for the right-mouse-button
+  * @param LzContextMenu cmenu: LzContextMenu to install
+  */
 LzSprite.prototype.setDefaultContextMenu = function ( cmenu ){
     MovieClip.prototype.menu = cmenu.kernel.__LZcontextMenu();
 }
@@ -1732,12 +1561,10 @@
   * @access private
   */
 Button.prototype.__gotFocus = function ( oldfocus ){
-  // SWF-specific
     if (_root._focusrect != true) return;
-    //Debug.write('__gotFocus', oldfocus);
-    if (!(lz.Focus.getFocus() == this.__lzview)) {
+    if (!(lz.Focus.getFocus() == this._parent.myView)) {
         var tabdown = lz.Keys.isKeyDown('tab');
-        lz.Focus.setFocus(this.__lzview, false);
+        lz.Focus.setFocus(this._parent.myView, false);
     }
 }

@@ -1745,9 +1572,7 @@
   * @access private
   */
 Button.prototype.__lostFocus = function ( ){
-  // SWF-specific
     if (_root._focusrect != true) return;
-    //Debug.write('__lostFocus');
-    if (this.__lzview.hasFocus) lz.Focus.clearFocus();
-}
-}
+    if (this._parent.myView.hasFocus) lz.Focus.clearFocus();
+}
+}


--- fp9/src/as3isolib/display/scene/IsoScene.as
+++ fp9/src/as3isolib/display/scene/IsoScene.as
@@ -316,13 +316,13 @@
 						sceneLayoutRenderer.renderScene(this);
 				}

-				//apply styling
-				mainContainer.graphics.clear(); //should we do this here?
-
+				//fix for bug #20 - http://code.google.com/p/as3isolib/issues/detail?id=20
 				var sceneRenderer:ISceneRenderer;
 				var factory:IFactory
-				if (stylingEnabled)
-				{
+				if (stylingEnabled && styleRendererFactories.length > 0)
+				{
+					mainContainer.graphics.clear();
+
 					for each (factory in styleRendererFactories)
 					{
 						sceneRenderer = factory.newInstance();


Bug 544533: Adobe ASDoc edits are needed for some flash.sampler API content (p=treilly,r=mmoreart)

--- extensions/Sampler.as
+++ extensions/Sampler.as
@@ -441,8 +441,8 @@
     public native function isGetterSetter(obj:Object, qname:QName):Boolean;

    /**
-     * Expose the lexical scope of a Function so that activation objects and all
-     * captured scope objects can be seen by the profiler as being retained by the Function instance.
+     * Exposes the lexical scope of a Function so that captured scope objects (including activation
+     * objects and with scopes) are seen by the profiler as being retained by the Function instance.
      * @param obj A function
      * @return An array containings all the lexical scope elements
      */


Remove commented out code.

Remove commented out code.

--- asn_visualization/asn_visualization.as
+++ asn_visualization/asn_visualization.as
@@ -90,7 +90,6 @@
         private var _edges_toogle_container:Sprite
         private var _layout_format_toggle_container:Sprite;
         private var _node_click_behavior_toggle:TextSprite;
-        //private var _path_type_toogle:TextSprite;

         private var _below_vis:TextSprite;

@@ -123,13 +122,11 @@
                 // highlight node border on mouse over
                 function(e:SelectionEvent):void
                 {
-                    //node.lineWidth = 2;
                     e.node.lineColor=0x88ff00FF;
                 },
                 // remove highlight on mouse out
                 function(e:SelectionEvent):void
                 {
-                    //node.lineWidth = 0;
                     e.node.lineColor=_default_node_line_color;
                 }));

@@ -188,7 +185,6 @@
             addChild(vis);
             vis.update();
             layout();
-            // updateLayoutFormatText();
             vis.update();
         }

@@ -394,8 +390,6 @@
                     }
                 }, NodeSprite.OUT_LINKS);

-            //source_node._inEdges;
-
             return ret;

             source_node.getOutEdge(1);
@@ -523,8 +517,6 @@
             return ret;
         }

-        //private var _rest_of_the_world_node:NodeSprite = null;
-
         private function get_json_url():String
         {
             var json_url:String=root.loaderInfo.parameters.json_url;
@@ -576,7 +568,6 @@
         {
             for each (var _edge:EdgeSprite in vis.data.edges)
             {
-                //_edge.lineColor = 0X00FFFFFF;
                 _edge.visible=false;

             }
@@ -592,8 +583,6 @@
                     e.alpha=0.5;
                     e.lineColor=color;
                     e.lineColor&=alpha;
-                //e.source.props.label.color = 0x00cc00;
-                //  vis.marks.setChildIndex(e, vis.marks.numChildren - 1);
                 }, edges_visted);

             node.visitNodes(function(n:NodeSprite):void
@@ -692,7 +681,6 @@

             if (_node_click_behavior_toggle)
             {
-                //_node_click_behavior_toggle.y=_edges_toogle.y + _edges_toogle.height + 10;
                 _node_click_behavior_toggle.y=_detail.y + _detail.height + 10;
                 _node_click_behavior_toggle.x=_detail.x;
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20482
Author:   dloverin@adobe.com
Date:     2011-02-28T17:16:14.975868Z

Log Message:
-----------
Add properties to control allowing domains for new RSLs.

Add two Boolean properties to the IFlexModuleFactory interface.
•        Add the allowDomainsInNewRSLs property to control applying the domains gathered from allowDomain() calls to new RSLs.

•        Add the allowInsecureDomainsInNewRSLs property to control applying the domains gathered from allowInsecureDomain() calls to new RSLs.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex
Tests run: cyclone
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>

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

--- frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
+++ frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
@@ -229,6 +229,66 @@
 	//--------------------------------------------------------------------------

     //----------------------------------
+    //  allowDomainsInNewRSLs
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _allowDomainsInNewRSLs:Boolean = true;
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Flex 4.5
+     */
+    public function get allowDomainsInNewRSLs():Boolean
+    {
+        return _allowDomainsInNewRSLs;
+    }
+
+    /**
+     *  @private
+     */
+    public function set allowDomainsInNewRSLs(value:Boolean):void
+    {
+        _allowDomainsInNewRSLs = value;
+    }
+
+    //----------------------------------
+    //  allowInsecureDomainsInNewRSLs
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _allowInsecureDomainsInNewRSLs:Boolean = true;
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Flex 4.5
+     */
+    public function get allowInsecureDomainsInNewRSLs():Boolean
+    {
+        return _allowInsecureDomainsInNewRSLs;
+    }
+
+    /**
+     *  @private
+     */
+    public function set allowInsecureDomainsInNewRSLs(value:Boolean):void
+    {
+        _allowInsecureDomainsInNewRSLs = value;
+    }
+
+    //----------------------------------
     //  preloadedRSLs
     //----------------------------------

@@ -241,6 +301,12 @@
         // Overridden by compiler generate code.
         return null;
     }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods: IFlexModuleFactory
+    //
+    //--------------------------------------------------------------------------

     /**
      *  @inheritDoc
@@ -261,12 +327,6 @@
         }

     }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Methods: IFlexModuleFactory
-    //
-    //--------------------------------------------------------------------------

     /**
    	 *  @private