Transferred from the Adobe Open Source Subversion Repository

Revision: 8974
Author:   jszeto@adobe.com
Date:     2009-07-31T23:17:10.494602Z

Log Message:
-----------
http://bugs.adobe.com/jira/browse/SDK-22389 - Unoptmized mxmlc does not seem to draw the implicit lines when moveTo is followed by multiple pairs of coordinates.

If the previous command was a moveTo, then the following implied commands are changed into lineTo commands.

QE notes: Add test case
Doc notes: Make sure docs describe this case
Bugs: SDK-22389
Reviewer: Evtim
Tests run: spark primitives
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as

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

--- frameworks/projects/spark/src/spark/primitives/Path.as
+++ frameworks/projects/spark/src/spark/primitives/Path.as
@@ -235,7 +235,7 @@
         var newSegments:Array = [];

         var identifier:String;
-        var prevIdentifier:String;
+        var prevIdentifier:String = "";
         var prevX:Number = 0;
         var prevY:Number = 0;
         var lastMoveX:Number = 0;
@@ -264,6 +264,15 @@
                 identifier = args[i];
                 i++;
             }
+            else if (prevIdentifier == "m" || prevIdentifier == "M")
+            {
+                // If a moveto is followed by multiple pairs of coordinates,
+                // the subsequent pairs are treated as implicit lineto commands.
+                identifier = prevIdentifier == "m" ? "l" : "L";
+            }
+
+            // Convert to lowercase to make the following comparison logic simpler
+            prevIdentifier = prevIdentifier.toLowerCase();

             var useRelative:Boolean = (identifier.toLowerCase() == identifier);

@@ -366,7 +375,7 @@

             prevX = x;
             prevY = y;
-            prevIdentifier = identifier.toLowerCase();
+            prevIdentifier = identifier;
         }

         segments = newSegments;


git-svn-id: http://svn.rails2u.com/as3rails2u/trunk@23 96db6a20-122f-0410-8d9f-89437bbe4005

--- src/com/asual/SWFAddress.as
+++ src/com/asual/SWFAddress.as
@@ -1,137 +0,0 @@
-/**
- * SWFAddress v1.1: Deep linking for Flash - http://www.asual.com/swfaddress/
- *
- * SWFAddress is (c) 2006 Rostislav Hristov and is released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- *
- */
-
-package com.asual{
-
-    import flash.external.ExternalInterface;
-    import flash.utils.clearInterval;
-    import flash.utils.setInterval;
-
-    public class SWFAddress {
-
-        private static var _value:String = '';
-        private static var _availability:Boolean = ExternalInterface.available;
-
-        public static var onChange:Function;
-
-        private static function _check():void {
-            if (SWFAddress.onChange != null) {
-                clearInterval(SWFAddress._interval);
-                if (_availability) {
-                    ExternalInterface.addCallback('getSWFAddressValue',
-                        function():String {return _value});
-                    ExternalInterface.addCallback('setSWFAddressValue',
-                        SWFAddress.setValue);
-                }
-                SWFAddress.setValue(SWFAddress.getValue());
-            }
-        }
-        private static var _interval:Number = setInterval(SWFAddress._check, 10);
-
-        public static function getTitle():String {
-            var title:String = (_availability) ?
-                ExternalInterface.call('SWFAddress.getTitle') as String : '';
-            if (title == 'undefined' || title == null) title = '';
-            return title;
-        }
-
-        public static function setTitle(title:String):void {
-            if (_availability) ExternalInterface.call('SWFAddress.setTitle', title);
-        }
-
-        public static function getStatus():String {
-            var status:String = (_availability) ?
-                ExternalInterface.call('SWFAddress.getStatus') as String : '';
-            if (status == 'undefined' || status == null) status = '';
-            return status;
-        }
-
-        public static function setStatus(status:String):void {
-            if (_availability) ExternalInterface.call('SWFAddress.setStatus', status);
-        }
-
-        public static function resetStatus():void {
-            if (_availability) ExternalInterface.call('SWFAddress.resetStatus');
-        }
-
-        public static function getPath():String {
-            var value:String = SWFAddress.getValue();
-            if (value.indexOf('?') != 1) {
-                return value.split('?')[0];
-            } else {
-                return value;
-            }
-        }
-
-        public static function getQueryString():String {
-            var value:String = SWFAddress.getValue();
-            var index:Number = value.indexOf('?');
-            if (index != -1 && index < value.length) {
-                return value.substr(index + 1);
-            }
-            return '';
-        }
-
-        public static function getParameter(param:String):String {
-            var value:String = SWFAddress.getValue();
-            var index:Number = value.indexOf('?');
-            if (index != -1) {
-                value = value.substr(index + 1);
-                var params:Array = value.split('&');
-                var p:Array;
-                var i:Number = params.length;
-                while(i--) {
-                    p = params[i].split('=');
-                    if (p[0] == param) {
-                        return p[1];
-                    }
-                }
-            }
-            return '';
-        }
-
-        public static function getParameterNames():Array {
-            var value:String = SWFAddress.getValue();
-            var index:Number = value.indexOf('?');
-            var names:Array = new Array();
-            if (index != -1) {
-                value = value.substr(index + 1);
-                if (value != '' && value.indexOf('=') != -1) {
-                    var params:Array = value.split('&');
-                    var i:Number = 0;
-                    while(i < params.length) {
-                        names.push(params[i].split('=')[0]);
-                        i++;
-                    }
-                }
-            }
-            return names;
-        }
-
-        public static function getValue():String {
-            var addr:String, id:String = null;
-            if (_availability) {
-                addr = ExternalInterface.call('SWFAddress.getValue') as String;
-                id = ExternalInterface.call('SWFAddress.getId') as String;
-            }
-            if (id == null || !_availability) {
-                addr = SWFAddress._value;
-            } else {
-                if (addr == 'undefined' || addr == null) addr = '';
-            }
-            return addr;
-        }
-
-        public static function setValue(addr:String):void {
-            if (addr == 'undefined' || addr == null) addr = '';
-            SWFAddress._value = addr;
-            if (_availability) ExternalInterface.call('SWFAddress.setValue', addr);
-            if (SWFAddress.onChange != null) SWFAddress.onChange();
-        }
-    }
-}


Set very low priority to viewport UI to fix picking editable UI elements.

--- Bin/Data/Scripts/Editor/EditorView.as
+++ Bin/Data/Scripts/Editor/EditorView.as
@@ -212,6 +212,7 @@
     viewportUI.clipChildren = true;
     viewportUI.clipBorder = viewportUIClipBorder;
     viewportUI.RemoveAllChildren();
+    viewportUI.priority = -2000;

     Array<BorderImage@> borders;

@@ -411,7 +412,6 @@

 void HandleViewportBorderDragMove(StringHash eventType, VariantMap& eventData)
 {
-
     UIElement@ dragBorder = eventData["Element"].GetUIElement();
     if (dragBorder is null)
         return;
@@ -419,7 +419,7 @@
     uint hPos;
     uint vPos;

-    // moves border to new cursor position, restricts motion to 1 axis, and keeps borders within view area
+    // Moves border to new cursor position, restricts motion to 1 axis, and keeps borders within view area
     if (resizingBorder & VIEWPORT_BORDER_V_ANY > 0)
     {
         hPos = Clamp(ui.cursorPosition.x, 150, viewportArea.width-150);
@@ -433,7 +433,7 @@
         dragBorder.position = IntVector2(hPos, vPos);
     }

-    // move all dependent borders
+    // Move all dependent borders
     Array<UIElement@> borders = viewportUI.GetChildren();
     for (uint i = 0; i < borders.length; ++i)
     {
@@ -472,7 +472,6 @@
 void HandleViewportBorderDragEnd(StringHash eventType, VariantMap& eventData)
 {
     // Sets the new viewports by checking all the dependencies
-
     Array<UIElement@> children = viewportUI.GetChildren();
     Array<BorderImage@> borders;


Explicitly support only arrays of strings.

--- lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
+++ lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
@@ -251,7 +251,6 @@
 		}

 		private function writeValue(output:IDataOutput, value:*):Boolean {
-			var tempFile:Boolean = false;
 			if (value === null || value === undefined) {
 				// no data, so length 0
 				output.writeUTFBytes(0 + "\n");
@@ -260,20 +259,22 @@
 				// length marker here
 				output.writeBytes(value);
 				output.writeUTFBytes("\n");
-				tempFile = true;
+				return true;
 			} else if(value is String) {
 				output.writeUTFBytes(String(value.length + 1) + "\n" + value + "\n");
 			} else if(value is Array) {
 				output.writeUTFBytes(value.length + "\n");
 				for (var el:int = 0; el < value.length; ++el) {
-					if(writeValue(output, value[el])) tempFile = true;
+					if(!(value[el] is String))
+						throw new ArgumentError("Only arrays of strings are supported");
+					writeValue(output, value[el]);
 				}
 			} else if(value is int || value is uint || value is Number || value is Boolean) {
 				output.writeUTFBytes(String(value) + "\n");
 			} else {
 				throw new ArgumentError("Cannot write value " + value);
 			}
-			return tempFile;
+			return false;
 		}

 		private function waitForData(output:IDataInput, length:uint = 1):uint {


Transferred from the Adobe Open Source Subversion Repository

Revision: 14095
Author:   cframpto@adobe.com
Date:     2010-02-10T17:33:30.511669Z

Log Message:
-----------
Merge 14076 from 4.x branch to trunk.

Revision: 14076
Author:   cframpto@adobe.com
Date:     2010-02-09 15:23:15 -0800 (Tue, 09 Feb 2010)
Log Message:
***********
Add UIComponent.mapKeycodeForLayoutDirection().  This should be called by any keyDownHandlers() which handles Keyboard.LEFT and Keyboard.RIGHT, and optionally for Keyboard.UP and Keyboard.DOWN, if they behave like Keyboard.LEFT and Keyboard.RIGHT.  If the layoutDirection="rtl", it maps LEFT to RIGHT, RIGHT to LEFT, UP to RIGHT and DOWN to LEFT.  This allows the keyDownHandler() to perform the correct action without adding lots of special case code to the key handling code.

QE notes: For layoutDirection="rtl" need to test LEFT, RIGHT, UP and DOWN keys.
Doc notes: None
Bugs: SDK-25330
Reviewed By: Hans
Tests run: checkintests
Is noteworthy for integration: No

Ticket Links:
***********
    http://bugs.adobe.com/jira/browse/SDK-25330

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk/frameworks</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.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/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -5668,7 +5668,11 @@
             direction = ScrollEventDirection.HORIZONTAL;
             oldPos = horizontalScrollPosition;

-            switch (event.keyCode)
+            // If rtl layout, need to swap LEFT for RIGHT so correct action
+            // is done.
+            var keyCode:int = mapKeycodeForLayoutDirection(event);
+
+            switch (keyCode)
             {
                 case Keyboard.LEFT:
                 {


FLEX-27509
CAUSE: In an AdvancedDataGrid with non-text item renderers AdvancedDataGrid.expandItem() applies masks onto those item renderers when it needs to close a node. At the same time, AdvancedListBase has its own custom mechanism for using masks to scroll vertically in a more efficient way. In order to detect whether it's used this mechanism, and reset the changes (detection happens in AdvancedListBase.removeClipMask(), while the mechanism is applied in addClipMask()), it simply asks whether the non-text item renderer has a mask applied. However, this mask could have been applied by the expandItem() mechanism mentioned above, which means that addClipMask() will never have been called. As a result, itemMaskFreeList is still null, which leads to the fatal.

SOLUTION: Ideally there should be a flag that specifies whether AdvancedListBase.addClipMask() has applied the masking mechanism. But for now we can simply check that itemMaskFreeList isn't null before we use it.

--- frameworks/projects/advancedgrids/src/mx/controls/listClasses/AdvancedListBase.as
+++ frameworks/projects/advancedgrids/src/mx/controls/listClasses/AdvancedListBase.as
@@ -5231,7 +5231,10 @@
             }
             else if (item && item.mask)
             {
-                itemMaskFreeList.push(item.mask);
+                if(itemMaskFreeList)
+                {
+                    itemMaskFreeList.push(item.mask);
+                }
                 item.mask = null;
             }
         }


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

--- frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-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: 21974
Author:   jszeto@adobe.com
Date:     2011-08-13T04:39:10.916633Z

Log Message:
-----------
SpinnerList Bug Fixes

SDK-31149 - SpinnerListSkin should split updateDisplayList into layoutContents and drawBackground

SDK-31148 - SpinnerListContainer layout should have verticalAlign="center" by default

SDK-31075 - Date spinner in DATE_TIME mode is sluggish

Optimize VerticalSpinnerLayout to move the scrollRect and only update when a new item is needed

SDK-31053 - SpinnerList does not dispatch change event when user taps on item to have it snap into selection

Added dispatchChangeEvent parameter to animateToSelectedIndex and set it to true on item click

SDK-31001 - NumericDataProvider only supports sequences of increasing values

StepSize now supports negative values. If stepSize is negative, then the maximum is the first value

SDK-30892 - SpinnerListContainer doesn't respect the backgroundColor/backgroundAlpha styles

Exclude these two styles

QE notes: none
Doc notes: none
Bugs:
Reviewer: Tom Kraikit, Evtim, Kyu
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/bundles/en_US/collections.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/layouts/VerticalSpinnerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as
@@ -18,6 +18,10 @@
  *  @playerversion AIR 3
  *  @productversion Flex 4.5.2
  */
+
+[Exclude(name="backgroundAlpha", kind="style")]
+[Exclude(name="backgroundColor", kind="style")]
+
 public class SpinnerListContainer extends SkinnableContainer
 {
 	/**


InterpUtil.lerpRange() now has the better name map()

--- raw/src/org/yellcorp/lib/core/InterpUtil.as
+++ raw/src/org/yellcorp/lib/core/InterpUtil.as
@@ -36,31 +36,27 @@
     }

     /**
-     * Given a number on input range, returns that number scaled to the
-     * same relative quantity on an output range.  Numbers are not clamped
-     * to ranges.
+     * Maps a number from one interval to another.
      *
-     * @example The following code takes 100 on an input range from 0 to
-     * 200, and outputs the equivalent value on a scale from -1 to 1.  The
+     * @example The following code takes 100 on the interval [0, 200], and
+     * outputs the equivalent value on the interval [-1, 1].  The
      * result is 0 because 100 is halfway between 0 and 200, and 0 is
      * halfway between -1 and 1.
      * <listing version="3.0">
-     * InterpUtil.lerpRange(100, 0, 200, -1, 1);
+     * InterpUtil.map(100, 0, 200, -1, 1);
      * // returned value is 0
      * </listing>
      *
-     * @param    inVal    The input value to be scaled
-     * @param    inMin    The input lower range
-     * @param    inMax    The input higher range
-     * @param    outMin   The output lower range
-     * @param    outMax   The output higher range
-     * @return            The input value scaled to the output range.
+     * @param    value The value on the input interval
+     * @param    a0    The start of the input interval
+     * @param    a1    The end of the input interval
+     * @param    b0    The start of the output interval
+     * @param    b1    The end of the output interval
+     * @return         The input value mapped to the output interval.
      */
-    public static function lerpRange(inVal:Number, inMin:Number, inMax:Number, outMin:Number, outMax:Number):Number
+    public static function map(value:Number, a0:Number, a1:Number, b0:Number, b1:Number):Number
     {
-        var outVal:Number;
-        outVal = outMin + (outMax - outMin) * (inVal - inMin) / (inMax - inMin);
-        return outVal;
+        return b0 + (b1 - b0) * (value - a0) / (a1 - a0);
     }

     /**


fixed duplicated code in ScrollControl.as

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

--- braineditor/ScrollControl.as
+++ braineditor/ScrollControl.as
@@ -11,21 +11,11 @@
     var mText:TextField;

     function ScrollControl(parent:MovieClip, lowerLeft:Point, upperRight:Point) {
-        super(parent,lowerLeft,upperRight,2,Style.scrollArrowFillColor,Style.scrollArrowOutlineColor,"");
-        var localLowerLeft=lowerLeft.clone();
-        var localUpperRight=upperRight.clone();
-        parent.globalToLocal(localUpperRight);
-        parent.globalToLocal(localLowerLeft);
-        var dimensions=localUpperRight.subtractVector(localLowerLeft);
-        translateTo(localLowerLeft);
-        drawBoxOutline(new Point(0,0),dimensions, 2, 0x7f0000, 100, 0x3f0000, 50);
-        resize(dimensions);
-
-     mSurface.createTextField("mText",mSurface.getNextHighestDepth(),3,3,dimensions.x-6,dimensions.y-6);
-     mText=mSurface.mText;
-     mText.text=mValue.toString();
-        //Generate 3 boxes
-            //top box
+      super(parent,lowerLeft,upperRight,2,Style.scrollArrowFillColor,Style.scrollArrowOutlineColor,"");
+      var dimensions=upperRight.subtractVector(lowerLeft);
+      mSurface.createTextField("mText",mSurface.getNextHighestDepth(),3,3,dimensions.x-6,dimensions.y-6);
+      mText=mSurface.mText;
+      mText.text=mValue.toString();
             //scroll grab box
             //bottom box
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 1968
Author:   jimurphy@adobe.com
Date:     2008-06-05T15:31:56.961691Z

Log Message:
-----------
Merge 3.0.x revisions [1940,1954] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
+++ frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
@@ -225,7 +225,7 @@
  *  @see flash.display.NativeMenu
  *  @see mx.events.FlexNativeMenuEvent
  *
- *  @productversion Apollo 1.0
+ *  @playerversion AIR 1.1
  */
 public class FlexNativeMenu extends EventDispatcher implements ILayoutManagerClient, IFlexContextMenu
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19337
Author:   mhorn@adobe.com
Date:     2010-12-13T22:01:27.841985Z

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 11669
Author:   gosmith@adobe.com
Date:     2009-11-11T20:56:09.050685Z

Log Message:
-----------
Spark now provides localized RTE messages for TLF.

TLF is a layer below Flex and doesn't have a localization scheme like Flex's ResourceManager; it just has hard-coded English RTE messages. But it now also has a hook function (GlobalSettings.getResourceStringFunction) that higher layers like Flex can set to provide localized messages instead.

Spark.swc now has a new resource bundle named "textLayout" with these RTE messages for TLF, copied from TLF's GlobalSettings file. And Spark.swc implements the hook in TextUtil.getResourceString().

Various classes that use TLF -- such as RichText, RichEditableText, TextFlowUtils, and UIFTETextField -- set the hook function, typically in their class initialization code. UIFTETextField didn't have class init code so I just do it repeatedly in the constuctor… it's just an assignment statement and should be fast enough.

QE notes: None
Doc notes: None
Bugs: SDK-23782
Reviewer: Carol
Tests run: ant checkintests
Is noteworthy for integration: Need localization of this new resource bundle

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/fi_FI/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/sv_SE/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/TextUtil.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/ja_JP/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/zh_TW/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/nb_NO/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/ru_RU/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/es_ES/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/fr_FR/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/de_DE/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/zh_CN/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/da_DK/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/nl_NL/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/ko_KR/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/pt_BR/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/it_IT/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/en_US/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/TextFlowUtil.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -45,6 +45,7 @@
 import flashx.textLayout.edit.SelectionManager;
 import flashx.textLayout.edit.SelectionState;
 import flashx.textLayout.elements.Configuration;
+import flashx.textLayout.elements.GlobalSettings;
 import flashx.textLayout.elements.InlineGraphicElementStatus;
 import flashx.textLayout.elements.TextFlow;
 import flashx.textLayout.events.CompositionCompleteEvent;
@@ -422,6 +423,13 @@
         if (classInitialized)
             return;

+		/**
+		 *  Set the TLF hook used for localizing runtime error messages.
+		 *  TLF itself has English-only messages,
+		 *  but higher layers like Flex can provide localized versions.
+		 */
+		GlobalSettings.getResourceStringFunction = TextUtil.getResourceString;
+
         staticConfiguration =
             Configuration(TextContainerManager.defaultConfiguration).clone();
         staticConfiguration.manageEnterKey = false; // default is true


Transferred from the Adobe Open Source Subversion Repository

Revision: 7415
Author:   cframpto@adobe.com
Date:     2009-05-29T15:09:31.703572Z

Log Message:
-----------
The new Vellum build has tcm.scrollToPosition() and factory.isTruncated so use them.

QA Notes:
Doc Notes:
Bugs:
Reviewers: Gordon

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

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -2489,7 +2489,7 @@
     }

     /**
-     *  Scrolls so that the text position is visible in the container.
+     *  @copy flashx.textLayout.container.ContainerController#scrollToPosition()
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -2499,15 +2499,8 @@
     public function scrollToPosition(anchorPosition:int = 0,
                                      activePosition:int = int.MAX_VALUE):void
     {
-       var selectionManager:ISelectionManager = getSelectionManager();
-
-       var controller:ContainerController =
-                            textFlow.flowComposer.getControllerAt(0);
-
-        // ToDo: TextContainerManager should expose this interface
-        controller.scrollToPosition(anchorPosition, activePosition);
-
-        releaseSelectionManager();
+       // Scrolls so that the text position is visible in the container.
+       inputManager.scrollToPosition(anchorPosition, activePosition);
     }

     /**


LinkableCallbackScript no longer follows ILinkableDynamicObject targets or evaluates ILinkableVariable session state (too unpredictable).

--- WeaveCore/src/weave/core/LinkableCallbackScript.as
+++ WeaveCore/src/weave/core/LinkableCallbackScript.as
@@ -19,9 +19,7 @@
 	import weave.api.registerLinkableChild;
 	import weave.api.reportError;
 	import weave.api.core.ICallbackCollection;
-	import weave.api.core.ILinkableDynamicObject;
 	import weave.api.core.ILinkableObject;
-	import weave.api.core.ILinkableVariable;
 	import weave.compiler.Compiler;
 	import weave.compiler.ProxyObject;

@@ -38,28 +36,17 @@
 		public const delayWhileBusy:LinkableBoolean = registerLinkableChild(this, new LinkableBoolean(true));

 		private var _callbacks:ICallbackCollection;
-		private const _symbolTableProxy:ProxyObject = new ProxyObject(hasValue, getValue, null);
+		private const _symbolTableProxy:ProxyObject = new ProxyObject(hasVariable, getVariable, null);
 		private var _compiledScript:Function = null;
 		private static const _compiler:Compiler = new Compiler(true);

-		public function getValue(name:String):*
+		public function getVariable(name:String):*
 		{
-			var variable:ILinkableObject = variables.getObject(name);
-
-			// if it's not a variable, it's a macro
-			if (!variable)
-				return LinkableFunction.evaluateMacro(name);
-
-			if (variable is ILinkableDynamicObject)
-				variable = (variable as ILinkableDynamicObject).internalObject;
-
-			if (variable is ILinkableVariable)
-				return (variable as ILinkableVariable).getSessionState();
-
-			return variable
+			return variables.getObject(name)
+				|| LinkableFunction.evaluateMacro(name);
 		}

-		public function hasValue(name:String):Boolean
+		public function hasVariable(name:String):Boolean
 		{
 			return variables.getObject(name) != null
 				|| LinkableFunction.macros.getObject(name) != null;


Issue #73: Fix displaying multiple sign-in windows.

--- src/com/esri/builder/controllers/PortalController.as
+++ src/com/esri/builder/controllers/PortalController.as
@@ -110,6 +110,7 @@

     private function signIntoPortalInternally():void
     {
+        AppEvent.removeListener(AppEvent.PORTAL_SIGN_IN, portalSignInHandler);
         IdentityManager.instance.removeEventListener(IdentityManagerEvent.SIGN_IN, identityManager_signInHandler);
         portal.addEventListener(PortalEvent.LOAD, portal_loadHandler);
         portal.addEventListener(FaultEvent.FAULT, portal_faultHandler);
@@ -199,6 +200,7 @@
             LOG.info("Portal sign out requested");
         }

+        AppEvent.removeListener(AppEvent.PORTAL_SIGN_OUT, portalSignOutHandler);
         IdentityManager.instance.removeEventListener(IdentityManagerEvent.SIGN_IN, identityManager_signInHandler);
         portal.addEventListener(PortalEvent.LOAD, portal_loadHandler);
         portal.addEventListener(FaultEvent.FAULT, portal_faultHandler);


Transferred from the Adobe Open Source Subversion Repository

Revision: 11463
Author:   smgilson@adobe.com
Date:     2009-11-05T15:28:57.969428Z

Log Message:
-----------
ASDoc edits for update spark item renderer arch

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/styles/metadata/AdvancedInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/IItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultComplexItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataRenderer.as
+++ frameworks/projects/spark/src/spark/components/DataRenderer.as
@@ -28,9 +28,9 @@
 [Event(name="dataChange", type="mx.events.FlexEvent")]

 /**
- *  The base class for data components in Spark.
+ *  The DataRenderer class is the base class for data components in Spark.
  *
- *
Note: This class may be removed in a later release.

+ *
Note: This class may be removed in a later release.

  *
  *  @mxml
The <s:DataRenderer> tag inherits all of the tag
  *  attributes of its superclass and adds the following tag attributes:

@@ -60,6 +60,14 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     public function DataRenderer()
     {
         super();


Transferred from the Adobe Open Source Subversion Repository

Revision: 17992
Author:   rfrishbe@adobe.com
Date:     2010-10-01T20:59:13.104275Z

Log Message:
-----------
Making performance changes to optimize list scrolling.  Most of the changes are around gating dispatchEvent() with hasEventListener().  The biggest of these is that UIComponent SHOW and HIDE don't dispatch all the time anymore--they only dispatch if someone has attached an event listener directly to them (capture phase won't work).

Also, adding an mx_internal property for Design View on MobileIconItemRenderer, iconDisplayClass.

Also, adding a FIXME in ButtonSkinbase related to my last change around text measurement.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataRenderer.as
+++ frameworks/projects/spark/src/spark/components/DataRenderer.as
@@ -119,7 +119,8 @@
     {
         _data = value;

-        dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
+        if (hasEventListener(FlexEvent.DATA_CHANGE))
+            dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
     }
 }
 }


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

--- frameworks/projects/spark/src/spark/events/IndexChangeEvent.as
+++ frameworks/projects/spark/src/spark/events/IndexChangeEvent.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Disable skinning normals (not working).

Disable skinning normals (not working).

--- src/aerys/minko/render/shader/part/animation/SkinningShaderPart.as
+++ src/aerys/minko/render/shader/part/animation/SkinningShaderPart.as
@@ -310,96 +310,101 @@

 		private function dualQuaternionSkinNormal(inNormal : SFloat) : SFloat
 		{
-			var numBones		: uint = uint(meshBindings.getConstant('skinningNumBones'));
-			var maxInfluences	: uint = uint(meshBindings.getConstant('skinningMaxInfluences'));
-
-			var outNormal	: SFloat = null;
-
-			if (maxInfluences == 0)
-			{
-				outNormal = inNormal; // new Combine(inNormal, new Constant(1.0));
-			}
-			else
-			{
-				var bindShape	: SFloat = meshBindings.getParameter('skinningBindShape', 16);
-				var dQnList		: SFloat = meshBindings.getParameter('skinningDQn', 4 * numBones);
-				var dQdList		: SFloat = meshBindings.getParameter('skinningDQd', 4 * numBones);
-
-				var jointAttr	: SFloat;
-				var dQn			: SFloat;
-				var dQd			: SFloat;
-
-				inNormal = multiply3x3(inNormal, bindShape); // #
-
-				if (maxInfluences == 1)
-				{
-					jointAttr	= getVertexAttribute(VertexComponent.BONE_S);
-					dQn			= getFieldFromArray(jointAttr.x, dQnList, false);
-					dQd			= getFieldFromArray(jointAttr.x, dQdList, false);
-				}
-				else
-				{
-					dQn = float4(0, 0, 0, 0);
-					dQd	= float4(0, 0, 0, 0);
-
-					var jointDQn : SFloat;
-					var jointDQd : SFloat;
-
-					for (var i : uint = 0; i < (maxInfluences >> 1); ++i)
-					{
-						jointAttr	= getVertexAttribute(VertexComponent.BONES[i]);
-
-						jointDQn	= getFieldFromArray(jointAttr.x, dQnList, false);
-						jointDQd	= getFieldFromArray(jointAttr.x, dQdList, false);
-						dQn.incrementBy(multiply(jointAttr.y, jointDQn));
-						dQd.incrementBy(multiply(jointAttr.y, jointDQd));
-
-						jointDQn	= getFieldFromArray(jointAttr.z, dQnList, false);
-						jointDQd	= getFieldFromArray(jointAttr.z, dQdList, false);
-						dQn.incrementBy(multiply(jointAttr.w, jointDQn));
-						dQd.incrementBy(multiply(jointAttr.w, jointDQd));
-					}
-
-					if (maxInfluences % 2 == 1)
-					{
-						jointAttr	= getVertexAttribute(VertexComponent.BONE_S);
-
-						jointDQn	= getFieldFromArray(jointAttr.x, dQnList, false);
-						jointDQd	= getFieldFromArray(jointAttr.x, dQdList, false);
-						dQn.incrementBy(multiply(jointAttr.y, jointDQn));
-						dQd.incrementBy(multiply(jointAttr.y, jointDQd));
-					}
-				}
-
-				var dQnInvLength : SFloat = rsqrt(dotProduct4(dQn, dQn));
-
-				dQn = multiply(dQn, dQnInvLength);
-				dQd = multiply(dQd, dQnInvLength);
-
-				var dQnX	: SFloat	= dQn.w;
-				var dQnYZW	: SFloat	= dQn.xyz;
-				var dQdX	: SFloat	= dQd.w;
-				var dQdYZW	: SFloat	= dQd.xyz;
-
-				var tmp0	: SFloat = multiply(dQnX, inNormal);		//	tmp0 = blendDQ[0].x*IN.position.xyz
-				var tmp1	: SFloat = crossProduct(dQnYZW, inNormal);	//	tmp1 = cross(blendDQ[0].yzw, IN.position.xyz)
-				var tmp2	: SFloat = add(tmp1, tmp0);					//	tmp2 = tmp1 + tmp0
-				var tmp3	: SFloat = crossProduct(dQnYZW, tmp2);		//	tmp3 = cross(blendDQ[0].yzw, tmp2)
-				var tmp4	: SFloat = multiply(2, tmp3);				//	tmp4 = 2.0*tmp3
-				var tmp5	: SFloat = add(inNormal, tmp4);				//	tmp5 = IN.position.xyz + tmp4
-				var tmp6	: SFloat = multiply(dQnX, dQdYZW);			//	tmp6 = blendDQ[0].x*blendDQ[1].yzw
-				var tmp7	: SFloat = multiply(dQdX, dQnYZW);			//	tmp7 = blendDQ[1].x*blendDQ[0].yzw
-				var tmp8	: SFloat = crossProduct(dQnYZW, dQdYZW);	//	tmp8 = cross(blendDQ[0].yzw, blendDQ[1].yzw)
-				var tmp9	: SFloat = subtract(tmp6, tmp7);			//	tmp9 = tmp6 - tmp7
-				var tmp10	: SFloat = add(tmp9, tmp8);					//	tmp10 = tmp9 + tmp8
-				var tmp11	: SFloat = multiply(2, tmp10);				//	tmp11 = 2.0*(tmp10)
-
-				outNormal = add(tmp5, tmp11);							//	position = tmp5 + tmp11
-
-				// outNormal		= new Combine(outNormal, new Constant(1.0));
-			}
-
-			return normalize(outNormal);
+			return inNormal;
+
+			// @fixme This is plain wrong. The computation does not take into account that we need to drop translation when morphing a normal/tangent vector
+
+//			var numBones		: uint = uint(meshBindings.getConstant('skinningNumBones'));
+//			var maxInfluences	: uint = uint(meshBindings.getConstant('skinningMaxInfluences'));
+//
+//			var outNormal	: SFloat = null;
+//
+//			if (maxInfluences == 0)
+//			{
+//				outNormal = inNormal; // new Combine(inNormal, new Constant(1.0));
+//			}
+//			else
+//			{
+//				var bindShape	: SFloat = meshBindings.getParameter('skinningBindShape', 16);
+//				var dQnList		: SFloat = meshBindings.getParameter('skinningDQn', 4 * numBones);
+//				var dQdList		: SFloat = meshBindings.getParameter('skinningDQd', 4 * numBones);
+//
+//				var jointAttr	: SFloat;
+//				var dQn			: SFloat;
+//				var dQd			: SFloat;
+//
+//				inNormal = multiply3x3(inNormal, bindShape); // #
+//				inNormal.normalize();
+//
+//				if (maxInfluences == 1)
+//				{
+//					jointAttr	= getVertexAttribute(VertexComponent.BONE_S);
+//					dQn			= getFieldFromArray(jointAttr.x, dQnList, false);
+//					dQd			= getFieldFromArray(jointAttr.x, dQdList, false);
+//				}
+//				else
+//				{
+//					dQn = float4(0, 0, 0, 0);
+//					dQd	= float4(0, 0, 0, 0);
+//
+//					var jointDQn : SFloat;
+//					var jointDQd : SFloat;
+//
+//					for (var i : uint = 0; i < (maxInfluences >> 1); ++i)
+//					{
+//						jointAttr	= getVertexAttribute(VertexComponent.BONES[i]);
+//
+//						jointDQn	= getFieldFromArray(jointAttr.x, dQnList, false);
+//						jointDQd	= getFieldFromArray(jointAttr.x, dQdList, false);
+//						dQn.incrementBy(multiply(jointAttr.y, jointDQn));
+//						dQd.incrementBy(multiply(jointAttr.y, jointDQd));
+//
+//						jointDQn	= getFieldFromArray(jointAttr.z, dQnList, false);
+//						jointDQd	= getFieldFromArray(jointAttr.z, dQdList, false);
+//						dQn.incrementBy(multiply(jointAttr.w, jointDQn));
+//						dQd.incrementBy(multiply(jointAttr.w, jointDQd));
+//					}
+//
+//					if (maxInfluences % 2 == 1)
+//					{
+//						jointAttr	= getVertexAttribute(VertexComponent.BONE_S);
+//
+//						jointDQn	= getFieldFromArray(jointAttr.x, dQnList, false);
+//						jointDQd	= getFieldFromArray(jointAttr.x, dQdList, false);
+//						dQn.incrementBy(multiply(jointAttr.y, jointDQn));
+//						dQd.incrementBy(multiply(jointAttr.y, jointDQd));
+//					}
+//				}
+//
+//				var dQnInvLength : SFloat = rsqrt(dotProduct4(dQn, dQn));
+//
+//				dQn = multiply(dQn, dQnInvLength);
+//				dQd = multiply(dQd, dQnInvLength);
+//
+//				var dQnX	: SFloat	= dQn.w;
+//				var dQnYZW	: SFloat	= dQn.xyz;
+//				var dQdX	: SFloat	= dQd.w;
+//				var dQdYZW	: SFloat	= dQd.xyz;
+//
+//				var tmp0	: SFloat = multiply(dQnX, inNormal);		//	tmp0 = blendDQ[0].x*IN.position.xyz
+//				var tmp1	: SFloat = crossProduct(dQnYZW, inNormal);	//	tmp1 = cross(blendDQ[0].yzw, IN.position.xyz)
+//				var tmp2	: SFloat = add(tmp1, tmp0);					//	tmp2 = tmp1 + tmp0
+//				var tmp3	: SFloat = crossProduct(dQnYZW, tmp2);		//	tmp3 = cross(blendDQ[0].yzw, tmp2)
+//				var tmp4	: SFloat = multiply(2, tmp3);				//	tmp4 = 2.0*tmp3
+//				var tmp5	: SFloat = add(inNormal, tmp4);				//	tmp5 = IN.position.xyz + tmp4
+//				var tmp6	: SFloat = multiply(dQnX, dQdYZW);			//	tmp6 = blendDQ[0].x*blendDQ[1].yzw
+//				var tmp7	: SFloat = multiply(dQdX, dQnYZW);			//	tmp7 = blendDQ[1].x*blendDQ[0].yzw
+//				var tmp8	: SFloat = crossProduct(dQnYZW, dQdYZW);	//	tmp8 = cross(blendDQ[0].yzw, blendDQ[1].yzw)
+//				var tmp9	: SFloat = subtract(tmp6, tmp7);			//	tmp9 = tmp6 - tmp7
+//				var tmp10	: SFloat = add(tmp9, tmp8);					//	tmp10 = tmp9 + tmp8
+//				var tmp11	: SFloat = multiply(2, tmp10);				//	tmp11 = 2.0*(tmp10)
+//
+//				outNormal = add(tmp5, tmp11);							//	position = tmp5 + tmp11
+//
+//				// outNormal		= new Combine(outNormal, new Constant(1.0));
+//			}
+//
+//			return normalize(outNormal);
 		}

 		private function dualQuaternionSkinTangent(inTangent : SFloat) : SFloat


Change 20081228-bargull-DxJ by bargull@dell--p4--2-53 on 2008-12-28 14:58:39
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: fix ReferenceError in LzSprite

New Features:

Bugs Fixed: LPP-7528

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

Documentation:

Release Notes:

Details:
- "smoothing" is only available for Bitmap
- call "unloadAndStop()" for swf10, this helps to reduce possible mem-leaks in the flash player

Tests:
see testcase

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

--- WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
+++ WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
@@ -1,7 +1,7 @@
 /**
   * LzSprite.as
   *
-  * @copyright Copyright 2007, 2008 Laszlo Systems, Inc.  All Rights Reserved.
+  * @copyright Copyright 2007-2009 Laszlo Systems, Inc.  All Rights Reserved.
   *            Use is subject to license terms.
   *
   * @topic Kernel
@@ -376,7 +376,6 @@
           // These progress event listeners can only be installed after the init event
           // has been received. You get an error if you try to add them before this.
           var loader:Loader = Loader(event.target.loader);
-          event.target.content.smoothing = true;
           var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
           info.addEventListener(ProgressEvent.PROGRESS, loaderEventHandler);
           info.addEventListener(Event.OPEN, loaderEventHandler);
@@ -410,7 +409,7 @@
                   // avoid security exceptions
                   if (info.parentAllowsChild) {
                       if (info.content is AVM1Movie) {
-                        if ($debug) {
+                          if ($debug) {
                               Debug.warn("Playback control will not work for the resource.  Please update or recompile the resource for Flash 9.", this.resource);
                           }
                       } else if (info.content is MovieClip) {
@@ -420,6 +419,8 @@
                           this.loaderMC.addEventListener(Event.ENTER_FRAME, updateFrames);
                           this.owner.resourceevent('play', null, true);
                           this.playing = this.owner.playing = true;
+                      } else if (info.content is Bitmap) {
+                          (info.content as Bitmap).smoothing = true;
                       }
                   }

@@ -1295,8 +1296,11 @@
                 // throws an error if stream has already finished loading
             }
             // unload any content, call after close()
-            // for swf10: this.imgLoader.unloadAndStop();
-            this.imgLoader.unload();
+            if ($swf10) {
+                this.imgLoader['unloadAndStop']();
+            } else {
+                this.imgLoader.unload();
+            }
         }
         if (this.resourceContainer != null) {
             this.removeChild(this.resourceContainer);


Revert changes to OSMF.

Revert changes to OSMF.

--- OSMF/org/osmf/net/httpstreaming/flv/FLVTag.as
+++ OSMF/org/osmf/net/httpstreaming/flv/FLVTag.as
@@ -156,16 +156,6 @@
 			// noting the unusual order
 			return (bytes[7] << 24) | (bytes[4] << 16) | (bytes[5] << 8) | (bytes[6]);
 		}
-
-		private var _cachedTimestamp:Number = -1;
-
-		public function get cachedTimestamp():uint
-		{
-			if(_cachedTimestamp == -1)
-				_cachedTimestamp = timestamp;
-			return _cachedTimestamp;
-		}
-

 		public function set timestamp(value:uint):void
 		{
@@ -173,7 +163,6 @@
 			bytes[4] = (value >> 16) & 0xff;
 			bytes[5] = (value >> 8) & 0xff;
 			bytes[6] = (value) & 0xff;
-			_cachedTimestamp = -1;
 		}

 		public function get data():ByteArray
@@ -185,7 +174,6 @@

 		public function set data(value:ByteArray):void
 		{
-			_cachedTimestamp = -1;
 			bytes.length = TAG_HEADER_BYTE_COUNT + value.length;	// resize first
 			bytes.position = TAG_HEADER_BYTE_COUNT;
 			bytes.writeBytes(value, 0, value.length); // copy in


Detail in comment as discovered in http://www.igniterealtime.org/community/message/199818

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

--- src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
@@ -36,6 +36,25 @@

 	/**
 	 * Bidirectional-streams Over Synchronous HTTP (BOSH)
+	 *
Using BOSH do not prevent your application from respecting
+	 * Adobe Flash Player policy file issues. HTTP requests to your
+	 * server must be authorized with a crossdomain.xml file
+	 * in your webserver root.

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

+	 *
+	 *
Warning: if you are using BOSH through HTTPS, your crossdomain
+	 * policy file must also be served through HTTPS. Your application
+	 * (if online) must also be served through HTTPS else you will
+	 * have a crossdomain policy issue. This issue can be solved by
+	 * using the secure property of the allow-access-from node in the
+	 * crossdomain.xml file. But this is not recommended by Adobe.

+	 *
 	 * @see http://xmpp.org/extensions/xep-0124.html
 	 * @see http://xmpp.org/extensions/xep-0206.html
 	 */
@@ -262,12 +281,12 @@
 		override protected function sendXML( someData:* ):void
 		{
 			var thisData:XMLNode;
-			if (someData is XML)
+			if (someData is XML)
 			{
 				var x : XML = someData as XML;
 				thisData = new XMLDocument( x.toXMLString() );
-			}
-			else
+			}
+			else
 			{
 				thisData = someData as XMLNode;
 			}


Change 20080429-maxcarlson-I by maxcarlson@Roboto on 2008-04-29 10:54:55 PDT
    in /Users/maxcarlson/openlaszlo/trunk-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Hide the swf9 debugger until messages need to be shown

New Features:

Bugs Fixed:

Technical Reviewer: hminsky
QA Reviewer: promanik
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details: Hide debugger text and inputtext  until write() is called.

Tests: The debugger text and inputtext start hidden, until write() is called.

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

--- WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as
+++ WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as
@@ -75,6 +75,7 @@
         // cheapo debug console
         lzconsole = this;
         var tfield:TextField = new TextField();
+        tfield.visible = false;
         tfield.background = true;
         tfield.backgroundColor = 0xcccccc;
         tfield.x = 0;
@@ -88,6 +89,7 @@

         var ci:TextField =  new TextField();
         consoleinputtext = ci;
+        ci.visible = false;
         ci.background = true;
         ci.backgroundColor = 0xffcccc;
         ci.x = 0;
@@ -160,6 +162,8 @@
     public var consoleinputtext:TextField;

     public function write (...args) {
+        consoletext.visible = true;
+        consoleinputtext.visible = true;
         consoletext.appendText( "\n" + args.join(" "));
         consoletext.scrollV = consoletext.maxScrollV;
     }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as
+++ frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as
@@ -24,12 +24,22 @@
 /**
  * Dispatched when an Operation invocation successfully returns.
  * @eventType mx.rpc.events.ResultEvent.RESULT
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="result", type="mx.rpc.events.ResultEvent")]

 /**
  * Dispatched when an Operation call fails.
  * @eventType mx.rpc.events.FaultEvent.FAULT
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="fault", type="mx.rpc.events.FaultEvent")]

@@ -44,6 +54,11 @@
  * @see mx.rpc.AbstractService
  * @see mx.rpc.remoting.RemoteObject
  * @see mx.rpc.soap.WebService
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class AbstractOperation extends AbstractInvoker
 {
@@ -62,6 +77,11 @@
      *  @param service The service on which the Operation is being invoked.
      *
      *  @param name The name of the new Operation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function AbstractOperation(service:AbstractService = null, name:String = null)
     {
@@ -87,12 +107,22 @@
      * parameters are used instead of whatever is stored in this property.
      * For RemoteObject Operations the associated argumentNames array determines
      * the order of the arguments passed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var arguments:Object;

     /**
      * This is a hook primarily for framework developers to register additional user
      * specified properties for your operation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var properties:Object;

@@ -111,6 +141,11 @@
     /**
      * The name of this Operation. This is how the Operation is accessed off the
      * service. It can only be set once.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get name():String
     {
@@ -135,6 +170,11 @@
      * Provides convenient access to the service on which the Operation
      * is being invoked. Note that the service cannot be changed after
      * the Operation is constructed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get service():AbstractService
     {
@@ -178,6 +218,11 @@
      * The same object is available in the result and
      * fault events from the token property.
      *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     /* abstract */ public function send(... args:Array):AsyncToken
     {
@@ -193,6 +238,11 @@
     * event bubbling; dispatch the event if there's someone listening on us,
     * otherwise have the RemoteObject dispatch it in case there's a default
     * handler.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
     */
     override mx_internal function dispatchRpcEvent(event:AbstractEvent):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 13337
Author:   cframpto@adobe.com
Date:     2010-01-07T18:49:56.786078Z

Log Message:
-----------
This fixes the performance issue in truncateText() while maintaining the word-wrapping added for https://bugs.adobe.com/jira/browse/SDK-23931.  If a word wrapped to the next line it may fit on the line we are truncating if a character or characters are truncated.

If there is an extra line, rather than starting at the end of it, we start at the first word boundary, and work backwards, recomposing for each dropped atom until the text fits.  If the extra line is long there can be many recompositions.

QE notes:
Doc notes:
Bugs: SDK-24885
Reviewer: Alex
Tests run: checkintests, Label
Is noteworthy for integration:

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -1202,10 +1202,17 @@

         // Compute the truncation line.
         truncLineIndex = computeLastAllowedLineIndex(height, lineCountLimit);
-        // add extra line in case we wordwrapped some characters
-        // onto extra lines, but don't go off the end
-        truncLineIndex = Math.min(truncLineIndex + 1, textLines.length - 1);
-
+
+        // Add extra line in case we wordwrapped some characters
+        // onto extra lines.  If we truncate in the middle of the last word
+        // it may then fit on the line above.
+        var extraLine:Boolean;
+        if (truncLineIndex + 1 < textLines.length)
+        {
+            truncLineIndex++;
+            extraLine = true;
+        }
+
         if (truncLineIndex >= 0)
         {
             // Estimate the initial truncation position using the following
@@ -1247,7 +1254,7 @@
                 // 4. Get the initial truncation position on the target
                 // line given this allowed width.
                 var truncateAtCharPosition:int = getTruncationPosition(
-                    TextLine(textLines[truncLineIndex]), allowedWidth);
+                    TextLine(textLines[truncLineIndex]), allowedWidth, extraLine);

                 // The following loop executes repeatedly composing text until
                 // it fits.  In each iteration, an atoms's worth of characters
@@ -1288,7 +1295,7 @@
                     // preceding atom.
                     var oldCharPosition:int = truncateAtCharPosition;
                     truncateAtCharPosition = getNextTruncationPosition(
-                        Math.min(truncLineIndex, textLines.length - 1), truncateAtCharPosition);
+                        truncLineIndex, truncateAtCharPosition);
                     // check to see if we've run out of chars
                     if (oldCharPosition == truncateAtCharPosition)
                         break;
@@ -1419,7 +1426,13 @@

     /**
      *  @private
-     *  Gets the truncation position on a line given the allowed width.
+     *  Gets the initial truncation position on a line.
+     *
+     *  If there is an extra line, start at the first word boundary since
+     *  truncating characters in this word may make it fit on the line above.
+     *
+     *  If there is not an extra line, start at the allowed width.
+     *
      *  - Must be at an atom boundary.
      *  - Must scan the line for atoms in logical order, not physical position
      *    order.
@@ -1429,7 +1442,8 @@
      *  ג, C, D
      */
     private function getTruncationPosition(line:TextLine,
-                                           allowedWidth:Number):int
+                                           allowedWidth:Number,
+                                           extraLine:Boolean):int
     {
         var consumedWidth:Number = 0;
         var charPosition:int = line.textBlockBeginIndex;
@@ -1437,11 +1451,23 @@
         while (charPosition < line.textBlockBeginIndex + line.rawTextLength)
         {
             var atomIndex:int = line.getAtomIndexAtCharIndex(charPosition);
-            var atomBounds:Rectangle = line.getAtomBounds(atomIndex);
-            consumedWidth += atomBounds.width;
-            if (consumedWidth > allowedWidth)
-                break;
-
+            if (extraLine)
+            {
+                // Skip the initial word boundary.
+                if (charPosition != line.textBlockBeginIndex &&
+                    line.getAtomWordBoundaryOnLeft(atomIndex))
+                {
+                    break;
+                }
+            }
+            else
+            {
+                var atomBounds:Rectangle = line.getAtomBounds(atomIndex);
+                consumedWidth += atomBounds.width;
+                if (consumedWidth > allowedWidth)
+                    break;
+            }
+
             charPosition = line.getAtomTextBlockEndIndex(atomIndex);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/automation/src/mx/automation/tabularData/ListBaseTabularData.as
+++ frameworks/projects/automation/src/mx/automation/tabularData/ListBaseTabularData.as
@@ -0,0 +1,201 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation.tabularData
+{
+
+	import mx.automation.AutomationManager;
+	import mx.automation.IAutomationTabularData;
+	import mx.collections.CursorBookmark;
+	import mx.collections.errors.ItemPendingError;
+	import mx.controls.listClasses.ListBase;
+	import mx.controls.listClasses.IListItemRenderer;
+	import mx.controls.List;
+	import mx.core.mx_internal;
+	use namespace mx_internal;
+
+	/**
+	 *  @private
+	 */
+	public class ListBaseTabularData
+		implements IAutomationTabularData
+	{
+
+		private var list:ListBase;
+
+		/**
+		 *  Constructor
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function ListBaseTabularData(l:ListBase)
+		{
+			super();
+
+			list = l;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get firstVisibleRow():int
+		{
+			var listItems:Array = list.rendererArray;
+
+			if (listItems && listItems.length && listItems[0].length)
+				return list.itemRendererToIndex(listItems[0][0])
+			return 0;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get lastVisibleRow():int
+		{
+			var listItems:Array = list.rendererArray;
+
+			if (listItems && listItems.length && listItems[0].length)
+			{
+				var row:int = listItems.length - 1;
+				var col:int = listItems[0].length - 1;
+				while (!listItems[row][col] && row >= 0 && col >= 0)
+				{
+					if (col != 0)
+					{
+						col --;
+					}
+					else if (row != 0)
+					{
+						row--;
+						col = listItems[0].length - 1;
+					}
+				}
+
+				return (row >= 0 && col >= 0
+					? list.itemRendererToIndex(listItems[row][col])
+					: numRows);
+			}
+
+			return 0;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get numRows():int
+		{
+			return (list.collectionIterator ? list.collectionIterator.view.length : 0);
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get numColumns():int
+		{
+			return 1;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get columnNames():Array
+		{
+			return [ "" ];
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function getValues(start:uint = 0, end:uint = 0):Array
+		{
+			//empty list of column names for list, dg overrides
+			var values:Array = [ ];
+			if (list.collectionIterator)
+			{
+				var bookmark:CursorBookmark = list.collectionIterator.bookmark;
+				var i:int = start;
+				var more:Boolean = true;
+				list.collectionIterator.seek(CursorBookmark.FIRST, start);
+
+				while (more && !list.collectionIterator.afterLast &&
+					(i <= end))
+				{
+					var data:Object = list.collectionIterator.current;
+					var curRowValues:Array = getAutomationValueForData(data);
+
+					values.push(curRowValues);
+
+					try
+					{
+						more = list.collectionIterator.moveNext();
+					}
+					catch (e:ItemPendingError)
+					{
+						more = false;
+					}
+
+					++i;
+				}
+
+				// reset to previous iterator position
+				list.collectionIterator.seek(bookmark, 0);
+			}
+
+			return values;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function getAutomationValueForData(data:Object):Array
+		{
+			return [];
+		}
+	}
+}


Resolve conflict

Resolve conflict

--- krew-framework/krewfw/starling_utility/TileMapHelper.as
+++ krew-framework/krewfw/starling_utility/TileMapHelper.as
@@ -3,6 +3,8 @@
     import flash.geom.Point;
     import starling.display.Image;
     import starling.textures.Texture;
+
+    import krewfw.utility.KrewUtil;

     /**
      * Tiled Map Editor (http://www.mapeditor.org/) の tmx ファイルから
@@ -13,6 +15,20 @@

         // avoid instantiation cost
         private static var _point:Point = new Point(0, 0);
+
+        /**
+         * Tiled Map Editor で出力した json の Object から、
+         * 名前でレイヤーのデータを取得する。名前がヒットしなかった場合は null を返す
+         */
+        public static function getLayerByName(tileMapInfo:Object, layerName:String):Object {
+            for each (var layerData:Object in tileMapInfo.layers) {
+                if (layerData.name == layerName) {
+                    return layerData;
+                }
+            }
+            KrewUtil.fwlog("[TileMapHelpr] Layer not found: " + layerName);
+            return null;
+        }

         /**
          * Tiled Map Editor で出力した json による Object を使って、


Transferred from the Adobe Open Source Subversion Repository

Revision: 19983
Author:   krsindac@adobe.com
Date:     2011-01-27T20:10:19.035178Z

Log Message:
-----------
added asdoc example for TabbedViewNavigatorApplication and ViewNavigatorApplication

QE notes:
Doc notes: asdoc updated
Bugs:
Reviewer:
Tests run:
Is noteworthy for integration:  nope

Modified Paths:
--------------
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/ViewNavigatorApplicationExample.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/TabbedViewNavigatorApplicationExample.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/views/ViewNavigatorApplicationHomeView.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/views</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/asdoc/en_US/spark/components/examples/views/ViewNavigatorApplicationView2.mxml</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
@@ -105,7 +105,10 @@
  *  @see spark.components.ViewNavigator
  *  @see spark.components.View
  *  @see spark.skins.mobile.ViewNavigatorApplicationSkin
- *
+ *  @includeExample examples/ViewNavigatorApplicationExample.mxml -noswf
+ *  @includeExample examples/views/ViewNavigatorApplicationHomeView.mxml -noswf
+ *  @includeExample examples/views/ViewNavigatorApplicationView2.mxml -noswf
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 2.5


initializing text to empty string

initializing text to empty string

git-svn-id: 02605e11d3a461bc7e12f3f3880edf4b0c8dcfd0@4063 3e7533ad-8678-4d30-8e38-00a379d3f0d0

--- src/laml/display/Label.as
+++ src/laml/display/Label.as
@@ -16,6 +16,7 @@
 			super.initialize();
 			model.validate_textFormat = validateTextFormat;
 			model.validate_selectable = validateSelectable;
+			text = "";
 		}

 		override protected function createChildren():void {


add TransformController.getWorldToLocalTransform() to get cached/lazy world to local transform

--- src/aerys/minko/scene/controller/TransformController.as
+++ src/aerys/minko/scene/controller/TransformController.as
@@ -30,6 +30,7 @@
 		private var _idToNode				: Vector.<ISceneNode>
 		private var _transforms				: Vector.<Matrix4x4>;
 		private var _localToWorldTransforms : Vector.<Matrix4x4>;
+        private var _worldToLocalTransforms : Vector.<Matrix4x4>;
 		private var _numChildren			: Vector.<uint>;
 		private var _firstChildId			: Vector.<uint>;
 		private var _parentId				: Vector.<int>;
@@ -101,22 +102,21 @@
 				}
 			}
 		}
-
-		private function updateAncestorsAndSelfLocalToWorld(nodeId : int) : void
-		{
-			var dirtyRoot : int = nodeId;
-
-			while (nodeId >= 0)
-			{
-				if ((_transforms[nodeId] as Matrix4x4)._hasChanged)
-					dirtyRoot = nodeId;
-
-				nodeId = _parentId[nodeId];
-			}
-
-			if (dirtyRoot >= 0)
-				updateLocalToWorld(dirtyRoot);
-		}
+
+        private function getDirtyRoot(nodeId : int) : int
+        {
+            var dirtyRoot : int = nodeId;
+
+            while (nodeId >= 0)
+            {
+                if ((_transforms[nodeId] as Matrix4x4)._hasChanged)
+                    dirtyRoot = nodeId;
+
+                nodeId = _parentId[nodeId];
+            }
+
+            return dirtyRoot;
+        }

 		private function targetAddedHandler(ctrl	: TransformController,
 											target	: ISceneNode) : void
@@ -163,6 +163,7 @@
 			_nodeToId = null;
 			_transforms = null;
 			_localToWorldTransforms = null;
+            _worldToLocalTransforms = null;
 			_numChildren = null;
 			_idToNode = null;
 			_parentId = null;
@@ -207,6 +208,7 @@
 			_nodeToId = new Dictionary(true);
 			_transforms = new <Matrix4x4>[];
 			_localToWorldTransforms = new <Matrix4x4>[];
+            _worldToLocalTransforms = new <Matrix4x4>[];
 			_numChildren = new <uint>[];
 			_firstChildId = new <uint>[];
 			_idToNode = new <ISceneNode>[];
@@ -244,6 +246,7 @@
 				++nodeId;
 			}

+            _worldToLocalTransforms.length = _localToWorldTransforms.length;
 			_invalidList = false;
 		}

@@ -256,9 +259,47 @@
 			var nodeId : uint = _nodeToId[node];

 			if (forceUpdate)
-				updateAncestorsAndSelfLocalToWorld(nodeId);
+            {
+                var dirtyRoot : int = getDirtyRoot(nodeId);
+
+                if (dirtyRoot >= 0)
+                    updateLocalToWorld(dirtyRoot);
+            }

 			return _localToWorldTransforms[nodeId];
 		}
+
+        public function getWorldToLocalTransform(node           : ISceneNode,
+                                                 forceUpdate    : Boolean   = false) : Matrix4x4
+        {
+            if (_invalidList || _nodeToId[node] == undefined)
+                updateTransformsList();
+
+            var nodeId                  : uint      = _nodeToId[node];
+            var worldToLocalTransform   : Matrix4x4 = _worldToLocalTransforms[nodeId];
+
+            if (!worldToLocalTransform)
+            {
+                _worldToLocalTransforms[nodeId] = worldToLocalTransform = new Matrix4x4();
+                if (!forceUpdate)
+                    worldToLocalTransform.copyFrom(_localToWorldTransforms[nodeId]).invert();
+            }
+
+            if (forceUpdate)
+            {
+                var dirtyRoot : int = getDirtyRoot(nodeId);
+
+                if (dirtyRoot >= 0)
+                {
+                    updateLocalToWorld(dirtyRoot);
+
+                    worldToLocalTransform
+                        .copyFrom(_localToWorldTransforms[nodeId])
+                        .invert();
+                }
+            }
+
+            return worldToLocalTransform;
+        }
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18284
Author:   deeptika@adobe.com
Date:     2010-10-22T08:14:18.528989Z

Log Message:
-----------
Removing scrolling related code as Legend does not support scroll bars now

QE notes:
Doc notes:
Bugs: FLEXDMV-2518 (RTE when app uses mx:Legend)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/Legend.as

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

--- frameworks/projects/charts/src/mx/charts/Legend.as
+++ frameworks/projects/charts/src/mx/charts/Legend.as
@@ -3705,15 +3705,6 @@
 			// Create the border/background object.
 			createBorder();

-			// To save ourselves an extra layout pass, check to see
-			// if the scrollbars will definitely be needed.
-			// If so, create them now.
-			createOrDestroyScrollbars(
-				horizontalScrollPolicy == ScrollPolicy.ON,
-				verticalScrollPolicy == ScrollPolicy.ON,
-				horizontalScrollPolicy == ScrollPolicy.ON ||
-				verticalScrollPolicy == ScrollPolicy.ON);
-
 			// Determine the child-creation policy (ContainerCreationPolicy.AUTO,
 			// ContainerCreationPolicy.ALL, or ContainerCreationPolicy.NONE).
 			// If the author has specified a policy, use it.
@@ -5607,7 +5598,7 @@
 		private function createContentPaneAndScrollbarsIfNeeded():Boolean
 		{
 			var bounds:Rectangle;
-			var changed:Boolean;
+			var changed:Boolean = false;

 			// No mask is needed if clipping isn't active
 			if (_clipContent)
@@ -5616,10 +5607,6 @@
 				// edge of the rightmost child.  Also get the new scrollable height.
 				bounds = getScrollableRect();

-				// Create or destroy scrollbars if necessary, and update the
-				// properties of the scrollbars.
-				changed = createScrollbarsIfNeeded(bounds);
-
 				if (border)
 					updateBackgroundImageRect();

@@ -5627,8 +5614,6 @@
 			}
 			else
 			{
-				changed = createOrDestroyScrollbars(false, false, false);
-
 				// Get scrollableWidth and scrollableHeight for scrollChildren()
 				bounds = getScrollableRect();
 				scrollableWidth = bounds.right;
@@ -5707,324 +5692,6 @@
 			return bounds;
 		}

-		/**
-		 *  @private
-		 */
-		private function createScrollbarsIfNeeded(bounds:Rectangle):Boolean
-		{
-			var newScrollableWidth:Number = bounds.right;
-			var newScrollableHeight:Number = bounds.bottom;
-			var newViewableWidth:Number = unscaledWidth;
-			var newViewableHeight:Number = unscaledHeight;
-			var hasNegativeCoords:Boolean = bounds.left < 0 || bounds.top < 0;
-
-			var vm:EdgeMetrics = viewMetrics;
-
-			// Several of the layout managers round floating-point numbers
-			// down, using Math.floor().
-			// The rounded-down width value is passed to UIComponent.setActualSize,
-			// which does the following:
-			//
-			//   unscaledWidth = w / scaleX
-			//
-			// Suppose "w" was originally 91.9 but the layout manager
-			// rounded it down to 91. Suppose scaleX is 0.01.
-			// Then unscaledWidth is 91/0.01 = 9100, but it would have been
-			// 91.9/0.01 = 9190 if it weren't for the rounding.
-			// To undo the effect of the rounding, we'll add a fudge factor to
-			// newViewableWidth. That way, we don't display unwanted scrollbars.
-			if (scaleX != 1.0)
-				newViewableWidth += 1.0 / Math.abs(scaleX);
-			if (scaleY != 1.0)
-				newViewableHeight += 1.0 / Math.abs(scaleY);
-
-			newViewableWidth = Math.floor(newViewableWidth);
-			newViewableHeight = Math.floor(newViewableHeight);
-			newScrollableWidth = Math.floor(newScrollableWidth);
-			newScrollableHeight = Math.floor(newScrollableHeight);
-
-			/*if (horizontalScrollBar && horizontalScrollPolicy != ScrollPolicy.ON)
-				newViewableHeight -= horizontalScrollBar.minHeight;
-			if (verticalScrollBar && verticalScrollPolicy != ScrollPolicy.ON)
-				newViewableWidth -= verticalScrollBar.minWidth;*/
-
-			newViewableWidth -= (vm.left + vm.right);
-			newViewableHeight -= (vm.top + vm.bottom);
-
-			var needHorizontal:Boolean =
-				horizontalScrollPolicy == ScrollPolicy.ON;
-			var needVertical:Boolean =
-				verticalScrollPolicy == ScrollPolicy.ON;
-
-			var needContentPane:Boolean =
-				needHorizontal ||
-				needVertical ||
-				hasNegativeCoords ||
-				effectOverlay != null ||
-				vm.left > 0 ||
-				vm.top > 0;
-
-			// These "if" statements are tuned for the most common case,
-			// which is that the Container does not need scrollbars.
-			if (newViewableWidth < newScrollableWidth)
-			{
-				needContentPane = true;
-
-				// Don't display scrollbars if the Container is so small
-				// that scrollbars would occlude everything else
-				// or the scrollbar buttons would overlap.
-				if (horizontalScrollPolicy == ScrollPolicy.AUTO &&
-					unscaledHeight - vm.top - vm.bottom >= 18 &&
-					unscaledWidth - vm.left - vm.right >= 32)
-				{
-					needHorizontal = true;
-				}
-			}
-			if (newViewableHeight < newScrollableHeight)
-			{
-				needContentPane = true;
-
-				if (verticalScrollPolicy == ScrollPolicy.AUTO &&
-					unscaledWidth - vm.left - vm.right >= 18 &&
-					unscaledHeight - vm.top - vm.bottom >= 32)
-				{
-					needVertical = true;
-				}
-			}
-
-			// Fix for 106095. The logic here says "if removing the scrollbars
-			// would make enough room to display the view's children, then remove
-			// the scrollbars".
-			if (needHorizontal &&
-				needVertical &&
-				horizontalScrollPolicy == ScrollPolicy.AUTO &&
-				verticalScrollPolicy == ScrollPolicy.AUTO &&
-				newViewableWidth  >= newScrollableWidth &&
-				newViewableHeight >= newScrollableHeight)
-			{
-				needHorizontal = needVertical = false;
-			}
-
-				// If the vertical scrollbar is going to be removed anyway, and
-				// removing it would also free up enough space for the contents to fit
-				// horizontally, then there's no need for the horizontal scrollbar
-				// either.
-			else if (needHorizontal &&
-				!needVertical &&
-				horizontalScrollPolicy == ScrollPolicy.AUTO &&
-				newViewableWidth >= newScrollableWidth)
-			{
-				needHorizontal = false;
-			}
-
-			var changed:Boolean = createOrDestroyScrollbars(
-				needHorizontal, needVertical, needContentPane);
-
-			if ((scrollableWidth != newScrollableWidth ||
-				viewableWidth != newViewableWidth) ||
-				changed)
-			{
-				/*if (horizontalScrollBar)
-				{
-					horizontalScrollBar.setScrollProperties(
-						newViewableWidth, 0,
-						newScrollableWidth - newViewableWidth, horizontalPageScrollSize);
-					scrollPositionChanged = true;
-				}*/
-
-				viewableWidth = newViewableWidth;
-				scrollableWidth = newScrollableWidth;
-			}
-
-			if ((scrollableHeight != newScrollableHeight ||
-				viewableHeight != newViewableHeight) ||
-				changed)
-			{
-
-				/*if (verticalScrollBar)
-				{
-					verticalScrollBar.setScrollProperties(
-						newViewableHeight, 0,
-						newScrollableHeight-newViewableHeight, verticalPageScrollSize);
-
-					scrollPositionChanged = true;
-				}  */
-
-				viewableHeight = newViewableHeight;
-				scrollableHeight = newScrollableHeight;
-			}
-
-			return changed;
-		}
-
-		/**
-		 *  @private
-		 */
-		private function createOrDestroyScrollbars(
-			needHorizontal:Boolean,
-			needVertical:Boolean,
-			needContentPane:Boolean):Boolean
-		{
-			var changed:Boolean = false;
-		/*	var fm:IFocusManager;
-
-			if (needHorizontal || needVertical || needContentPane)
-				createContentPane();
-
-			// Create or destroy horizontal scrollbar.
-			if (needHorizontal)
-			{
-				if (!horizontalScrollBar)
-				{
-					horizontalScrollBar = new HScrollBar();
-					horizontalScrollBar.name = "horizontalScrollBar";
-
-					var horizontalScrollBarStyleName:String =
-						getStyle("horizontalScrollBarStyleName");
-					if (horizontalScrollBarStyleName && horizontalScrollBar is ISimpleStyleClient)
-						ISimpleStyleClient(horizontalScrollBar).styleName = horizontalScrollBarStyleName;
-
-					rawChildren.addChild(DisplayObject(horizontalScrollBar));
-					horizontalScrollBar.lineScrollSize = horizontalLineScrollSize;
-					horizontalScrollBar.pageScrollSize = horizontalPageScrollSize;
-					horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, horizontalScrollBar_scrollHandler);
-					horizontalScrollBar.enabled = enabled;
-					if (horizontalScrollBar is IInvalidating)
-						IInvalidating(horizontalScrollBar).validateNow();
-
-					invalidateDisplayList();
-					invalidateViewMetricsAndPadding();
-
-					changed = true;
-
-					if (!verticalScrollBar)
-						addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
-				}
-			}
-			else
-			{
-				if (horizontalScrollBar)
-				{
-					horizontalScrollBar.removeEventListener(
-						ScrollEvent.SCROLL,
-						horizontalScrollBar_scrollHandler);
-
-					rawChildren.removeChild(DisplayObject(horizontalScrollBar));
-					horizontalScrollBar = null;
-
-					viewableWidth = scrollableWidth = 0;
-
-					if (_horizontalScrollPosition != 0)
-					{
-						_horizontalScrollPosition = 0;
-						scrollPositionChanged = true;
-					}
-
-					invalidateDisplayList();
-					invalidateViewMetricsAndPadding();
-
-					changed = true;
-
-					fm = focusManager;
-					if (!verticalScrollBar && (!fm || fm.getFocus() != this))
-						removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
-				}
-			}
-
-			// Create or destroy vertical scrollbar.
-			if (needVertical)
-			{
-				if (!verticalScrollBar)
-				{
-					verticalScrollBar = new VScrollBar();
-					verticalScrollBar.name = "verticalScrollBar";
-
-					var verticalScrollBarStyleName:String =
-						getStyle("verticalScrollBarStyleName");
-					if (verticalScrollBarStyleName && verticalScrollBar is ISimpleStyleClient)
-						ISimpleStyleClient(verticalScrollBar).styleName = verticalScrollBarStyleName;
-
-					rawChildren.addChild(DisplayObject(verticalScrollBar));
-					verticalScrollBar.lineScrollSize = verticalLineScrollSize;
-					verticalScrollBar.pageScrollSize = verticalPageScrollSize;
-					verticalScrollBar.addEventListener(ScrollEvent.SCROLL, verticalScrollBar_scrollHandler);
-					verticalScrollBar.enabled = enabled;
-					if (verticalScrollBar is IInvalidating)
-						IInvalidating(verticalScrollBar).validateNow();
-
-					invalidateDisplayList();
-					invalidateViewMetricsAndPadding();
-
-					changed = true;
-
-					if (!horizontalScrollBar)
-						addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
-
-					// Listen for "mouseWheel" events on myself or any of my children
-					addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
-				}
-			}
-			else
-			{
-				if (verticalScrollBar)
-				{
-					verticalScrollBar.removeEventListener(ScrollEvent.SCROLL, verticalScrollBar_scrollHandler);
-
-					rawChildren.removeChild(DisplayObject(verticalScrollBar));
-					verticalScrollBar = null;
-
-					viewableHeight = scrollableHeight = 0;
-
-					if (_verticalScrollPosition != 0)
-					{
-						_verticalScrollPosition = 0;
-						scrollPositionChanged = true;
-					}
-
-					invalidateDisplayList();
-					invalidateViewMetricsAndPadding();
-
-					changed = true;
-
-					fm = focusManager;
-					if (!horizontalScrollBar && (!fm || fm.getFocus() != this))
-						removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
-
-					removeEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
-				}
-			}
-
-			// Create or destroy the whiteBox.
-			// If both scrollBars are active, there's an empty space
-			// between the two scrollBars in the lower right corner.
-			// The whiteBox fills that space, so that the container's
-			// children aren't visible when they scroll underneath.
-			if (horizontalScrollBar && verticalScrollBar)
-			{
-				if (!whiteBox)
-				{
-					whiteBox = new FlexShape();
-					whiteBox.name = "whiteBox";
-
-					var g:Graphics = whiteBox.graphics;
-					g.beginFill(0xFFFFFF);
-					g.drawRect(0, 0, verticalScrollBar.minWidth, horizontalScrollBar.minHeight);
-					g.endFill()
-
-					rawChildren.addChild(whiteBox);
-				}
-			}
-			else
-			{
-				if (whiteBox)
-				{
-					rawChildren.removeChild(whiteBox);
-					whiteBox = null;
-				}
-			}*/
-
-			return changed;
-		}

 		/**
 		 *  @private