Transferred from the Adobe Open Source Subversion Repository

Revision: 2672
Author:   egeorgie@adobe.com
Date:     2008-07-30T22:52:27.741630Z

Log Message:
-----------
Remove GraphicElement.bounds APIs in favor of measure

Reviewed by Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/graphics/GraphicTags_checkintests.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElementHostImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Line.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -56,58 +56,6 @@
 	 */
 	private var textBlockComposer:TextBlockComposer = new TextBlockComposer();

-	/**
-	 *  @private
-	 *  This flag is set to true by the text, width, and height setters,
-	 *  to indicate that the TextLines must be regenerated.
-	 *  The regeneration occurs when draw() is called or 'bounds' is read.
-	 */
-	private var invalid:Boolean = false;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden properties: GraphicElement
-	//
-	//--------------------------------------------------------------------------
-
-	//----------------------------------
-	//  bounds
-	//----------------------------------
-
-	/**
-	 *  @private
-	 */
-	private var _bounds:Rectangle = new Rectangle();
-
-    override public function get bounds():Rectangle
-	{
-		if (invalid)
-		{
-			compose();
-			invalid = false;
-		}
-
-		var w:Number;
-		var h:Number;
-
-		if (!isNaN(explicitWidth) && !isNaN(explicitHeight))
-		{
-			w = explicitWidth;
-			h = explicitHeight;
-		}
-		else
-		{
-			var r:Rectangle = textBlockComposer.actualBounds;
-			w = Math.ceil(r.width);
-			h = Math.ceil(r.height);
-		}
-
-		_bounds.width = w;
-		_bounds.height = h;
-
-		return _bounds;
-	}
-
 	//--------------------------------------------------------------------------
 	//
 	//  Overridden methods: GraphicElement
@@ -115,8 +63,19 @@
 	//--------------------------------------------------------------------------

 	/**
-	 *  @private
+	 *  @inheritDoc
 	 */
+    override protected function measure():void
+    {
+        var width:Number = !isNaN(explicitWidth) ? explicitWidth : Infinity;
+        var height:Number = !isNaN(explicitHeight) ? explicitHeight : Infinity;
+		compose(width, height);
+
+		var r:Rectangle = textBlockComposer.actualBounds;
+		measuredWidth = Math.ceil(r.width);
+		measuredHeight = Math.ceil(r.height);
+	}
+
 	/**
 	 *  @inheritDoc
 	 */
@@ -130,20 +89,6 @@
 		applyDisplayObjectProperties();
 	}

-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: TextGraphicElement
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	override protected function invalidateTextLines(cause:String):void
-	{
-		invalid = true;
-	}
-
 	//--------------------------------------------------------------------------
 	//
 	//  Methods


Pick the Mac's webcam where available, and don't barf if there are no webcams at all

--- src/CameraMan.as
+++ src/CameraMan.as
@@ -77,7 +77,14 @@
             trace('Nope size is ' + nope.width + ', ' + nope.height);
             trace('Nope size 2 is ' + nope.width + ', ' + nope.height);

-            cam = Camera.getCamera();
+            // Prefer the USB Video Class Video camera, since that's the webcam on the Mac.
+            var i:int = Camera.names.indexOf("USB Video Class Video");
+            cam = Camera.getCamera(i == -1 ? null : String(i));
+
+            if (cam == null) {
+                trace("No camera found? Indeed, there are " + Camera.names.length + " cameras");
+                return;
+            }

             // TODO: handle a missing camera
             // TODO: handle a "dead" camera (fps = 0?)


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

--- frameworks/projects/spark/src/spark/accessibility/DataGridAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/DataGridAccImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Fixed port loc glitch

Fixed port loc glitch

--- src/Displays/DPort.as
+++ src/Displays/DPort.as
@@ -16,6 +16,10 @@
 		public var port:Port;
 		public var layout:PortLayout;
 		protected var lastZoom:Number;
+
+		private var baseX:int;
+		private var baseY:int;
+
 		public function DPort(Layout:PortLayout) {
 			layout = Layout;
 			port = Layout.port;
@@ -38,9 +42,16 @@
 			}

 			lastZoom = U.zoom;
+			setPosition();
 		}

 		public function updatePosition(baseX:int, baseY:int):void {
+			this.baseX = baseX;
+			this.baseY = baseY;
+			setPosition();
+		}
+
+		private function setPosition():void {
 			x = baseX + layout.offset.x * U.GRID_DIM;
 			y = baseY + layout.offset.y * U.GRID_DIM;
 			if (layout.reversed) {


Added IconButton to Runner

Added IconButton to Runner

--- src/LAMLRunner.as
+++ src/LAMLRunner.as
@@ -3,7 +3,9 @@

 	import laml.display.Component;
 	import laml.display.HBox;
+	import laml.display.IconButton;
 	import laml.display.Label;
+	import laml.display.Row;
 	import laml.display.VBox;

 	public class LAMLRunner extends TestRunner {
@@ -11,7 +13,9 @@
 		private var hboxRef:HBox;
 		private var vboxRef:VBox;
 		private var componentRef:Component;
+		private var iconButtonRef:IconButton;
 		private var labelRef:Label;
+		private var rowRef:Row;

 		public function LAMLRunner() {
 			// start(clazz:Class, methodName:String, showTrace:Boolean)


added a note that clarifies this specific section of the function for me;

--- flexEditor/src/org/arisgames/editor/view/ItemEditorMediaPickerView.as
+++ flexEditor/src/org/arisgames/editor/view/ItemEditorMediaPickerView.as
@@ -130,7 +130,7 @@
                 m.type = o.type;
                 m.urlPath = o.url_path;
                 m.fileName = o.file_name;
-                m.isDefault = o.is_default;
+                m.isDefault = o.is_default; //for both default files and uploaded files

                 var node:String = "<node label='" + AppUtils.filterStringToXMLEscapeCharacters(m.name) + "' mediaId='" + m.mediaId + "' type='" + m.type + "' urlPath='" + m.urlPath + "' fileName='" + m.fileName + "' isDefault='" + m.isDefault + "'/>";


Transferred from the Adobe Open Source Subversion Repository

Revision: 20273
Author:   egeorgie@adobe.com
Date:     2011-02-10T19:00:29.569788Z

Log Message:
-----------
Update border of FlashComponent to 1 pixel (accidentally made it 2 pixels in last check-in)

QE notes:
Doc notes:
Bugs:
Reviewer: Ryan
Tests run: build, manual
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/authoringsupport/src/FlashContainerPlaceholder.as

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

--- frameworks/projects/authoringsupport/src/FlashContainerPlaceholder.as
+++ frameworks/projects/authoringsupport/src/FlashContainerPlaceholder.as
@@ -96,9 +96,9 @@
 		super.updateDisplayList(unscaledWidth, unscaledHeight);

 		// draw border
-		graphics.lineStyle(2, 0xCCCCCC);
+		graphics.lineStyle(1, 0xCCCCCC);
 		graphics.beginFill(0x000000, 0); // transparent fill for hit testing
-		graphics.drawRect(1, 1, unscaledWidth - 2, unscaledHeight - 2); // adjust for stroke
+		graphics.drawRect(0.5, 0.5, unscaledWidth - 1, unscaledHeight - 1); // adjust for stroke
 		graphics.endFill();

 		// position the one child.  we know we always have


attempt to fix build

attempt to fix build

--- frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
@@ -865,10 +865,10 @@
                 {
                     if (bundleObject[obj] == localeBundleNameString)
                     {
-						if (bundleObject is ResourceBundleProxy)
-							bundle = loadResourceBundleProxy(ResourceBundleProxy(bundleObject));
+						if (obj is ResourceBundleProxy)
+							bundle = loadResourceBundleProxy(ResourceBundleProxy(obj));
 						else
-							bundle = bundleObject as IResourceBundle;
+							bundle = obj as IResourceBundle;
                         break;
                     }
                 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17116
Author:   dloverin@adobe.com
Date:     2010-07-29T13:27:01.624740Z

Log Message:
-----------
Prevent sub-applications and modules from being pinned in memory by ResourceManager.

This set of changes fixes a module leak that is cause by resource bundles. The ResourceManager is a singleton the holds a reference to all resource bundles in the system. This includes sub-applications and modules. The leaks occurs when a sub-application or module defines a new resource bundle that is not in the application domain of the main application. Creating a new instance of this resource bundle creates a reference from the main application to the application domain of the sub-application or module, pinning it in memory.

The solution to the module leak problem is to modify the ResourceManager API to allow an application to opt-in to maintaining references to their own resource bundles instead of allowing ResourceManager to do it. Since the resource bundles are referenced by the applications or modules, the ResourceManager can keep a weak reference to the resource bundles which will allow the references to be garbage collected when the sub-applications or modules are garbage collected.

So how are does the ResourceManager allow you to opt-in? A useWeakReference parameter was added to both the addResourceBundle and installCompiledResourceBundles functions. The new parameter has a default value of "false" if no value is supplied. A value of "false" provides the old behavior so older applications compiling with the new API will see no change in behavior. A value of "true" for useWeakReference tells the ResourceManager to provide a weak reference with the agreement that the caller will provide a hard reference. Flex sub-applications and modules automatically opt-in to use the new weak reference capability.

The addResourceBundle function adds just the new useWeakReference. A value of true means the caller should store the passed resourceBundle in an application instance variable.

The installCompiledResourceBundles function also has a new parameter useWeakReference and now returns an Array (used to return void). The useWeakReference parameter has the same meaning as in addResourceBundle. The installCompiledResourceBundles function returns and array of resource bundles to give the caller and opportunity to had a hard reference to them.

QE notes: None.
Doc notes: None.
Bugs: SDK-24306
Reviewer: Alex (code), Gordon (API)
Tests run: checkintests, cyclone server
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/resources/IResourceManager.as</path>

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

--- frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
@@ -20,6 +20,7 @@
 import flash.system.ApplicationDomain;
 import flash.system.Capabilities;
 import flash.system.SecurityDomain;
+import flash.utils.Dictionary;
 import flash.utils.Timer;
 import mx.core.IFlexModuleFactory;
 import mx.core.mx_internal;
@@ -119,7 +120,7 @@

 		var info:Object = SystemManagerGlobals.info;
         if (info)
-		    processInfo(info);
+            processInfo(info, false);

         if (SystemManagerGlobals.topLevelSystemManagers.length)
 		    SystemManagerGlobals.topLevelSystemManagers[0].
@@ -132,6 +133,13 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @private
+     *
+     *  The dictionary to hold all of the weak reference resource bundles.
+     */
+    private var bundleDictionary:Dictionary;
+
     /**
      *  @private
      *  A map whose keys are locale strings like "en_US"
@@ -154,7 +162,7 @@
      *  @private
      */
     private var initializedForNonFrameworkApp:Boolean = false;
-
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -243,15 +251,24 @@
      *  If a bundle for a given locale and bundle name already exists
      *  in the ResourceManager already exists, it does not get replaced.
      *  This can happen when a code module gets loaded into an application.
+     *
+     *  When sub-applications and modules install their resource bundles
+     *  they set useWeakReference = true. Any new resource bundles they
+     *  create will be weak referenced by the ResourceManager. The
+     *  sub-application or module will then provide a hard reference
+     *  to the returned Array of resource bundles to keep them from
+     *  being garbage collected.
      */
     public function installCompiledResourceBundles(
                                 applicationDomain:ApplicationDomain,
                                 locales:Array /* of String */,
-                                bundleNames:Array /* of String */):void
+                                bundleNames:Array /* of String */,
+                                useWeakReference:Boolean = false):Array
     {
         //trace("locales", locales);
         //trace("bundleNames", bundleNames);
-
+        var bundles:Array = [];
+        var bundleCount:uint = 0;
         var n:int = locales ? locales.length : 0;
         var m:int = bundleNames ? bundleNames.length : 0;

@@ -265,10 +282,13 @@
             {
                 var bundleName:String = bundleNames[j];

-                installCompiledResourceBundle(
-                    applicationDomain, locale, bundleName);
+                bundles[bundleCount++] = installCompiledResourceBundle(
+                    applicationDomain, locale, bundleName,
+                    useWeakReference);
             }
         }
+
+        return bundles;
     }

     /**
@@ -276,7 +296,8 @@
      */
     private function installCompiledResourceBundle(
                                 applicationDomain:ApplicationDomain,
-                                locale:String, bundleName:String):void
+                                locale:String, bundleName:String,
+                                useWeakReference:Boolean = false):IResourceBundle
     {
         var packageName:String = null;
         var localName:String = bundleName;
@@ -289,8 +310,14 @@

         // If a bundle with that locale and bundle name already exists
         // in the ResourceManager, don't replace it.
-        if (getResourceBundle(locale, bundleName))
-            return;
+        // If we want to install a  weakReferenceDictionary then don't rely on
+        // a weak reference dictionary because it may go way when the
+        // application goes away.
+        var resourceBundle:IResourceBundle = getResourceBundleInternal(locale,
+                                                    bundleName,
+                                                    useWeakReference);
+        if (resourceBundle)
+            return resourceBundle;

         // The autogenerated resource bundle classes produced by the
         // mxmlc and compc compilers have names that incorporate
@@ -341,27 +368,37 @@
         }

         // Create an instance of the bundle class.
-        var resourceBundle:ResourceBundle =
-            ResourceBundle(new bundleClass());
+        resourceBundle = ResourceBundle(new bundleClass());

         // In case we just created a ResourceBundle from a Flex 2 SWC,
         // set its locale and bundleName, because the old constructor
         // didn't used to do this.
-        resourceBundle._locale = locale;
-        resourceBundle._bundleName = bundleName;
+        ResourceBundle(resourceBundle)._locale = locale;
+        ResourceBundle(resourceBundle)._bundleName = bundleName;

         // Add that resource bundle instance to the ResourceManager.
-        addResourceBundle(resourceBundle);
+        addResourceBundle(resourceBundle, useWeakReference);
+
+        return resourceBundle;
     }

     // FocusEvent is used just so we can add a relatedObject
 	private function newChildApplicationHandler(event:FocusEvent):void
 	{
 		var info:Object = event.relatedObject["info"]();
-        processInfo(info);
+        var weakReference:Boolean = false;
+        if ("_resourceBundles" in event.relatedObject)
+            weakReference = true;
+
+        // If the application has a "_resourceBundles" object for us to put
+        // the bundles into then we will. Otherwise have the ResourceManager
+        // create a hard reference to the resources.
+        var bundles:Array = processInfo(info, weakReference);
+        if (weakReference)
+            event.relatedObject["_resourceBundles"] = bundles;
     }

-    private function processInfo(info:Object):void
+    private function processInfo(info:Object, useWeakReference:Boolean):Array
     {
 		var compiledLocales:Array = info["compiledLocales"];

@@ -383,8 +420,9 @@
 		var compiledResourceBundleNames:Array /* of String */ =
 			info["compiledResourceBundleNames"];

-		installCompiledResourceBundles(
-			applicationDomain, compiledLocales, compiledResourceBundleNames);
+		var bundles:Array = installCompiledResourceBundles(
+			applicationDomain, compiledLocales, compiledResourceBundleNames,
+            useWeakReference);

 		// If the localeChain wasn't specified in the FlashVars of the SWF's
 		// HTML wrapper, or in the query parameters of the SWF URL,
@@ -397,6 +435,7 @@
 		if (!localeChain)
 			initializeLocaleChain(compiledLocales);

+        return bundles;
 	}

     /**
@@ -554,7 +593,8 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function addResourceBundle(resourceBundle:IResourceBundle):void
+    public function addResourceBundle(resourceBundle:IResourceBundle,
+                                      useWeakReference:Boolean = false):void
     {
         var locale:String = resourceBundle.locale;
         var bundleName:String = resourceBundle.bundleName;
@@ -562,7 +602,20 @@
         if (!localeMap[locale])
             localeMap[locale] = {};

-        localeMap[locale][bundleName] = resourceBundle;
+        if (useWeakReference)
+        {
+            if (!bundleDictionary)
+            {
+                bundleDictionary = new Dictionary(true);
+            }
+
+            bundleDictionary[resourceBundle] = locale + bundleName;
+            localeMap[locale][bundleName] = bundleDictionary;
+        }
+        else
+        {
+            localeMap[locale][bundleName] = resourceBundle;
+        }
     }

     /**
@@ -575,12 +628,52 @@
      */
     public function getResourceBundle(locale:String,
                                       bundleName:String):IResourceBundle
+    {
+        return getResourceBundleInternal(locale, bundleName, false);
+    }
+
+    /**
+     *  @private
+     *
+     *  @param ignoreWeakReferenceBundles if true, do not search weak
+     *  reference bundles.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    private function getResourceBundleInternal(locale:String,
+                                      bundleName:String,
+                                      ignoreWeakReferenceBundles:Boolean):IResourceBundle
     {
         var bundleMap:Object = localeMap[locale];
         if (!bundleMap)
             return null;
+
+        var bundle:IResourceBundle = null;
+        var bundleObject:Object = bundleMap[bundleName];
+        if (bundleObject is Dictionary)
+        {
+            if (ignoreWeakReferenceBundles)
+                return null;

-        return bundleMap[bundleName];
+            var localeBundleNameString:String = locale + bundleName;
+            for (var obj:Object in bundleObject)
+            {
+                if (bundleObject[obj] == localeBundleNameString)
+                {
+                    bundle = obj as IResourceBundle;
+                    break;
+                }
+            }
+        }
+        else
+        {
+            bundle = bundleObject as IResourceBundle;
+        }
+
+        return bundle;
     }

     /**
@@ -701,11 +794,30 @@
             if (!bundleMap)
                 continue;

-            var bundle:IResourceBundle = bundleMap[bundleName];
-            if (!bundle)
+            var bundleObject:Object = bundleMap[bundleName];
+            if (!bundleObject)
                 continue;

-            if (resourceName in bundle.content)
+            var bundle:IResourceBundle = null;
+
+            if (bundleObject is Dictionary)
+            {
+                var localeBundleNameString:String = locale + bundleName;
+                for (var obj:Object in bundleObject)
+                {
+                    if (bundleObject[obj] == localeBundleNameString)
+                    {
+                        bundle = obj as IResourceBundle;
+                        break;
+                    }
+                }
+            }
+            else
+            {
+                bundle = bundleObject as IResourceBundle;
+            }
+
+            if (bundle && resourceName in bundle.content)
                 return bundle;
         }


allow domain *

allow domain *

在使用时，srs_player可能和所在页面部署在不同的域名下。

所以在此处添加跨域许可。

--- trunk/research/players/srs_player/src/srs_player.as
+++ trunk/research/players/srs_player/src/srs_player.as
@@ -79,6 +79,8 @@

             this.stage.addEventListener(FullScreenEvent.FULL_SCREEN, this.user_on_stage_fullscreen);

+            Security.allowDomain("*");
+
             this.addChild(this.control_fs_mask);
             this.control_fs_mask.buttonMode = true;
             this.control_fs_mask.addEventListener(MouseEvent.CLICK, user_on_click_video);
@@ -591,4 +593,4 @@
 			ExternalInterface.call("console.log", msg);
 		}
     }
-}+}


Use apply() properly Call back into a particular camera by cameraid Call back out on IO or security error when sending

--- src/CameraMan.as
+++ src/CameraMan.as
@@ -25,6 +25,7 @@
         private var videoface:Video;
         private var cam:Camera;
         private var photo:Bitmap;
+        private var cameraid:String;
         private var sendto:String;
         private var movieSize:Point;

@@ -35,6 +36,7 @@

             trace("START ME UP");
             sendto = this.loaderInfo.parameters.sendto;
+            cameraid = this.loaderInfo.parameters.cameraid;
             configureCamera(null);

             if (ExternalInterface.available) {
@@ -89,10 +91,11 @@
         }

         public function callback(eventname:String, ... args) : void {
-            eventname = "cameraman._" + eventname;
-            var callargs:Array = [eventname] + args;
+            eventname = "cameraman.cameras['" + cameraid + "']._" + eventname;
+            trace("Calling back to " + eventname + " with: " + args);
+            args.unshift(eventname);
             if (ExternalInterface.available)
-                ExternalInterface.call.apply(callargs);
+                ExternalInterface.call.apply(null, args);
         }

         public function takePhoto() : void {
@@ -157,10 +160,12 @@

         public function sendingIOError(event:IOErrorEvent) : void {
             trace("IOError: " + event.type + " " + event.text + " " + event.target + " " + event.target.bytesLoaded);
+            this.callback('errorSending', 'IO error: ' + event.text);
         }

         public function sendingSecurityError(event:SecurityErrorEvent) : void {
             trace("SecurityError: " + event.text + " " + event.target);
+            this.callback('errorSending', 'Security error: ' + event.text);
         }

         public function sentPhoto(event:Event) : void {


Set up the camera opportunistically, either in the constructor or on the stage resize event

--- src/CameraMan.as
+++ src/CameraMan.as
@@ -29,11 +29,13 @@
         private var movieSize:Point;

         public function CameraMan() {
+            stage.addEventListener(Event.RESIZE, configureCamera);
             stage.scaleMode = StageScaleMode.NO_SCALE;
             stage.align = StageAlign.TOP_LEFT;

             trace("START ME UP");
-            this.loaderInfo.addEventListener("init", init);
+            sendto = this.loaderInfo.parameters.sendto;
+            configureCamera(null);

             if (ExternalInterface.available) {
                 ExternalInterface.addCallback("takePhoto", takePhoto);
@@ -41,21 +43,38 @@
             }
         }

-        public function init(event:Event) : void {
-            trace("initizing");
-            sendto = this.loaderInfo.parameters.sendto;
+        public function awesome(event:Event) : void {
+            trace("~~ AWESOME " + event.target.muted);
+        }

-            movieSize = new Point(this.loaderInfo.width, this.loaderInfo.height);
-            trace("Movie size is " + this.loaderInfo.width + ", " + this.loaderInfo.height);
-
+        public function createCamera(event:Event) : void {
             cam = Camera.getCamera();
-            cam.setMode(movieSize.x, movieSize.y, 15);
-            trace("Camera size is " + cam.width + ", " + cam.height);
+            cam.addEventListener("status", awesome);
+            trace("got camera " + cam.name + ". muted: " + cam.muted
+                + '. size: ' + cam.width + ',' + cam.height + '. fps: '
+                + cam.currentFPS + '. max fps: ' + cam.fps + ' total cameras: ' + Camera.names.length);
+            cam.setMode(stage.stageWidth, stage.stageHeight, 15);

             videoface = new Video(cam.width, cam.height);
             videoface.attachCamera(cam);
+            this.addChild(videoface);
+        }

-            this.addChild(videoface);
+        public function configureCamera(event:Event) : void {
+            trace("o hai configure camera!!");
+
+            if (stage.stageWidth == 0) {
+                trace("stage is zero-width, so skip");
+                return;
+            }
+
+            if (!cam)
+                return this.createCamera(event);
+
+            cam.setMode(stage.stageWidth, stage.stageHeight, 15);
+            trace("Camera size is " + cam.width + ", " + cam.height);
+            videoface.width = cam.width;
+            videoface.height = cam.height;
         }

         public function takePhoto() : void {


added basic mouse/single touch controls.

--- src/PlayState.as
+++ src/PlayState.as
@@ -113,7 +113,7 @@
             //create bar background
             add(new FlxSprite(0, 0, BarSprite));

-            FlxG.mouse.hide();
+            //FlxG.mouse.hide();

             //set life count
             lifeCounter = new FlxText(400, 5, 200, lives.toString());
@@ -197,7 +197,10 @@

         override public function update():void
         {
-            //test for frozen (stop animations except for one group, then go to prepare state)
+            /* --State ending animation runner.--
+                When an event occurs to end the state, the gameplay logic is suspended, and
+                a specific sequence of animations are run.
+            */
             if (frozen)
             {
                 //Deal with animation chains.
@@ -296,12 +299,12 @@
                 }
                 return ;
             }
+            /* --End of EOS animation -- */

             //make sure text displays are up to date
             lifeCounter.text = lives.toString();
             scoreDisp.text = FlxG.score.toString();

-
             //test for done switching
             if (isSwitching && player.finished)
             {
@@ -320,21 +323,46 @@

             var pos:FlxPoint;

-            //Handle input.
-            if (FlxG.keys.justPressed("SPACE") && player.x == curBase.x && player.y == curBase.y)
-            { //run the filling animation
+            /* -- Input Handling --
+                deals with keyboard events and mouse events.
+                This lets controls be either keyboard or mouse or even touchscreen.
+            */
+
+            var pressedTapper:Boolean = !isFilling && player.x == curBase.x && player.y == curBase.y &&
+                                            (FlxG.keys.SPACE || (FlxG.mouse.pressed() &&
+                                                taps[barNum].overlapsPoint(FlxG.mouse.x, FlxG.mouse.y)));
+
+            var releasedTapper:Boolean = isFilling && (FlxG.keys.justReleased("SPACE") || FlxG.mouse.justReleased());
+
+            var canceledTapper:Boolean = isFilling && FlxG.mouse.pressed() && !taps[barNum].overlapsPoint(FlxG.mouse.x, FlxG.mouse.y);
+
+            var choseTapUp:Boolean = !isSwitching && (FlxG.keys.justPressed("UP") || (FlxG.mouse.pressed() &&
+                                                            taps[(barNum + 3) % 4].overlapsPoint(FlxG.mouse.x, FlxG.mouse.y)));
+
+            var choseTapDown:Boolean = !isSwitching && (FlxG.keys.justPressed("DOWN") || (FlxG.mouse.pressed() &&
+                                                            taps[(barNum + 1) % 4].overlapsPoint(FlxG.mouse.x, FlxG.mouse.y)));
+
+            var goLeft:Boolean = player.x > curBar.left && (FlxG.keys.LEFT || (FlxG.mouse.pressed() && FlxG.mouse.x < player.x));
+            var goRight:Boolean = player.x < curBase.x && (FlxG.keys.RIGHT || (FlxG.mouse.pressed() && FlxG.mouse.x > player.right));
+
+            //run the filling animation
+            if (pressedTapper) //(FlxG.keys.justPressed("SPACE") && player.x == curBase.x && player.y == curBase.y)
+            {
                 isFilling=true;
                 taps[barNum].play("filling");
                 player.frame=11;
-            }
-            if (isFilling && !taps[barNum].finished && FlxG.keys.justReleased("SPACE"))
-            { //mug didn't fill - player let go of tap too early.
+                player.facing = FlxSprite.RIGHT;
+            }
+            //mug didn't fill - player let go of tap too early or canceled.
+            if ((releasedTapper && !taps[barNum].finished) || canceledTapper) //(isFilling && !taps[barNum].finished && FlxG.keys.justReleased("SPACE"))
+            {
                 player.frame=0;
                 taps[barNum].frame=0;
                 isFilling=false;
             }
-            else if (isFilling && FlxG.keys.justReleased("SPACE"))
-            { //run the throwing animation, and throw a mug.
+            //run the throwing animation, and throw a mug.
+            else if (releasedTapper) //(isFilling && FlxG.keys.justReleased("SPACE"))
+            {
                 player.play("throwing");
                 taps[barNum].frame=0;
                 isFilling=false;
@@ -359,52 +387,77 @@
                 mug.velocity.x = -1*mugSpeed; //send it to the left
                 mug.velocity.y = 0;
             }
-            //move the player up or down a bar.
-            else if (FlxG.keys.justPressed("UP") && !isFilling && !isSwitching)
-            {
+            /* Bar movements - these events cancel a filling operation and run some animation.*/
+            //move the player up one bar. The !isSwitching makes it one bar at a time.
+            else if (choseTapUp) //(FlxG.keys.justPressed("UP") && !isSwitching)
+            {
+                if (isFilling)
+                {
+                    isFilling = false;
+                    taps[barNum].frame = 0;
+                }
                 isSwitching=true;
                 player.facing = FlxSprite.RIGHT;
-                barNum--;
-                if (barNum < 0)
-                    barNum = bars.length - 1;
+                barNum = (barNum + 3) % 4;
+                /*if (barNum < 0)
+                    barNum = bars.length - 1;*/
                 player.play("switching");
             }
-            else if (FlxG.keys.justPressed("DOWN")  && !isFilling && !isSwitching)
-            {
+            //move the player down one bar.
+            else if (choseTapDown) //(FlxG.keys.justPressed("DOWN") && !isSwitching)
+            {
+                if (isFilling)
+                {
+                    isFilling = false;
+                    taps[barNum].frame = 0;
+                }
                 isSwitching=true;
                 player.facing = FlxSprite.RIGHT;
-                barNum++;
-                if (barNum >= bars.length)
-                    barNum = 0;
+                barNum = (barNum + 1) % 4;
+                /*if (barNum >= bars.length)
+                    barNum = 0;*/
                 player.play("switching");
             }
-            //move player left or right along bar
-            else if (FlxG.keys.LEFT && player.x > curBar.left && !isFilling)
-            {
+            //move player left along bar
+            else if (goLeft) //(FlxG.keys.LEFT && player.x > curBar.left)
+            {
+                if (isFilling)
+                {
+                    isFilling = false;
+                    taps[barNum].frame = 0;
+                }
                 player.facing = FlxSprite.RIGHT;
                 player.x -= playerStep;
                 if (!isSwitching)
                     player.play("running");
             }
-            else if (FlxG.keys.RIGHT && player.x < curBase.x && !isFilling)
-            {
+            //move player right along bar
+            else if (goRight) //(FlxG.keys.RIGHT && player.x < curBase.x)
+            {
+                if (isFilling)
+                {
+                    isFilling = false;
+                    taps[barNum].frame = 0;
+                }
                 player.facing = FlxSprite.LEFT;
                 player.x += playerStep;
                 if (!isSwitching)
                     player.play("running");
             }

-            //stop the running.
-            if (!FlxG.keys.LEFT && !FlxG.keys.RIGHT && !isFilling && !isSwitching && (FlxG.keys.justReleased("LEFT") || FlxG.keys.justReleased("RIGHT")))
+            //stops the running.
+            if (!goLeft && !goRight && !isFilling && !isSwitching && (FlxG.keys.justReleased("LEFT") || FlxG.keys.justReleased("RIGHT") || FlxG.mouse.justReleased()))
             {
                 player.facing = FlxSprite.RIGHT;
                 player.frame = 0;
                 player.finished=true;
             }

-            //IMPORTANT.
+            /*--IMPORTANT.--*/
             super.update();

+            /* --Overlap/collision detection-- */
+
             //check overlap of player and empty mugs
             FlxU.overlap(player, curMugs, playerMugged);

@@ -428,6 +481,9 @@
                 curBar = bars[i];
                 curMugs = barMugs[i];
                 curPatrons = barPatrons[i];
+
+                //check for collisions between mugs and patrons
+                FlxU.collide(curMugs, curPatrons);

                 //see if we can add a patron at this time.
                 if (patronTime && curPatrons.countLiving() < maxPatrons)
@@ -440,7 +496,7 @@
                         //object that isn't in play.
                         pos = patronPositions[i];
                         var patron:Patron = curPatrons.getFirstAvail() as Patron;
-                        if (!patron) //I don't think this will ever be run,
+                        /*if (!patron) //I don't think this will ever be true,
                         { // now that maximum patrons for each bar are deployed from the start.
                             //there isn't one available, so make a new one with right props
                             patron = new Patron(pos.x, pos.y, curBar.left, curBar.right);
@@ -453,20 +509,17 @@
                             curPatrons.add(patron);
                         }
                         else
-                        {   //get the one we found set up right.
-                            patron.inPushBack = false;
-                            patron.startPos = pos;
-                        }
+                        {*/
+                        //get the one we found set up right.
+                        patron.inPushBack = false;
+                        patron.startPos = pos;
+                        //}
                         //send it along
                         patron.prepare();
                         patronCount++;
                         patron.play("walk");
                     }
                 }
-
-                //check for collisions between mugs and patrons
-                //FlxU.overlap(curMugs, curPatrons, patronMugged);
-                FlxU.collide(curMugs, curPatrons);
             }

         }
@@ -483,7 +536,6 @@
             //don't stop the mug if patron's already got one.
             if (patron.inPushBack)
                 return ;
-

             mug.kill();
             //push back patron, and let it animate. when it finishes, it'll call pushbackComplete
@@ -492,7 +544,7 @@
             patron.collideRight = false;
             patron.targetX = patron.x - pushBack;
             patron.play("catch");
-            //count mugs.
+            //count mugs; is it time to drop money?
             mugsGiven++;
             if (mugsGiven >= whenMoney)
             {
@@ -516,10 +568,9 @@
             var curBar:FlxRect = bars[patron.whichBar];
             var curMugs:FlxGroup = barMugs[patron.whichBar];
             var curMoney:FlxGroup = moneyOnBars[patron.whichBar];
-
             var pos:FlxPoint = new FlxPoint(patron.right + 1, mugPositions[patron.whichBar].y)
-            // the only difference between this bit of code and the code for
-            //handling spacebar is the color,placement, and direction of the mug.
+
+            // Same principle as mug generator for filling.
             var mug:BeerMug = curMugs.getFirstAvail() as BeerMug;
             if (!mug)
             {
@@ -537,7 +588,8 @@

             pos.x = patron.x;
             pos.y = patron.bottom;
-            //check up on dropping money. TODO add animation for patron dropping money.
+
+            //check up on whether or not the patron is supposed to drop money.
             if (patron.doBurp)
             {
                 patron.doBurp = false;
@@ -581,15 +633,15 @@
             lives--;
             player.play("dropped");

+            //mug should do a little arc before crashing on floor.
             mug.dropping = true;
             mug.angle = 315;
             mug.targetY = mug.y + 40; //whatever the "height" of the bar is.
-            //mug.velocity.x = -30;
-            //mug.velocity.y = 120;
             mug.acceleration.y=1000;
+
             if (lives < 0)
                 displayGameOver();
-            return false;
+            return false;//hang onto the mug
         }

         /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.charts.chartClasses
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/managers/DragManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/DragManagerImpl.as
@@ -171,6 +171,11 @@
 	/**
 	 *  Read-only property that returns true
 	 *  if a drag is in progress.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get isDragging():Boolean
 	{
@@ -216,6 +221,11 @@
 	 *  drag image. This argument is optional. If omitted, the default alpha
 	 *  value is 0.5. A value of 0.0 indicates that the image is transparent;
 	 *  a value of 1.0 indicates it is fully opaque.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function doDrag(
 			dragInitiator:IUIComponent,
@@ -345,6 +355,11 @@
 	 *
DragManager.acceptDragDrop(event.target);

 	 *
 	 *	@param target The drop target accepting the drag.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function acceptDragDrop(target:IUIComponent):void
 	{
@@ -370,6 +385,11 @@
 	 *  DragManager.LINK, or DragManager.NONE.
 	 *
 	 *  @param feedback The type of feedback indicator to display.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function showFeedback(feedback:String):void
 	{
@@ -399,6 +419,11 @@
 	 *  @return  Possible return values are DragManager.COPY,
 	 *  DragManager.MOVE,
 	 *  DragManager.LINK, or DragManager.NONE.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function getFeedback():String
 	{
@@ -480,6 +505,11 @@

 	/**
 	 *  Marshal dispatchEvents
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	private function marshalDispatchEventHandler(event:Event):void
 	{
@@ -516,6 +546,11 @@

 	/**
 	 *  Marshal dragManager
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	private function marshalDragManagerHandler(event:Event):void
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 7774
Author:   jszeto@adobe.com
Date:     2009-06-12T00:38:51.011501Z

Log Message:
-----------
GradientGlowFilter bug fix for default type

http://bugs.adobe.com/jira/browse/SDK-21734 - GradientGlowFilter type should default to “outer”

The constructor was calling the super constructor at the end, which caused the class variables to get reset to the parent class backing variable default values. In the process, I also noticed that the filter classes weren’t calling super() in their constructors, so I fixed that issue as well.

QE Notes: None
Doc Notes: None
Bugs: SDK-21734
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/GradientBevelFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
+++ frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
@@ -48,6 +48,8 @@

 	public function ColorMatrixFilter(matrix:Array = null)
 	{
+		super();
+
 		if (matrix != null)
 		{
 			this.matrix = matrix;


367 ArrayUtil.mapToProperty wasn't working with Vectors. Other functions that use Array.map likely have this problem as well.

--- raw/src/org/yellcorp/lib/core/ArrayUtil.as
+++ raw/src/org/yellcorp/lib/core/ArrayUtil.as
@@ -190,11 +190,13 @@
      */
     public static function mapToProperty(array:*, property:*):Array
     {
-        var mapper:Function = function (m:*, i:int, a:*):*
-        {
-            return m[property];
-        };
-        return array.map(mapper);
+        var result:Array = [ ];
+
+        for each (var member:* in array)
+        {
+            result.push(member[property]);
+        }
+        return result;
     }

     /**


add a very temporary Nod-specific DeviceType

DeviceType is going to be ripped out soon and replaced with a more
flexible scaling system.

--- exporter/src/main/as/flump/export/DeviceType.as
+++ exporter/src/main/as/flump/export/DeviceType.as
@@ -13,6 +13,8 @@
     public static const IPAD :DeviceType = new DeviceType("IPAD", "iPad", "", 1024, 768);
     public static const IPAD_RETINA :DeviceType = new DeviceType("IPAD_RETINA", "iPad Retina",
         "", 2048, 1536);
+    public static const NOD_TEMP :DeviceType = new DeviceType("NOD_TEMP", "Nod-temp", "", 960*2.67,
+        640*2.67);

     finishedEnumerating(DeviceType);


* GridCellRenderer 增加了斜线

* GridCellRenderer 增加了斜线

--- age/src/age/renderers/GridCellRenderer.as
+++ age/src/age/renderers/GridCellRenderer.as
@@ -98,6 +98,8 @@
 			g.beginFill(0x999999);
 			g.lineStyle(1, 0xdddddd, lineThickness);
 			g.drawRect(lineThickness, lineThickness, width - lineThickness * 2, height - lineThickness * 2);
+			g.moveTo(0, height - lineThickness * 2);
+			g.lineTo(width - lineThickness * 2, 0);
 			g.endFill();
 			var b:BitmapData = new BitmapData(width, height, true, 0);
 			b.draw(s);


Transferred from the Adobe Open Source Subversion Repository

Revision: 17922
Author:   matamel@adobe.com
Date:     2010-09-29T15:11:47.767879Z

Log Message:
-----------
Bug: SDK-27883 - Memory leak in PollingChannel.as
QA: Yes
Doc: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as

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

--- frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as
@@ -810,7 +810,8 @@
     override protected function resultHandler(msg:IMessage):void
     {
         var pollingChannel:PollingChannel = channel as PollingChannel;
-
+        channel.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, channelPropertyChangeHandler);
+
         if (suppressHandlers)
         {
             if (Log.isDebug())
@@ -889,6 +890,8 @@
      */
     override protected function statusHandler(msg:IMessage):void
     {
+        channel.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, channelPropertyChangeHandler);
+
         if (suppressHandlers)
         {
             if (Log.isDebug())


Changed FP.engine to Engine type instead of Sprite.

--- net/flashpunk/FP.as
+++ net/flashpunk/FP.as
@@ -625,7 +625,7 @@

 		// Global Flash objects.
 		/** @private */ public static var stage:Stage;
-		/** @private */ public static var engine:Sprite;
+		/** @private */ public static var engine:Engine;

 		// Global objects used for rendering, collision, etc.
 		/** @private */ public static var point:Point = new Point;


TooltipHelper, more helper refactoring, controller/view refactoring part 2

--- test/AllTests.as
+++ test/AllTests.as
@@ -21,6 +21,7 @@
 	import ras3r.reaction_view.helpers.RuleHelperTest;
 	import ras3r.reaction_view.helpers.TextFieldHelperTest;
 	import ras3r.reaction_view.helpers.TextInputHelperTest;
+	import ras3r.reaction_view.helpers.TooltipHelperTest;
 	import ras3r.reaction_view.helpers.UIComponentHelperTest;
 	import ras3r.ReactionControllerTest;
 	import ras3r.ReactionViewTest;
@@ -43,6 +44,7 @@
 			add(ras3r.reaction_view.helpers.RuleHelperTest);
 			add(ras3r.reaction_view.helpers.TextFieldHelperTest);
 			add(ras3r.reaction_view.helpers.TextInputHelperTest);
+			add(ras3r.reaction_view.helpers.TooltipHelperTest);
 			add(ras3r.reaction_view.helpers.UIComponentHelperTest);
 			add(ras3r.ReactionControllerTest);
 			add(ras3r.ReactionViewTest);


Bug 706799: driveby fix, establish code_length member (r=fklockii).

--- utils/abcdump.as
+++ utils/abcdump.as
@@ -1164,6 +1164,7 @@
                 if (code_length > 0) {
                     m.code_offset = data.position;
                     data.readBytes(m.code, 0, code_length)
+                    m.code_length = code_length;
                 }
                 var ex_count = readU32()
                 if (ex_count > 0) {


Fix 619922 - exactgc.as needs to handle fields defined multiple ways (r=fklockii)

--- utils/exactgc.as
+++ utils/exactgc.as
@@ -431,6 +431,16 @@
 // The cls attribute is implicitly present in the C++ source code and
 // is inserted at the beginning of the attribute array by the code
 // that constructs GCField instances.
+//
+// Any condition on the field is considered part of the field's name,
+// to support typical cases like these:
+//
+// #ifdef BLAH
+//   Bletch* GC_POINTER_IFDEF(p, BLAH)
+// #else
+//   Blotch* GC_POINTER_IFNDEF(p, BLAH)
+// #endif
+
 class GCField
 {
     function GCField(tag, attr) {
@@ -1021,6 +1031,10 @@
         if (!cppClassMap.hasOwnProperty(s.cls))
             fail("Bad field annotation - unknown class: " + s.cls + " in " + s);
         var c = cppClassMap[s.cls];
+        var fieldname = s.name;
+        if (s.if_) fieldname += "!if!" + s.if_;
+        if (s.ifdef) fieldname += "!ifdef!" + s.ifdef;
+        if (s.ifndef) fieldname += "!ifndef!" + s.ifndef;
         if (isVariableLength(s)) {
             // FIXME: It would be good to loosen the following restriction up; it
             // would be sufficient to decree that only one of the arrays can be
@@ -1030,14 +1044,14 @@
             // were to have a trailing array as well then we'd run into this restriction.
             if (c.variable_length_field != null)
                 fail("Arbitrary restriction: More than one variable length field on " + c);
-            if (c.fieldMap.hasOwnProperty(s.name))
-                fail("Duplicate field name: " + s.name);
+            if (c.fieldMap.hasOwnProperty(fieldname))
+                fail("Duplicate field name: " + s.name + "; canonically " + fieldname);
             c.variable_length_field = s;
         }
         else {
-            if (c.fieldMap.hasOwnProperty(s.name) || (c.variable_length_field != null && c.variable_length_field.name == s.name))
-                fail("Duplicate field name: " + s.name);
-            c.fieldMap[s.name] = s;
+            if (c.fieldMap.hasOwnProperty(fieldname) || (c.variable_length_field != null && c.variable_length_field.name == fieldname))
+                fail("Duplicate field name: " + s.name + "; canonically " + fieldname);
+            c.fieldMap[fieldname] = s;
             c.fieldList.push(s);
         }
     }


fix coding style

fix coding style

--- src/aerys/minko/render/shader/part/phong/LightAwareShaderPart.as
+++ src/aerys/minko/render/shader/part/phong/LightAwareShaderPart.as
@@ -109,7 +109,8 @@
 		{
 			var vertexTangent : SFloat = vertexAnimationShaderPart.getAnimatedVertexTangent();

-			if (meshBindings.getConstant(BasicProperties.TRIANGLE_CULLING, TriangleCulling.BACK) != TriangleCulling.BACK)
+			if (meshBindings.getConstant(BasicProperties.TRIANGLE_CULLING, TriangleCulling.BACK)
+                != TriangleCulling.BACK)
 				vertexTangent.negate();

 			return vertexTangent;


When assigned a clipRect, if the clipRect's width or height is set to 0, it will assume the size of the provided source image.

--- net/flashpunk/graphics/Image.as
+++ net/flashpunk/graphics/Image.as
@@ -69,7 +69,13 @@
 			}
 			else if (source is BitmapData) _source = source;
 			if (!_source) throw new Error("Invalid source image.");
-			_sourceRect = clipRect ? clipRect : _source.rect;
+			_sourceRect = _source.rect;
+			if (clipRect)
+			{
+				if (!clipRect.width) clipRect.width = _sourceRect.width;
+				if (!clipRect.height) clipRect.height = _sourceRect.height;
+				_sourceRect = clipRect;
+			}
 			_buffer = new BitmapData(_sourceRect.width, _sourceRect.height, true, 0);
 			_bufferRect = _buffer.rect;
 			update();


Removed unwanted zoomToSubset option (was messing up old session
states).

Change-Id: Ibad11c980d76bbac61a72f141fd6e276d9f476f1

--- WeaveUISpark/src/weave/visualization/plotters/HistogramPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/HistogramPlotter.as
@@ -105,7 +105,6 @@
 		public static const AG_SUM:String = 'sum';
 		public static const AG_MEAN:String = 'mean';

-		public const zoomToSubset:LinkableBoolean = registerSpatialProperty(new LinkableBoolean(true));
 		private var aggregateStats:IColumnStatistics;

 		private function getAggregateValue(keys:Array):Number
@@ -140,7 +139,7 @@
 		override public function getBackgroundDataBounds(output:IBounds2D):void
 		{
 			var binCol:BinnedColumn = internalBinnedColumn;
-			if (binCol && !zoomToSubset.value)
+			if (binCol)
 			{
 				var maxHeight:Number;
 				switch (aggregationMethod.value)


Test for PropertyUtil.copyArrayCollection() method.

--- dolly-framework/src/test/actionscript/dolly/utils/PropertyUtilTests.as
+++ dolly-framework/src/test/actionscript/dolly/utils/PropertyUtilTests.as
@@ -63,5 +63,21 @@
 		assertEquals(targetArrayList.getItemAt(3), 3);
 		assertEquals(targetArrayList.getItemAt(4), 4);
 	}
+
+	[Test]
+	public function copyingOfArrayCollection():void {
+		PropertyUtil.copyArrayCollection(sourceObj, targetObj, "arrayCollection");
+
+		const targetArrayCollection:ArrayCollection = targetObj.arrayCollection;
+
+		assertNotNull(targetArrayCollection);
+		assertFalse(targetObj.arrayList == sourceObj.arrayList);
+		assertEquals(targetArrayCollection.length, 5);
+		assertEquals(targetArrayCollection.getItemAt(0), 0);
+		assertEquals(targetArrayCollection.getItemAt(1), 1);
+		assertEquals(targetArrayCollection.getItemAt(2), 2);
+		assertEquals(targetArrayCollection.getItemAt(3), 3);
+		assertEquals(targetArrayCollection.getItemAt(4), 4);
+	}
 }
 }


Can't see 'STARTOVER' tab selector

Can't see 'STARTOVER' tab selector

--- flexEditor/src/org/arisgames/editor/view/GameDetailsEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/GameDetailsEditorView.as
@@ -716,7 +716,7 @@
 			{
 				var tab:TabBarItem = new TabBarItem(obj.result.data[x].tab, obj.result.data[x].tab_index, true, "");
 				if(tab.index == 0){ tab.append = "_DIM"; tab.enabled = false;}
-				if(tab.type != "PICKGAME") this.tabList.addItem(tab); //Don't allow changing of gamepicker
+				if(tab.type != "PICKGAME" && tab.type != "STARTOVER") this.tabList.addItem(tab); //Don't allow changing of gamepicker
 			}
 			this.tabList.refresh();
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4748
Author:   dsubrama@adobe.com
Date:     2009-01-30T00:31:42.781368Z

Log Message:
-----------
Externalizing strings for the flex4 project. We now produce a resource bundle swc (flex4_rb.swc) that has all of the externalized strings for the flex4 project. We include 3 new bundles: components, layout and sparkEffects for the en_US locale. Other locales will come shortly.

QA: Yes, please doublecheck error messages are thrown with the correct error message.
Checkintests: Pass
Reviewer: Gordon

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/components.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="A">/flex/sdk/trunk/layout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="A">/flex/sdk/trunk/sparkEffects.properties</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as
@@ -10,7 +10,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package mx.effects
 {
-import flash.display.BitmapData;
+import flash.display.BitmapData;
 import flash.display.IBitmapDrawable;
 import flash.display.Sprite;
 import flash.geom.Matrix;
@@ -20,6 +20,14 @@
 import mx.core.IUIComponent;
 import mx.effects.effectClasses.FxAnimateShaderTransitionInstance;
 import mx.graphics.graphicsClasses.GraphicElement;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[ResourceBundle("sparkEffects")]

 /**
  * This effect animates a transition between two bitmaps,
@@ -73,6 +81,37 @@
         super(target);

         instanceClass = FxAnimateShaderTransitionInstance;
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Storage for the resourceManager getter.
+     *  This gets initialized on first access,
+     *  not at static initialization time, in order to ensure
+     *  that the Singleton registry has already been initialized.
+     */
+    private static var _resourceManager:IResourceManager;
+
+    /**
+     *  @private
+     *  A reference to the object which manages
+     *  all of the application's localized resources.
+     *  This is a singleton instance which implements
+     *  the IResourceManager interface.
+     */
+    private static function get resourceManager():IResourceManager
+    {
+        if (!_resourceManager)
+            _resourceManager = ResourceManager.getInstance();
+
+        return _resourceManager;
     }

     /**
@@ -186,8 +225,7 @@
         if (target is GraphicElement)
             return GraphicElement(target).getBitmapData(true, 0, false);
         else if (!(target is IUIComponent))
-            throw new Error("FxAnimateShaderTransition can only operate on" +
-                    " IUIComponent and GraphicElement instances");
+            throw new Error(resourceManager.getString("sparkEffects", "cannotOperateOn"));
         // TODO (chaase): Does this utility function belong in a more central
         // location, like UIComponent, or as part of ImageSnapshot?


Transferred from the Adobe Open Source Subversion Repository

Revision: 12386
Author:   rfrishbe@adobe.com
Date:     2009-12-02T20:35:46.168529Z

Log Message:
-----------
Fixup DefaultItemRenderer so that text will reflow by using setLayoutBoundsSize() to size the label rather than setActualSize().

QE notes: -
Doc notes: -
Bugs: -
Reviewer: Evtim
Tests run: checkintests, mustella List, DataGroup, ListDND (some ListDND were failing, but it seemed random)
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
@@ -451,8 +451,11 @@
         super.measure();

         // label has padding of 3 on left and right and padding of 5 on top and bottom.
-        measuredWidth = labelDisplay.getExplicitOrMeasuredWidth() + 6;
-        measuredHeight = labelDisplay.getExplicitOrMeasuredHeight() + 10;
+        measuredWidth = labelDisplay.getPreferredBoundsWidth() + 6;
+        measuredHeight = labelDisplay.getPreferredBoundsHeight() + 10;
+
+        measuredMinWidth = labelDisplay.getMinBoundsWidth() + 6;
+        measuredMinHeight = labelDisplay.getMinBoundsHeight() + 10;
     }

     /**
@@ -505,8 +508,16 @@

         graphics.endFill();

-        labelDisplay.move(3, 5);
-        labelDisplay.setActualSize(unscaledWidth - 6, unscaledHeight - 10);
+        // make sure our width/height is in the min/max for the label
+        var childWidth:Number = unscaledWidth - 6;
+        childWidth = Math.max(labelDisplay.getMinBoundsWidth(), Math.min(labelDisplay.getMaxBoundsWidth(), childWidth));
+
+        var childHeight:Number = unscaledHeight - 10;
+        childHeight = Math.max(labelDisplay.getMinBoundsHeight(), Math.min(labelDisplay.getMaxBoundsHeight(), childHeight));
+
+        // set the label's position and size
+        labelDisplay.setLayoutBoundsSize(childWidth, childHeight);
+        labelDisplay.setLayoutBoundsPosition(3, 5);
     }

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


Removing TODO of marginal potential utility.

--- driver/src/main/flex/org/postgresql/febe/message/DataRow.as
+++ driver/src/main/flex/org/postgresql/febe/message/DataRow.as
@@ -5,10 +5,6 @@

     public class DataRow extends AbstractMessage implements IBEMessage {

-        // TODO: encapsulating this better may allow us better
-        // performance here--if we can store the entire row data
-        // as a single byte array, we can still provide deserialization
-        // access to it field-by-field
         public var rowBytes:Array;

         public function read(input:ICDataInput):void {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/accessibility/TextBaseAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/TextBaseAccImpl.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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 3734
Author:   pfarland@adobe.com
Date:     2008-10-18T05:13:34.132420Z

Log Message:
-----------
Fixing advanced CSS descendant selectors for the alpha release.

- We now check descendant types against any superclass.

- Removed StyleProtoChain.getClassStyleDeclarations()'s recursive "Class" lookup for each superclass of an IStyleClient during the search for type selectors in the hierarchy. This was replaced with a simple describeType-based description (called once per type).

- Added a method to report whether any advanced styles had been registered with the StyleManager to optimize style declaration matching for the default case of simple style declarations.

- Removed advanced selector cache key calculation from StyleProtoChain in favor of the legacy simple type level cache. Future work may be required to cache advanced, display list sensitive style information.

- Fixed the specificity calculation for global selectors.

QE: Yes
Doc: No.
Checkintests: Pass
mxunit styles tests: Pass
select mustella styles tests: Pass
Reviewer: Glenn

Bugs:
SDK-17351 - [Advanced CSS] Descendant selectors don't work for Application
SDK-17361 - [Advanced CSS] If you use descendant and id selectors together, the id selector doesn't work correctly
SDK-17385 - [Advanced CSS] If you use descendant and class selectors together, the class selector doesn't work correctly

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/NameUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</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/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager3.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/framework/src/mx/styles/StyleManager.as
+++ frameworks/projects/framework/src/mx/styles/StyleManager.as
@@ -127,6 +127,18 @@
     /**
      *  @private
      */
+    mx_internal static function get typeHierarchyCache():Object
+    {
+        return impl.typeHierarchyCache;
+    }
+    mx_internal static function set typeHierarchyCache(value:Object):void
+    {
+        impl.typeHierarchyCache = value;
+    }
+
+    /**
+     *  @private
+     */
     mx_internal static function get typeSelectorCache():Object
     {
         return impl.typeSelectorCache;
@@ -166,6 +178,16 @@
     public static function hasPseudoSelector(subject:String):Boolean
     {
         return impl.hasPseudoSelector(subject);
+    }
+
+    /**
+     *  Determines whether any of the selectors registered with the style
+     *  manager have been advanced selectors (descendant selector, id selector,
+     *  non-global class selector, pseudo selector).
+     */
+    public static function hasAdvancedSelectors():Boolean
+    {
+        return impl.hasAdvancedSelectors();
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.accessibility
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.skins.halo
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11966
Author:   aharui@adobe.com
Date:     2009-11-19T00:21:41.792188Z

Log Message:
-----------
Move focusSkinExclusions into Skin (from SparkSkin) and add suggestedFocusSkinExclusions to SkinnableComponent.

QE Notes: None
Doc Notes: new API (suggestedFocusSkinExclusions)
Bugs: SDK-19255
Reviewer: Glenn
API Change: Yes
Is noteworthy for integration: Yes
tests: checkintests mustella/gumbo/components/TextInput, TextArea, CheckBox, RadioButton

Modified Paths:
--------------
<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/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HighlightBitmapCaptureSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3106
Author:   gosmith@adobe.com
Date:     2008-09-04T22:22:57.010967Z

Log Message:
-----------
Gumbo TextInput once again supports an 'enter' event, fixing a regression introduced yesterday.

Reviewer: Jono
Bugs: -
QA: No
Doc: NO

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextInput.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -20,6 +20,15 @@
 import flex.events.TextOperationEvent;

 import text.formats.LineBreak;
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  Dispatched when the user pressed the Enter key.
+ */
+[Event(name="enter", type="mx.events.FlexEvent")]

 //--------------------------------------
 //  Other metadata


reindent + optimize location of NALU tag type check

--- src/org/mangui/hls/flv/FLVTag.as
+++ src/org/mangui/hls/flv/FLVTag.as
@@ -1,43 +1,38 @@
-package org.mangui.hls.flv
-{
-	import flash.utils.ByteArray;
-
-	/** Metadata needed to build an FLV tag. **/
-	public class FLVTag
-	{
-		/** AAC Header Type ID. **/
-		public static const AAC_HEADER:int = 0;
-		/** AAC Data Type ID. **/
-		public static const AAC_RAW:int = 1;
-		/** AVC Header Type ID. **/
-		public static const AVC_HEADER:int = 2;
-		/** AVC Data Type ID. **/
-		public static const AVC_NALU:int = 3;
-		/** MP3 Data Type ID. **/
-		public static const MP3_RAW:int = 4;
-		/** Discontinuity Data Type ID. **/
-		public static const DISCONTINUITY:int = 5;
-		/** metadata Type ID. **/
-		public static const METADATA :int = 6;
+package org.mangui.hls.flv {
+    import flash.utils.ByteArray;

+    /** Metadata needed to build an FLV tag. **/
+    public class FLVTag {
+        /** AAC Header Type ID. **/
+        public static const AAC_HEADER : int = 0;
+        /** AAC Data Type ID. **/
+        public static const AAC_RAW : int = 1;
+        /** AVC Header Type ID. **/
+        public static const AVC_HEADER : int = 2;
+        /** AVC Data Type ID. **/
+        public static const AVC_NALU : int = 3;
+        /** MP3 Data Type ID. **/
+        public static const MP3_RAW : int = 4;
+        /** Discontinuity Data Type ID. **/
+        public static const DISCONTINUITY : int = 5;
+        /** metadata Type ID. **/
+        public static const METADATA : int = 6;
         /* FLV TAG TYPE */
-		private static var TAG_TYPE_AUDIO : int = 8;
-        private static var TAG_TYPE_VIDEO : int= 9;
-        private static var TAG_TYPE_SCRIPT : int= 18;
+        private static var TAG_TYPE_AUDIO : int = 8;
+        private static var TAG_TYPE_VIDEO : int = 9;
+        private static var TAG_TYPE_SCRIPT : int = 18;
+        /** Is this a keyframe. **/
+        public var keyframe : Boolean;
+        /** Array with data pointers. **/
+        private var pointers : Vector.<TagData> = new Vector.<TagData>();
+        /** PTS of this frame. **/
+        public var pts : Number;
+        /** DTS of this frame. **/
+        public var dts : Number;
+        /** Type of FLV tag.**/
+        public var type : int;

-
-		/** Is this a keyframe. **/
-		public var keyframe:Boolean;
-		/** Array with data pointers. **/
-		private var pointers:Vector.<TagData> = new Vector.<TagData>();
-		/** PTS of this frame. **/
-		public var pts:Number;
-		/** DTS of this frame. **/
-		public var dts:Number;
-		/** Type of FLV tag.**/
-		public var type:int;
-
-		        /** Get the FLV file header. **/
+        /** Get the FLV file header. **/
         public static function getHeader() : ByteArray {
             var flv : ByteArray = new ByteArray();
             flv.length = 13;
@@ -79,118 +74,102 @@
             return tag;
         };

-
-		/** Save the frame data and parameters. **/
-		public function FLVTag(typ:int, stp_p:Number, stp_d:Number, key:Boolean)
-		{
-			type = typ;
-			pts = stp_p;
-			dts = stp_d;
-			keyframe = key;
-		}
-		;
-
-		/** Returns the tag data. **/
-		public function get data():ByteArray
-		{
-			var array:ByteArray;
-			/* following specification http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf */
-
-			// Render header data
-			if (type == FLVTag.MP3_RAW)
-			{
-				array = getTagHeader(TAG_TYPE_AUDIO, length + 1, pts);
-				// Presume MP3 is 44.1 stereo.
-				array.writeByte(0x2F);
-			}
-			else if (type == AVC_HEADER || type == AVC_NALU)
-			{
-				array = getTagHeader(TAG_TYPE_VIDEO, length + 5, dts);
-				// keyframe/interframe switch (0x10 / 0x20) + AVC (0x07)
-				keyframe ? array.writeByte(0x17) : array.writeByte(0x27);
-				/* AVC Packet Type :
-				   0 = AVC sequence header
-				   1 = AVC NALU
-				   2 = AVC end of sequence (lower level NALU sequence ender is
-				 not required or supported) */
-				type == AVC_HEADER ? array.writeByte(0x00) : array.writeByte(0x01);
-				// CompositionTime (in ms)
-				// CONFIG::LOGGING {
-				// Log.info("pts:"+pts+",dts:"+dts+",delta:"+compositionTime);
-				// }
-				var compositionTime:Number = (pts - dts);
-				array.writeByte(compositionTime >> 16);
-				array.writeByte(compositionTime >> 8);
-				array.writeByte(compositionTime);
+        /** Save the frame data and parameters. **/
+        public function FLVTag(typ : int, stp_p : Number, stp_d : Number, key : Boolean) {
+            type = typ;
+            pts = stp_p;
+            dts = stp_d;
+            keyframe = key;
+        }
+        ;
+
+        /** Returns the tag data. **/
+        public function get data() : ByteArray {
+            var array : ByteArray;
+            /* following specification http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf */
+
+            // Render header data
+            if (type == FLVTag.MP3_RAW) {
+                array = getTagHeader(TAG_TYPE_AUDIO, length + 1, pts);
+                // Presume MP3 is 44.1 stereo.
+                array.writeByte(0x2F);
+            } else if (type == AVC_HEADER || type == AVC_NALU) {
+                array = getTagHeader(TAG_TYPE_VIDEO, length + 5, dts);
+                // keyframe/interframe switch (0x10 / 0x20) + AVC (0x07)
+                keyframe ? array.writeByte(0x17) : array.writeByte(0x27);
+                /* AVC Packet Type :
+                0 = AVC sequence header
+                1 = AVC NALU
+                2 = AVC end of sequence (lower level NALU sequence ender is
+                not required or supported) */
+                type == AVC_HEADER ? array.writeByte(0x00) : array.writeByte(0x01);
+                // CompositionTime (in ms)
+                // CONFIG::LOGGING {
+                // Log.info("pts:"+pts+",dts:"+dts+",delta:"+compositionTime);
+                // }
+                var compositionTime : Number = (pts - dts);
+                array.writeByte(compositionTime >> 16);
+                array.writeByte(compositionTime >> 8);
+                array.writeByte(compositionTime);
+                // Write tag data, accounting for NAL startcodes
+                if (type == AVC_NALU) {
+                    array.writeUnsignedInt(length - 4);
+                }
             } else if (type == DISCONTINUITY || type == METADATA) {
                 array = getTagHeader(FLVTag.TAG_TYPE_SCRIPT, length, pts);
             } else {
-				array = getTagHeader(TAG_TYPE_AUDIO, length + 2, pts);
-				// SoundFormat, -Rate, -Size, Type and Header/Raw switch.
-				array.writeByte(0xAF);
-				type == AAC_HEADER ? array.writeByte(0x00) : array.writeByte(0x01);
-			}
-
-			// Write tag data, accounting for NAL startcodes
-			if (type == AVC_NALU)
-			{
-				array.writeUnsignedInt(length - 4);
-			}
-			for (var i:int = 0; i < pointers.length; i++)
-			{
-				array.writeBytes(pointers[i].array, pointers[i].start, pointers[i].length);
-			}
-
-			// Write previousTagSize and return data.
-			array.writeUnsignedInt(array.length);
-			return array;
-		}
-
-		/** Returns the bytesize of the frame. **/
-		private function get length():int
-		{
-			var length:int = 0;
-			for (var i:int = 0; i < pointers.length; i++)
-			{
-				length += pointers[i].length;
-			}
-			// Account for NAL startcode length.
-			if (type == AVC_NALU)
-			{
-				length += 4;
-			}
-			return length;
-		}
-		;
-
-		/** push a data pointer into the frame. **/
-		public function push(array:ByteArray, start:int, length:int):void
-		{
-			pointers.push(new TagData(array, start, length));
-		}
-		;
-
-		/** Trace the contents of this tag. **/
-		public function toString():String
-		{
-			return "TAG (type: " + type + ", pts:" + pts + ", dts:" + dts + ", length:" + length + ")";
-		}
-		;
-	}
+                array = getTagHeader(TAG_TYPE_AUDIO, length + 2, pts);
+                // SoundFormat, -Rate, -Size, Type and Header/Raw switch.
+                array.writeByte(0xAF);
+                type == AAC_HEADER ? array.writeByte(0x00) : array.writeByte(0x01);
+            }
+            for (var i : int = 0; i < pointers.length; i++) {
+                array.writeBytes(pointers[i].array, pointers[i].start, pointers[i].length);
+            }
+            // Write previousTagSize and return data.
+            array.writeUnsignedInt(array.length);
+            return array;
+        }
+
+        /** Returns the bytesize of the frame. **/
+        private function get length() : int {
+            var length : int = 0;
+            for (var i : int = 0; i < pointers.length; i++) {
+                length += pointers[i].length;
+            }
+            // Account for NAL startcode length.
+            if (type == AVC_NALU) {
+                length += 4;
+            }
+            return length;
+        }
+        ;
+
+        /** push a data pointer into the frame. **/
+        public function push(array : ByteArray, start : int, length : int) : void {
+            pointers.push(new TagData(array, start, length));
+        }
+        ;
+
+        /** Trace the contents of this tag. **/
+        public function toString() : String {
+            return "TAG (type: " + type + ", pts:" + pts + ", dts:" + dts + ", length:" + length + ")";
+        }
+        ;
+    }
 }

 /** Tag Content **/
-class TagData
-{
-	import flash.utils.ByteArray;
-	public var array:ByteArray;
-	public var start:int;
-	public var length:int;
-
-	public function TagData(array:ByteArray, start:int, length:int)
-	{
-		this.array = array;
-		this.start = start;
-		this.length = length;
-	}
+class TagData {
+    import flash.utils.ByteArray;
+
+    public var array : ByteArray;
+    public var start : int;
+    public var length : int;
+
+    public function TagData(array : ByteArray, start : int, length : int) {
+        this.array = array;
+        this.start = start;
+        this.length = length;
+    }
 }


- change: Implemented ComboBox#reset, removing all items and resetting the selected index

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

--- src/reprise/controls/ComboBox.as
+++ src/reprise/controls/ComboBox.as
@@ -53,7 +53,16 @@
 		{
 			return m_list.options;
 		}
-
+
+		override public function reset() : void
+		{
+			super.reset();
+			m_placeholder = '';
+			m_list.removeAllItems();
+			m_list.setSelectedIndex(-1);
+			updateLabel();
+		}
+
 		public function setSelectedIndex(index : int) : void
 		{
 			m_list.setSelectedIndex(index);


no message

no message

--- example-mobile/src/StarlingRoot.as
+++ example-mobile/src/StarlingRoot.as
@@ -45,7 +45,6 @@
     private var urlInput:StageText;
     private var titleTxt:TextField;
     private var webView:WebViewANE;
-    private var urlEntered:Boolean = false;

     public function StarlingRoot() {
     }
@@ -84,8 +83,7 @@

         webBtn.visible = false;
         cancelBtn.visible = false;
-
-
+
         inputBG = new Image(_assets.getTexture("input-bg"));
         inputBG.scale9Grid = new Rectangle(4, 4, 16, 16);
         inputBG.width = stage.stageWidth - 108 - 50;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.effects
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.effects
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20742
Author:   smgilson@adobe.com
Date:     2011-03-09T21:46:11.224420Z

Log Message:
-----------
Merge 20732 - asdoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/SwitchSymbolFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/State.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/effects/effectClasses/UnconstrainItemActionInstance.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as</path>

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

--- frameworks/projects/framework/src/mx/states/State.as
+++ frameworks/projects/framework/src/mx/states/State.as
@@ -111,6 +111,8 @@

     /**
      *  Constructor.
+     *
+     *  @param properties Object containing property settings for this State.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9


invitation finish

invitation finish

--- src/milkshape/media/flash/src/cc/milkshape/account/Invitations.as
+++ src/milkshape/media/flash/src/cc/milkshape/account/Invitations.as
@@ -40,7 +40,7 @@
 			var values:Object = form.values();
 			_invitationForms = _invitationForms.splice(_invitationForms.indexOf(form), 1);
 			formContainer.removeChild(form);
-			_initPositions();
+			_invitationController.invitations();
 		}

 		private function _ticketCreated(e:InvitationEvent):void


Fixed bug in compiler ?: parsing

Fixed bug in compiler ?: parsing

Change-Id: Icd7837f7e441e20bc585956187ebeb33b613b913

--- WeaveCore/src/weave/compiler/Compiler.as
+++ WeaveCore/src/weave/compiler/Compiler.as
@@ -543,12 +543,12 @@
 				if (right < 0 || left < 1 || left + 1 == right || right + 1 == tokens.length)
 					break;

-				// false branch includes everything after ':' and up until the next '?', ':', or ','
+				// false branch includes everything after ':' and up until the next ?:,;
 				var end:int = right + 2;
 				while (end < tokens.length)
 				{
 					token = tokens[end] as String;
-					if (token && '?:,'.indexOf(token) >= 0)
+					if (token && '?:,;'.indexOf(token) >= 0)
 						break;
 					end++;
 				}


Removed unnecessary code.

Removed unnecessary code.

Change-Id: Ic70d0cf597d87d2e361a5b4031ebb0883eb13fd0

--- WeaveUI/src/weave/visualization/layers/InteractiveVisualization.as
+++ WeaveUI/src/weave/visualization/layers/InteractiveVisualization.as
@@ -54,7 +54,7 @@
 	 *
 	 * @author adufilie
 	 */
-	public class InteractiveVisualization extends PlotLayerContainer implements IDisposableObject
+	public class InteractiveVisualization extends PlotLayerContainer
 	{
 		public function InteractiveVisualization()
 		{
@@ -62,7 +62,6 @@
 			init();
 		}

-		private var plotShadow:DropShadowFilter 	= new DropShadowFilter(1, 45, 0x000000, 0.2, 0, 0, 1);
 		private function init():void
 		{
 			doubleClickEnabled = true;
@@ -73,8 +72,6 @@
 			enableAutoZoomToExtent.value = true;
 			// adding a canvas as child gets the selection rectangle on top of the vis
 			addChild(selectionRectangleCanvas);
-
-			shadowAmount.value = 0;

 			addContextMenuEventListener();

@@ -95,15 +92,6 @@
 			Weave.properties.dashedSelectionBox.addImmediateCallback(this, validateDashedLine, null, true);
 		}

-		public function dispose():void
-		{
-			removeEventListener(MouseEvent.CLICK, handleMouseClick);
-			removeEventListener(MouseEvent.DOUBLE_CLICK, handleDoubleClick);
-			removeEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown);
-			removeEventListener(MouseEvent.ROLL_OUT, handleRollOut);
-			removeEventListener(MouseEvent.ROLL_OVER, handleRollOver);
-		}
-
 		private function addContextMenuEventListener():void
 		{
 			var contextMenu:ContextMenu = (Application.application as Application).contextMenu;
@@ -114,25 +102,6 @@
 		private function removeCursor(e:Event):void
 		{
 			CustomCursorManager.removeCurrentCursor();
-		}
-
-		public const shadowAmount:LinkableNumber = newLinkableChild(this, LinkableNumber, updateShadow);
-		private function updateShadow():void
-		{
-			if (shadowAmount.value == 0)
-			{
-				filters = null;
-				return;
-			}
-
-			var amount:Number = shadowAmount.value / 100;
-
-			plotShadow.distance = 1 + (1 * amount);
-			plotShadow.alpha = amount;
-			plotShadow.blurX = 2 * amount;
-			plotShadow.blurY = 2 * amount;
-
-			filters = [plotShadow];
 		}

 		public const enableZoomAndPan:LinkableBoolean = newLinkableChild(this, LinkableBoolean);


get rid of functions named after reserved strings

also add restart() and reset()

--- vivified/core/vivi_initialize.as
+++ vivified/core/vivi_initialize.as
@@ -19,9 +19,12 @@

 Commands = new Object ();
 Commands.print = Native.print;
-Commands.br = Native["break"];
-Commands["break"] = Native["break"];
-Commands.c = Native.play;
-Commands["continue"] = Native.play;
+Commands.r = Native.run;
+Commands.run = Native.run;
 Commands.s = Native.step;
 Commands.step = Native.step;
+Commands.reset = Native.reset;
+Commands.restart = function () {
+  Commands.reset ();
+  Commands.run ();
+};