You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/05/25 18:25:25 UTC

[18/19] git commit: [flex-falcon] [refs/heads/develop] - try using --ignore-whitespace so patches might work on both win and mac

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/791c65b1/externs/createjs/src/main/patch/easeljs.patch
----------------------------------------------------------------------
diff --git a/externs/createjs/src/main/patch/easeljs.patch b/externs/createjs/src/main/patch/easeljs.patch
index ead96c9..41a5230 100644
--- a/externs/createjs/src/main/patch/easeljs.patch
+++ b/externs/createjs/src/main/patch/easeljs.patch
@@ -1,8 +1,8 @@
 diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/Event.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/Event.js
-index 3ce0025..71f4e9f 100644
+index 3ce0025..dbefcd2 100644
 --- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/Event.js
 +++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/Event.js
-@@ -1,262 +1,76 @@
+@@ -1,262 +1,80 @@
 -/*
 -* Event
 -* Visit http://createjs.com/ for documentation, updates and examples.
@@ -49,14 +49,17 @@ index 3ce0025..71f4e9f 100644
 - *
 - * @module CreateJS
 - * @main CreateJS
-- */
--
--// namespace:
--this.createjs = this.createjs||{};
 + * @see [Event]
-+ * @constructor  */
++ * @param {(string|null)} type The event type.
++ * @param {(boolean|null)} bubbles Indicates whether the event will bubble through the display list.
++ * @param {(boolean|null)} cancelable Indicates whether the default behaviour of this event can be cancelled.
++ * @constructor
+  */
 +createjs.Event = function (type, bubbles, cancelable) {}
  
+-// namespace:
+-this.createjs = this.createjs||{};
+-
 -(function() {
 -	"use strict";
 +    /**
@@ -332,10 +335,10 @@ index 3ce0025..71f4e9f 100644
 -	createjs.Event = Event;
 -}());
 diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/EventDispatcher.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/EventDispatcher.js
-index b95257c..a9b2210 100644
+index 0ae4781..ca46b46 100644
 --- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/EventDispatcher.js
 +++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/events/EventDispatcher.js
-@@ -1,407 +1,201 @@
+@@ -1,407 +1,202 @@
 -/*
 -* EventDispatcher
 -* Visit http://createjs.com/ for documentation, updates and examples.
@@ -366,207 +369,8 @@ index b95257c..a9b2210 100644
 -
 -/**
 - * @module CreateJS
-+/** @fileoverview Auto-generated Externs files
-+ * @externs
-  */
-+/**
-+ * EventDispatcher provides methods for managing queues of event listeners and dispatching events.
-+ * 
-+ * You can either extend EventDispatcher or mix its methods into an existing prototype or instance by using the
-+ * EventDispatcher {{#crossLink "EventDispatcher/initialize"}}{{/crossLink}} method.
-+ * 
-+ * Together with the CreateJS Event class, EventDispatcher provides an extended event model that is based on the
-+ * DOM Level 2 event model, including addEventListener, removeEventListener, and dispatchEvent. It supports
-+ * bubbling / capture, preventDefault, stopPropagation, stopImmediatePropagation, and handleEvent.
-+ * 
-+ * EventDispatcher also exposes a {{#crossLink "EventDispatcher/on"}}{{/crossLink}} method, which makes it easier
-+ * to create scoped listeners, listeners that only run once, and listeners with associated arbitrary data. The
-+ * {{#crossLink "EventDispatcher/off"}}{{/crossLink}} method is merely an alias to
-+ * {{#crossLink "EventDispatcher/removeEventListener"}}{{/crossLink}}.
-+ * 
-+ * Another addition to the DOM Level 2 model is the {{#crossLink "EventDispatcher/removeAllEventListeners"}}{{/crossLink}}
-+ * method, which can be used to listeners for all events, or listeners for a specific event. The Event object also
-+ * includes a {{#crossLink "Event/remove"}}{{/crossLink}} method which removes the active listener.
-+ * 
-+ * <h4>Example</h4>
-+ * Add EventDispatcher capabilities to the "MyClass" class.
-+ * 
-+ * createjs.EventDispatcher.initialize(MyClass.prototype);
-+ * 
-+ * Add an event (see {{#crossLink "EventDispatcher/addEventListener"}}{{/crossLink}}).
-+ * 
-+ * instance.addEventListener("eventName", handlerMethod);
-+ * function handlerMethod(event) {
-+ * console.log(event.target + " Was Clicked");
-+ * }
-+ * 
-+ * <b>Maintaining proper scope</b><br />
-+ * Scope (ie. "this") can be be a challenge with events. Using the {{#crossLink "EventDispatcher/on"}}{{/crossLink}}
-+ * method to subscribe to events simplifies this.
-+ * 
-+ * instance.addEventListener("click", function(event) {
-+ * console.log(instance == this); // false, scope is ambiguous.
-+ * });
-+ * 
-+ * instance.on("click", function(event) {
-+ * console.log(instance == this); // true, "on" uses dispatcher scope by default.
-+ * });
-+ * 
-+ * If you want to use addEventListener instead, you may want to use function.bind() or a similar proxy to manage scope.
-+ *
-+ * @see [EventDispatcher]
-+ * @constructor  */
-+createjs.EventDispatcher = function () {}
-+
-+    /**
-+     * Static initializer to mix EventDispatcher methods into a target object or prototype.
-+     * 
-+     * createjs.EventDispatcher.initialize(MyClass.prototype); // add to the prototype of the class
-+     * createjs.EventDispatcher.initialize(myObject); // add to a specific instance
-+     *
-+     * @param {(Object|null)} target The target object to inject EventDispatcher methods into. This can be an instance or a prototype.
-+     * @see [EventDispatcher]
-+     */
-+createjs.EventDispatcher.initialize = function (target) {  }
-+
-+    /**
-+     * Indicates whether there is at least one listener for the specified event type on this object or any of its
-+     * ancestors (parent, parent's parent, etc). A return value of true indicates that if a bubbling event of the
-+     * specified type is dispatched from this object, it will trigger at least one listener.
-+     * 
-+     * This is similar to {{#crossLink "EventDispatcher/hasEventListener"}}{{/crossLink}}, but it searches the entire
-+     * event flow for a listener, not just this object.
-+     *
-+     * @param {(string|null)} type The string type of the event.
-+     * @see [EventDispatcher]
-+     * @returns {(boolean|null)} Returns `true` if there is at least one listener for the specified event.
-+     */
-+createjs.EventDispatcher.prototype.willTrigger = function (type) {  return null; }
-+
-+    /**
-+     * Removes all listeners for the specified type, or all listeners of all types.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * // Remove all listeners
-+     * displayObject.removeAllEventListeners();
-+     * 
-+     * // Remove all click listeners
-+     * displayObject.removeAllEventListeners("click");
-+     *
-+     * @param {(string|null|undefined)} type The string type of the event. If omitted, all listeners for all types will be removed.
-+     * @see [EventDispatcher]
-+     */
-+createjs.EventDispatcher.prototype.removeAllEventListeners = function (type) {  }
-+
-+    /**
-+     * Adds the specified event listener. Note that adding multiple listeners to the same function will result in
-+     * multiple callbacks getting fired.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * displayObject.addEventListener("click", handleClick);
-+     * function handleClick(event) {
-+     * // Click happened.
-+     * }
-+     *
-+     * @param {(string|null)} type The string type of the event.
-+     * @param {(Object|null)} listener An object with a handleEvent method, or a function that will be called when the event is dispatched.
-+     * @param {(boolean|null|undefined)} useCapture For events that bubble, indicates whether to listen for the event in the capture or bubbling/target phase.
-+     * @see [EventDispatcher]
-+     * @returns {(Object|null)} Returns the listener for chaining or assignment.
-+     */
-+createjs.EventDispatcher.prototype.addEventListener = function (type, listener, useCapture) {  return null; }
-+
-+    /**
-+     * @param {(Event|Object|null)} eventObj 
-+     * @param {(Object|null)} eventPhase 
-+     * @see [EventDispatcher]
-+     */
-+createjs.EventDispatcher.prototype._dispatchEvent = function (eventObj, eventPhase) {  }
-+
-+    /**
-+     * Dispatches the specified event to all listeners.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * // Use a string event
-+     * this.dispatchEvent("complete");
-+     * 
-+     * // Use an Event instance
-+     * var event = new createjs.Event("progress");
-+     * this.dispatchEvent(event);
-+     *
-+     * @param {(Event|Object|null)} eventObj An object with a "type" property, or a string type. While a generic object will work, it is recommended to use a CreateJS Event instance. If a string is used, dispatchEvent will construct an Event instance with the specified type.
-+     * @see [EventDispatcher]
-+     * @returns {(boolean|null)} Returns the value of eventObj.defaultPrevented.
-+     */
-+createjs.EventDispatcher.prototype.dispatchEvent = function (eventObj) {  return null; }
-+
-+    /**
-+     * Removes the specified event listener.
-+     * 
-+     * <b>Important Note:</b> that you must pass the exact function reference used when the event was added. If a proxy
-+     * function, or function closure is used as the callback, the proxy/closure reference must be used - a new proxy or
-+     * closure will not work.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * displayObject.removeEventListener("click", handleClick);
-+     *
-+     * @param {(string|null)} type The string type of the event.
-+     * @param {(Object|null)} listener The listener function or object.
-+     * @param {(boolean|null|undefined)} useCapture For events that bubble, indicates whether to listen for the event in the capture or bubbling/target phase.
-+     * @see [EventDispatcher]
-+     */
-+createjs.EventDispatcher.prototype.removeEventListener = function (type, listener, useCapture) {  }
-+
-+    /**
-+     * A shortcut method for using addEventListener that makes it easier to specify an execution scope, have a listener
-+     * only run once, associate arbitrary data with the listener, and remove the listener.
-+     * 
-+     * This method works by creating an anonymous wrapper function and subscribing it with addEventListener.
-+     * The created anonymous function is returned for use with .removeEventListener (or .off).
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * var listener = myBtn.on("click", handleClick, null, false, {count:3});
-+     * function handleClick(evt, data) {
-+     * data.count -= 1;
-+     * console.log(this == myBtn); // true - scope defaults to the dispatcher
-+     * if (data.count == 0) {
-+     * alert("clicked 3 times!");
-+     * myBtn.off("click", listener);
-+     * // alternately: evt.remove();
-+     * }
-+     * }
-+     *
-+     * @param {(string|null)} type The string type of the event.
-+     * @param {(Object|null)} listener An object with a handleEvent method, or a function that will be called when the event is dispatched.
-+     * @param {(Object|null|undefined)} scope The scope to execute the listener in. Defaults to the dispatcher/currentTarget for function listeners, and to the listener itself for object listeners (ie. using handleEvent).
-+     * @param {(boolean|null|undefined)} once If true, the listener will remove itself after the first time it is triggered.
-+     * @param {*} data Arbitrary data that will be included as the second parameter when the listener is called.
-+     * @param {(boolean|null|undefined)} useCapture For events that bubble, indicates whether to listen for the event in the capture or bubbling/target phase.
-+     * @see [EventDispatcher]
-+     * @returns {(Function|null)} Returns the anonymous function that was created and assigned as the listener. This is needed to remove the listener later using .removeEventListener.
-+     */
-+createjs.EventDispatcher.prototype.on = function (type, listener, scope, once, data, useCapture) {  return null; }
-+
-+    /**
-+     * @see [EventDispatcher]
-+     * @returns {(string|null)} a string representation of the instance.
-+     */
-+createjs.EventDispatcher.prototype.toString = function () {  return null; }
-+
-+    /**
-+     * Indicates whether there is at least one listener for the specified event type.
-+     *
-+     * @param {(string|null)} type The string type of the event.
-+     * @see [EventDispatcher]
-+     * @returns {(boolean|null)} Returns true if there is at least one listener for the specified event.
-+     */
-+createjs.EventDispatcher.prototype.hasEventListener = function (type) {  return null; }
- 
+- */
+-
 -// namespace:
 -this.createjs = this.createjs||{};
 -
@@ -942,51 +746,252 @@ index b95257c..a9b2210 100644
 -
 -	createjs.EventDispatcher = EventDispatcher;
 -}());
-diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js
-index 3c5c4a6..3f97740 100644
---- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js
-+++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js
-@@ -1,632 +1,182 @@
--/*
--* Ticker
--* Visit http://createjs.com/ for documentation, updates and examples.
--*
--* Copyright (c) 2010 gskinner.com, inc.
--*
--* Permission is hereby granted, free of charge, to any person
--* obtaining a copy of this software and associated documentation
--* files (the "Software"), to deal in the Software without
--* restriction, including without limitation the rights to use,
--* copy, modify, merge, publish, distribute, sublicense, and/or sell
--* copies of the Software, and to permit persons to whom the
--* Software is furnished to do so, subject to the following
--* conditions:
--*
--* The above copyright notice and this permission notice shall be
--* included in all copies or substantial portions of the Software.
--*
--* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
--* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
--* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
--* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
--* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
--* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
--* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
--* OTHER DEALINGS IN THE SOFTWARE.
--*/
--
--/**
-- * @module CreateJS
 +/** @fileoverview Auto-generated Externs files
 + * @externs
-  */
++ */
 +/**
-+ * The Ticker provides a centralized tick or heartbeat broadcast at a set interval. Listeners can subscribe to the tick
-+ * event to be notified when a set time interval has elapsed.
++ * EventDispatcher provides methods for managing queues of event listeners and dispatching events.
 + * 
-+ * Note that the interval that the tick event is called is a target interval, and may be broadcast at a slower interval
-+ * when under high CPU load. The Ticker class uses a static interface (ex. `createjs.Ticker.framerate = 30;`) and
-+ * can not be instantiated.
++ * You can either extend EventDispatcher or mix its methods into an existing prototype or instance by using the
++ * EventDispatcher {{#crossLink "EventDispatcher/initialize"}}{{/crossLink}} method.
++ * 
++ * Together with the CreateJS Event class, EventDispatcher provides an extended event model that is based on the
++ * DOM Level 2 event model, including addEventListener, removeEventListener, and dispatchEvent. It supports
++ * bubbling / capture, preventDefault, stopPropagation, stopImmediatePropagation, and handleEvent.
++ * 
++ * EventDispatcher also exposes a {{#crossLink "EventDispatcher/on"}}{{/crossLink}} method, which makes it easier
++ * to create scoped listeners, listeners that only run once, and listeners with associated arbitrary data. The
++ * {{#crossLink "EventDispatcher/off"}}{{/crossLink}} method is merely an alias to
++ * {{#crossLink "EventDispatcher/removeEventListener"}}{{/crossLink}}.
++ * 
++ * Another addition to the DOM Level 2 model is the {{#crossLink "EventDispatcher/removeAllEventListeners"}}{{/crossLink}}
++ * method, which can be used to listeners for all events, or listeners for a specific event. The Event object also
++ * includes a {{#crossLink "Event/remove"}}{{/crossLink}} method which removes the active listener.
++ * 
++ * <h4>Example</h4>
++ * Add EventDispatcher capabilities to the "MyClass" class.
++ * 
++ * createjs.EventDispatcher.initialize(MyClass.prototype);
++ * 
++ * Add an event (see {{#crossLink "EventDispatcher/addEventListener"}}{{/crossLink}}).
++ * 
++ * instance.addEventListener("eventName", handlerMethod);
++ * function handlerMethod(event) {
++ * console.log(event.target + " Was Clicked");
++ * }
++ * 
++ * <b>Maintaining proper scope</b><br />
++ * Scope (ie. "this") can be be a challenge with events. Using the {{#crossLink "EventDispatcher/on"}}{{/crossLink}}
++ * method to subscribe to events simplifies this.
++ * 
++ * instance.addEventListener("click", function(event) {
++ * console.log(instance == this); // false, scope is ambiguous.
++ * });
++ * 
++ * instance.on("click", function(event) {
++ * console.log(instance == this); // true, "on" uses dispatcher scope by default.
++ * });
++ * 
++ * If you want to use addEventListener instead, you may want to use function.bind() or a similar proxy to manage scope.
++ *
++ * @see [EventDispatcher]
++ * @constructor
++ */
++createjs.EventDispatcher = function () {}
++
++    /**
++     * Static initializer to mix EventDispatcher methods into a target object or prototype.
++     * 
++     * createjs.EventDispatcher.initialize(MyClass.prototype); // add to the prototype of the class
++     * createjs.EventDispatcher.initialize(myObject); // add to a specific instance
++     *
++     * @param {(Object|null)} target The target object to inject EventDispatcher methods into. This can be an instance or a prototype.
++     * @see [EventDispatcher]
++     */
++createjs.EventDispatcher.initialize = function (target) {  }
++
++    /**
++     * Indicates whether there is at least one listener for the specified event type on this object or any of its
++     * ancestors (parent, parent's parent, etc). A return value of true indicates that if a bubbling event of the
++     * specified type is dispatched from this object, it will trigger at least one listener.
++     * 
++     * This is similar to {{#crossLink "EventDispatcher/hasEventListener"}}{{/crossLink}}, but it searches the entire
++     * event flow for a listener, not just this object.
++     *
++     * @param {(string|null)} type The string type of the event.
++     * @see [EventDispatcher]
++     * @returns {(boolean|null)} Returns `true` if there is at least one listener for the specified event.
++     */
++createjs.EventDispatcher.prototype.willTrigger = function (type) {  return null; }
++
++    /**
++     * Removes all listeners for the specified type, or all listeners of all types.
++     * 
++     * <h4>Example</h4>
++     * 
++     * // Remove all listeners
++     * displayObject.removeAllEventListeners();
++     * 
++     * // Remove all click listeners
++     * displayObject.removeAllEventListeners("click");
++     *
++     * @param {string=} opt_type The string type of the event. If omitted, all listeners for all types will be removed.
++     * @see [EventDispatcher]
++     */
++createjs.EventDispatcher.prototype.removeAllEventListeners = function (opt_type) {  }
++
++    /**
++     * Adds the specified event listener. Note that adding multiple listeners to the same function will result in
++     * multiple callbacks getting fired.
++     * 
++     * <h4>Example</h4>
++     * 
++     * displayObject.addEventListener("click", handleClick);
++     * function handleClick(event) {
++     * // Click happened.
++     * }
++     *
++     * @param {(string|null)} type The string type of the event.
++     * @param {(Object|null)} listener An object with a handleEvent method, or a function that will be called when the event is dispatched.
++     * @param {boolean=} opt_useCapture For events that bubble, indicates whether to listen for the event in the capture or bubbling/target phase.
++     * @see [EventDispatcher]
++     * @returns {(Object|null)} Returns the listener for chaining or assignment.
++     */
++createjs.EventDispatcher.prototype.addEventListener = function (type, listener, opt_useCapture) {  return null; }
++
++    /**
++     * @param {(Event|Object|null)} eventObj 
++     * @param {(Object|null)} eventPhase 
++     * @see [EventDispatcher]
++     */
++createjs.EventDispatcher.prototype._dispatchEvent = function (eventObj, eventPhase) {  }
++
++    /**
++     * Dispatches the specified event to all listeners.
++     * 
++     * <h4>Example</h4>
++     * 
++     * // Use a string event
++     * this.dispatchEvent("complete");
++     * 
++     * // Use an Event instance
++     * var event = new createjs.Event("progress");
++     * this.dispatchEvent(event);
++     *
++     * @param {(Event|Object|null)} eventObj An object with a "type" property, or a string type. While a generic object will work, it is recommended to use a CreateJS Event instance. If a string is used, dispatchEvent will construct an Event instance with the specified type.
++     * @see [EventDispatcher]
++     * @returns {(boolean|null)} Returns the value of eventObj.defaultPrevented.
++     */
++createjs.EventDispatcher.prototype.dispatchEvent = function (eventObj) {  return null; }
++
++    /**
++     * Removes the specified event listener.
++     * 
++     * <b>Important Note:</b> that you must pass the exact function reference used when the event was added. If a proxy
++     * function, or function closure is used as the callback, the proxy/closure reference must be used - a new proxy or
++     * closure will not work.
++     * 
++     * <h4>Example</h4>
++     * 
++     * displayObject.removeEventListener("click", handleClick);
++     *
++     * @param {(string|null)} type The string type of the event.
++     * @param {(Object|null)} listener The listener function or object.
++     * @param {boolean=} opt_useCapture For events that bubble, indicates whether to listen for the event in the capture or bubbling/target phase.
++     * @see [EventDispatcher]
++     */
++createjs.EventDispatcher.prototype.removeEventListener = function (type, listener, opt_useCapture) {  }
++
++    /**
++     * A shortcut method for using addEventListener that makes it easier to specify an execution scope, have a listener
++     * only run once, associate arbitrary data with the listener, and remove the listener.
++     * 
++     * This method works by creating an anonymous wrapper function and subscribing it with addEventListener.
++     * The created anonymous function is returned for use with .removeEventListener (or .off).
++     * 
++     * <h4>Example</h4>
++     * 
++     * var listener = myBtn.on("click", handleClick, null, false, {count:3});
++     * function handleClick(evt, data) {
++     * data.count -= 1;
++     * console.log(this == myBtn); // true - scope defaults to the dispatcher
++     * if (data.count == 0) {
++     * alert("clicked 3 times!");
++     * myBtn.off("click", listener);
++     * // alternately: evt.remove();
++     * }
++     * }
++     *
++     * @param {(string|null)} type The string type of the event.
++     * @param {(Object|null)} listener An object with a handleEvent method, or a function that will be called when the event is dispatched.
++     * @param {Object=} opt_scope The scope to execute the listener in. Defaults to the dispatcher/currentTarget for function listeners, and to the listener itself for object listeners (ie. using handleEvent).
++     * @param {boolean=} opt_once If true, the listener will remove itself after the first time it is triggered.
++     * @param {*=} opt_data Arbitrary data that will be included as the second parameter when the listener is called.
++     * @param {boolean=} opt_useCapture For events that bubble, indicates whether to listen for the event in the capture or bubbling/target phase.
++     * @see [EventDispatcher]
++     * @returns {(Function|null)} Returns the anonymous function that was created and assigned as the listener. This is needed to remove the listener later using .removeEventListener.
++     */
++createjs.EventDispatcher.prototype.on = function (type, listener, opt_scope, opt_once, opt_data, opt_useCapture) {  return null; }
++
++    /**
++     * @see [EventDispatcher]
++     * @returns {(string|null)} a string representation of the instance.
++     */
++createjs.EventDispatcher.prototype.toString = function () {  return null; }
++
++    /**
++     * Indicates whether there is at least one listener for the specified event type.
++     *
++     * @param {(string|null)} type The string type of the event.
++     * @see [EventDispatcher]
++     * @returns {(boolean|null)} Returns true if there is at least one listener for the specified event.
++     */
++createjs.EventDispatcher.prototype.hasEventListener = function (type) {  return null; }
++
+diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js
+index 3c5c4a6..6adbfb6 100644
+--- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js
++++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/createjs/utils/Ticker.js
+@@ -1,632 +1,183 @@
+-/*
+-* Ticker
+-* Visit http://createjs.com/ for documentation, updates and examples.
+-*
+-* Copyright (c) 2010 gskinner.com, inc.
+-*
+-* Permission is hereby granted, free of charge, to any person
+-* obtaining a copy of this software and associated documentation
+-* files (the "Software"), to deal in the Software without
+-* restriction, including without limitation the rights to use,
+-* copy, modify, merge, publish, distribute, sublicense, and/or sell
+-* copies of the Software, and to permit persons to whom the
+-* Software is furnished to do so, subject to the following
+-* conditions:
+-*
+-* The above copyright notice and this permission notice shall be
+-* included in all copies or substantial portions of the Software.
+-*
+-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+-* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+-* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+-* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+-* OTHER DEALINGS IN THE SOFTWARE.
+-*/
+-
++/** @fileoverview Auto-generated Externs files
++ * @externs
++ */
+ /**
+- * @module CreateJS
++ * The Ticker provides a centralized tick or heartbeat broadcast at a set interval. Listeners can subscribe to the tick
++ * event to be notified when a set time interval has elapsed.
++ * 
++ * Note that the interval that the tick event is called is a target interval, and may be broadcast at a slower interval
++ * when under high CPU load. The Ticker class uses a static interface (ex. `createjs.Ticker.framerate = 30;`) and
++ * can not be instantiated.
 + * 
 + * <h4>Example</h4>
 + * 
@@ -999,7 +1004,8 @@ index 3c5c4a6..3f97740 100644
 + * }
 + *
 + * @see [Ticker]
-+ * @constructor  */
++ * @constructor
+  */
 +createjs.Ticker = function () {}
 +
 +    /**
@@ -1085,22 +1091,22 @@ index 3c5c4a6..3f97740 100644
 +    /**
 +     * Returns the actual frames / ticks per second.
 +     *
-+     * @param {(number|null|undefined)} ticks The number of previous ticks over which to measure the actual frames / ticks per second. Defaults to the number of ticks per second.
++     * @param {number=} opt_ticks The number of previous ticks over which to measure the actual frames / ticks per second. Defaults to the number of ticks per second.
 +     * @see [Ticker]
 +     * @returns {(number|null)} The actual frames / ticks per second. Depending on performance, this may differ from the target frames per second.
 +     */
-+createjs.Ticker.getMeasuredFPS = function (ticks) { return 0; }
++createjs.Ticker.getMeasuredFPS = function (opt_ticks) { return 0; }
 +
 +    /**
 +     * Returns the number of milliseconds that have elapsed since Ticker was initialized via {{#crossLink "Ticker/init"}}.
 +     * Returns -1 if Ticker has not been initialized. For example, you could use
 +     * this in a time synchronized animation to determine the exact amount of time that has elapsed.
 +     *
-+     * @param {(boolean|null|undefined)} runTime If true only time elapsed while Ticker was not paused will be returned. If false, the value returned will be total time elapsed since the first tick event listener was added.
++     * @param {boolean=} opt_runTime If true only time elapsed while Ticker was not paused will be returned. If false, the value returned will be total time elapsed since the first tick event listener was added.
 +     * @see [Ticker]
 +     * @returns {(number|null)} Number of milliseconds that have elapsed since Ticker was initialized or -1.
 +     */
-+createjs.Ticker.getTime = function (runTime) { return 0; }
++createjs.Ticker.getTime = function (opt_runTime) { return 0; }
 +
 +    /**
 +     * Returns the average time spent within a tick. This can vary significantly from the value provided by getMeasuredFPS
@@ -1114,11 +1120,11 @@ index 3c5c4a6..3f97740 100644
 +     * one tick and the end of the next. However, getMeasuredTickTime() returns 20ms. This would indicate that something
 +     * other than the tick is using ~80ms (another script, DOM rendering, etc).
 +     *
-+     * @param {(number|null|undefined)} ticks The number of previous ticks over which to measure the average time spent in a tick. Defaults to the number of ticks per second. To get only the last tick's time, pass in 1.
++     * @param {number=} opt_ticks The number of previous ticks over which to measure the average time spent in a tick. Defaults to the number of ticks per second. To get only the last tick's time, pass in 1.
 +     * @see [Ticker]
 +     * @returns {(number|null)} The average time spent in a tick in milliseconds.
 +     */
-+createjs.Ticker.getMeasuredTickTime = function (ticks) { return 0; }
++createjs.Ticker.getMeasuredTickTime = function (opt_ticks) { return 0; }
 +
 +    /**
 +     * Generated doc for missing method JSDoc.
@@ -1836,10 +1842,10 @@ index d09a381..4cdf289 100644
  	var subP = subclass.prototype, supP = (Object.getPrototypeOf&&Object.getPrototypeOf(subP))||subP.__proto__;
  	if (supP) {
 diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Bitmap.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Bitmap.js
-index eecac1a..99c556d 100644
+index eecac1a..4fbd265 100644
 --- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Bitmap.js
 +++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Bitmap.js
-@@ -1,214 +1,34 @@
+@@ -1,214 +1,36 @@
 -/*
 -* Bitmap
 -* Visit http://createjs.com/ for documentation, updates and examples.
@@ -1895,7 +1901,9 @@ index eecac1a..99c556d 100644
 + * </ol>
 + *
 + * @see [Bitmap]
-+ * @constructor  * @extends createjs.DisplayObject
++ * @param {(HTMLCanvasElement|HTMLVideoElement|Image|string|null)} imageOrUri The source object or URI to an image to display. This can be either an Image, Canvas, or Video object, or a string URI to an image file to load and use. If it is a URI, a new Image object will be constructed and assigned to the .image property.
++ * @constructor
++ * @extends createjs.DisplayObject
 + */
 +createjs.Bitmap = function (imageOrUri) {}
  
@@ -2082,10 +2090,10 @@ index eecac1a..99c556d 100644
 -	createjs.Bitmap = createjs.promote(Bitmap, "DisplayObject");
 -}());
 diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/BitmapText.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/BitmapText.js
-index bad6f1c..ff6f112 100644
+index b028d9b..6e030ec 100644
 --- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/BitmapText.js
 +++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/BitmapText.js
-@@ -1,343 +1,57 @@
+@@ -1,343 +1,60 @@
 -/*
 -* BitmapText
 -* Visit http://createjs.com/ for documentation, updates and examples.
@@ -2126,9 +2134,12 @@ index bad6f1c..ff6f112 100644
 + * As such, methods like addChild and removeChild are disabled.
 + *
 + * @see [BitmapText]
-+ * @constructor  * @extends createjs.DisplayObject
++ * @param {string=} opt_text The text to display.
++ * @param {createjs.SpriteSheet=} opt_spriteSheet The spritesheet that defines the character glyphs.
++ * @constructor
++ * @extends createjs.DisplayObject
 + */
-+createjs.BitmapText = function (text, spriteSheet) {}
++createjs.BitmapText = function (opt_text, opt_spriteSheet) {}
 +
 +    /**
 +     * @param {(createjs.SpriteSheet|null)} ss 
@@ -2485,11 +2496,12 @@ index bad6f1c..ff6f112 100644
 -
 -	createjs.BitmapText = createjs.promote(BitmapText, "Container");
 -}());
+\ No newline at end of file
 diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Container.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Container.js
-index ea406f7..2f58e1f 100644
+index b6bac78..f468405 100644
 --- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Container.js
 +++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/Container.js
-@@ -1,690 +1,309 @@
+@@ -1,690 +1,310 @@
 -/*
 -* Container
 -* Visit http://createjs.com/ for documentation, updates and examples.
@@ -2526,29 +2538,19 @@ index ea406f7..2f58e1f 100644
 -	
 -
 -// constructor:
-+/** @fileoverview Auto-generated Externs files
-+ * @externs
-+ */
- /**
-  * A Container is a nestable display list that allows you to work with compound display elements. For  example you could
-  * group arm, leg, torso and head {{#crossLink "Bitmap"}}{{/crossLink}} instances together into a Person Container, and
-  * transform them as a group, while still being able to move the individual parts relative to each other. Children of
-  * containers have their <code>transform</code> and <code>alpha</code> properties concatenated with their parent
+-/**
+- * A Container is a nestable display list that allows you to work with compound display elements. For  example you could
+- * group arm, leg, torso and head {{#crossLink "Bitmap"}}{{/crossLink}} instances together into a Person Container, and
+- * transform them as a group, while still being able to move the individual parts relative to each other. Children of
+- * containers have their <code>transform</code> and <code>alpha</code> properties concatenated with their parent
 - * Container.
 - *
-+ * createjs.Container.
-+ * 
-  * For example, a {{#crossLink "Shape"}}{{/crossLink}} with x=100 and alpha=0.5, placed in a Container with <code>x=50</code>
-  * and <code>alpha=0.7</code> will be rendered to the canvas at <code>x=150</code> and <code>alpha=0.35</code>.
-  * Containers have some overhead, so you generally shouldn't create a Container to hold a single child.
+- * For example, a {{#crossLink "Shape"}}{{/crossLink}} with x=100 and alpha=0.5, placed in a Container with <code>x=50</code>
+- * and <code>alpha=0.7</code> will be rendered to the canvas at <code>x=150</code> and <code>alpha=0.35</code>.
+- * Containers have some overhead, so you generally shouldn't create a Container to hold a single child.
+- *
+- * <h4>Example</h4>
 - *
-+ * 
-  * <h4>Example</h4>
-+ * 
-+ * var container = new createjs.Container();
-+ * container.addChild(bitmapInstance, shapeInstance);
-+ * container.x = 100;
-  *
 - *      var container = new createjs.Container();
 - *      container.addChild(bitmapInstance, shapeInstance);
 - *      container.x = 100;
@@ -2605,122 +2607,7 @@ index ea406f7..2f58e1f 100644
 -	p.getNumChildren = function() {
 -		return this.children.length;
 -	};
-+ * @see [Container]
-+ * @constructor  * @extends createjs.DisplayObject
-+ */
-+createjs.Container = function () {}
-+
-+    /**
-+     * @type {(Function|null)} 
-+     * @see [missing]
-+     */
-+createjs.Container.prototype.onClick;
-+
-+    /**
-+     * Returns the number of children in the container.
-+     *
-+     * @type {(number|null)} 
-+     * @see [Container]
-+     */
-+createjs.Container.prototype.numChildren;
-+
-+    /**
-+     * Performs an array sort operation on the child list.
-+     * 
-+     * <h4>Example: Display children with a higher y in front.</h4>
-+     * 
-+     * var sortFunction = function(obj1, obj2, options) {
-+     * if (obj1.y > obj2.y) { return 1; }
-+     * if (obj1.y < obj2.y) { return -1; }
-+     * return 0;
-+     * }
-+     * container.sortChildren(sortFunction);
-+     *
-+     * @param {(Function|null)} sortFunction the function to use to sort the child list. See JavaScript's <code>Array.sort</code> documentation for details.
-+     * @see [Container]
-+     */
-+createjs.Container.prototype.sortChildren = function (sortFunction) {  }
-+
-+    /**
-+     * Returns the index of the specified child in the display list, or -1 if it is not in the display list.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * var index = container.getChildIndex(child);
-+     *
-+     * @param {(createjs.DisplayObject|null)} child The child to return the index of.
-+     * @see [Container]
-+     * @returns {(number|null)} The index of the specified child. -1 if the child is not found.
-+     */
-+createjs.Container.prototype.getChildIndex = function (child) { return 0; }
-+
-+    /**
-+     * Returns true if the specified display object either is this container or is a descendent (child, grandchild, etc)
-+     * of this container.
-+     *
-+     * @param {(createjs.DisplayObject|null)} child The DisplayObject to be checked.
-+     * @see [Container]
-+     * @returns {(boolean|null)} true if the specified display object either is this container or is a descendent.
-+     */
-+createjs.Container.prototype.contains = function (child) {  return null; }
-+
-+
-+    /**
-+     * Adds a child to the display list at the specified index, bumping children at equal or greater indexes up one, and
-+     * setting its parent to this createjs.Container.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * addChildAt(child1, index);
-+     * 
-+     * You can also add multiple children, such as:
-+     * 
-+     * addChildAt(child1, child2, ..., index);
-+     * 
-+     * The index must be between 0 and numChildren. For example, to add myShape under otherShape in the display list,
-+     * you could use:
-+     * 
-+     * container.addChildAt(myShape, container.getChildIndex(otherShape));
-+     * 
-+     * This would also bump otherShape's index up by one. Fails silently if the index is out of range.
-+     *
-+     * @param {(createjs.DisplayObject|null)} child The display object to add.
-+     * @param {(number|null)} index The index to add the child at.
-+     * @see [Container]
-+     * @returns {(createjs.DisplayObject|null)} Returns the last child that was added, or the last child if multiple children were added.
-+     */
-+createjs.Container.prototype.addChildAt = function (child, index) {  return null; }
-+
-+    /**
-+     * Removes all children from the display list.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * container.removeAlLChildren();
-+     *
-+     * @see [Container]
-+     */
-+createjs.Container.prototype.removeAllChildren = function () {  }
-+
-+    /**
-+     * Removes the child at the specified index from the display list, and sets its parent to null.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * container.removeChildAt(2);
-+     * 
-+     * You can also remove multiple children:
-+     * 
-+     * container.removeChild(2, 7, ...)
-+     * 
-+     * Returns true if the child (or children) was removed, or false if any index was out of range.
-+     *
-+     * @param {(number|null)} index The index of the child to remove.
-+     * @see [Container]
-+     * @returns {(boolean|null)} true if the child (or children) was removed, or false if any index was out of range.
-+     */
-+createjs.Container.prototype.removeChildAt = function (index) {  return null; }
- 
+-
 -	/**
 -	 * Returns the number of children in the container.
 -	 * @property numChildren
@@ -2733,7 +2620,7 @@ index ea406f7..2f58e1f 100644
 -		});
 -	} catch (e) {}
 -	
- 
+-
 -// public methods:
 -	/**
 -	 * Constructor alias for backwards compatibility. This method will be removed in future versions.
@@ -2755,14 +2642,7 @@ index ea406f7..2f58e1f 100644
 -		var hasContent = this.cacheCanvas || this.children.length;
 -		return !!(this.visible && this.alpha > 0 && this.scaleX != 0 && this.scaleY != 0 && hasContent);
 -	};
-+    /**
-+     * Use the {{#crossLink "Container/numChildren:property"}}{{/crossLink}} property instead.
-+     *
-+     * @see [Container]
-+     * @returns {(number|null)} 
-+     */
-+createjs.Container.prototype.getNumChildren = function () { return 0; }
- 
+-
 -	/**
 -	 * Draws the display object into the specified context ignoring its visible, alpha, shadow, and transform.
 -	 * Returns true if the draw was handled (useful for overriding functionality).
@@ -2820,15 +2700,7 @@ index ea406f7..2f58e1f 100644
 -		child.dispatchEvent("added");
 -		return child;
 -	};
-+    /**
-+     * Swaps the children at the specified indexes. Fails silently if either index is out of range.
-+     *
-+     * @param {(number|null)} index1 
-+     * @param {(number|null)} index2 
-+     * @see [Container]
-+     */
-+createjs.Container.prototype.swapChildrenAt = function (index1, index2) {  }
- 
+-
 -	/**
 -	 * Adds a child to the display list at the specified index, bumping children at equal or greater indexes up one, and
 -	 * setting its parent to this Container.
@@ -2867,7 +2739,7 @@ index ea406f7..2f58e1f 100644
 -		child.dispatchEvent("added");
 -		return child;
 -	};
- 
+-
 -	/**
 -	 * Removes the specified child from the display list. Note that it is faster to use removeChildAt() if the index is
 -	 * already known.
@@ -2894,7 +2766,7 @@ index ea406f7..2f58e1f 100644
 -		}
 -		return this.removeChildAt(createjs.indexOf(this.children, child));
 -	};
- 
+-
 -	/**
 -	 * Removes the child at the specified index from the display list, and sets its parent to null.
 -	 *
@@ -2928,7 +2800,7 @@ index ea406f7..2f58e1f 100644
 -		child.dispatchEvent("removed");
 -		return true;
 -	};
- 
+-
 -	/**
 -	 * Removes all children from the display list.
 -	 *
@@ -2942,15 +2814,7 @@ index ea406f7..2f58e1f 100644
 -		var kids = this.children;
 -		while (kids.length) { this.removeChildAt(0); }
 -	};
-+    /**
-+     * Returns the child with the specified name.
-+     *
-+     * @param {(string|null)} name The name of the child to return.
-+     * @see [Container]
-+     * @returns {(createjs.DisplayObject|null)} The child with the specified name.
-+     */
-+createjs.Container.prototype.getChildByName = function (name) {  return null; }
- 
+-
 -	/**
 -	 * Returns the child at the specified index.
 -	 *
@@ -2979,7 +2843,7 @@ index ea406f7..2f58e1f 100644
 -		}
 -		return null;
 -	};
- 
+-
 -	/**
 -	 * Performs an array sort operation on the child list.
 -	 *
@@ -2999,19 +2863,7 @@ index ea406f7..2f58e1f 100644
 -	p.sortChildren = function(sortFunction) {
 -		this.children.sort(sortFunction);
 -	};
-+    /**
-+     * Returns the child at the specified index.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * container.getChildAt(2);
-+     *
-+     * @param {(number|null)} index The index of the child to return.
-+     * @see [Container]
-+     * @returns {(createjs.DisplayObject|null)} The child at the specified index. Returns null if there is no child at the index.
-+     */
-+createjs.Container.prototype.getChildAt = function (index) {  return null; }
- 
+-
 -	/**
 -	 * Returns the index of the specified child in the display list, or -1 if it is not in the display list.
 -	 *
@@ -3078,16 +2930,7 @@ index ea406f7..2f58e1f 100644
 -		kids.splice(i,1);
 -		kids.splice(index,0,child);
 -	};
-+    /**
-+     * Swaps the specified children's depth in the display list. Fails silently if either child is not a child of this
-+     * createjs.Container.
-+     *
-+     * @param {(createjs.DisplayObject|null)} child1 
-+     * @param {(createjs.DisplayObject|null)} child2 
-+     * @see [Container]
-+     */
-+createjs.Container.prototype.swapChildren = function (child1, child2) {  }
- 
+-
 -	/**
 -	 * Returns true if the specified display object either is this container or is a descendent (child, grandchild, etc)
 -	 * of this container.
@@ -3102,19 +2945,7 @@ index ea406f7..2f58e1f 100644
 -		}
 -		return false;
 -	};
-+    /**
-+     * Similar to {{#crossLink "Container/getObjectsUnderPoint"}}{{/crossLink}}, but returns only the top-most display
-+     * object. This runs significantly faster than <code>getObjectsUnderPoint()</code>, but is still potentially an expensive
-+     * operation. See {{#crossLink "Container/getObjectsUnderPoint"}}{{/crossLink}} for more information.
-+     *
-+     * @param {(number|null)} x The x position in the container to test.
-+     * @param {(number|null)} y The y position in the container to test.
-+     * @param {(number|null)} mode The mode to use to determine which display objects to include.  0-all, 1-respect mouseEnabled/mouseChildren, 2-only mouse opaque objects.
-+     * @see [Container]
-+     * @returns {(createjs.DisplayObject|null)} The top-most display object under the specified coordinates.
-+     */
-+createjs.Container.prototype.getObjectUnderPoint = function (x, y, mode) {  return null; }
- 
+-
 -	/**
 -	 * Tests whether the display object intersects the specified local point (ie. draws a pixel with alpha > 0 at the
 -	 * specified position). This ignores the alpha, shadow and compositeOperation of the display object, and all
@@ -3129,7 +2960,7 @@ index ea406f7..2f58e1f 100644
 -		// TODO: optimize to use the fast cache check where possible.
 -		return (this.getObjectUnderPoint(x, y) != null);
 -	};
- 
+-
 -	/**
 -	 * Returns an array of all display objects under the specified coordinates that are in this container's display
 -	 * list. This routine ignores any display objects with {{#crossLink "DisplayObject/mouseEnabled:property"}}{{/crossLink}}
@@ -3161,7 +2992,7 @@ index ea406f7..2f58e1f 100644
 -		this._getObjectsUnderPoint(pt.x, pt.y, arr, mode>0, mode==1);
 -		return arr;
 -	};
- 
+-
 -	/**
 -	 * Similar to {{#crossLink "Container/getObjectsUnderPoint"}}{{/crossLink}}, but returns only the top-most display
 -	 * object. This runs significantly faster than <code>getObjectsUnderPoint()</code>, but is still potentially an expensive
@@ -3191,15 +3022,7 @@ index ea406f7..2f58e1f 100644
 -	p.getTransformedBounds = function() {
 -		return this._getBounds();
 -	};
-+    /**
-+     * Changes the depth of the specified child. Fails silently if the child is not a child of this container, or the index is out of range.
-+     *
-+     * @param {(createjs.DisplayObject|null)} child 
-+     * @param {(number|null)} index 
-+     * @see [Container]
-+     */
-+createjs.Container.prototype.setChildIndex = function (child, index) {  }
- 
+-
 -	/**
 -	 * Returns a clone of this Container. Some properties that are specific to this instance's current context are
 -	 * reverted to their defaults (for example .parent).
@@ -3213,34 +3036,7 @@ index ea406f7..2f58e1f 100644
 -		if (recursive) { this._cloneChildren(o); }
 -		return o;
 -	};
-+    /**
-+     * Returns an array of all display objects under the specified coordinates that are in this container's display
-+     * list. This routine ignores any display objects with {{#crossLink "DisplayObject/mouseEnabled:property"}}{{/crossLink}}
-+     * set to `false`. The array will be sorted in order of visual depth, with the top-most display object at index 0.
-+     * This uses shape based hit detection, and can be an expensive operation to run, so it is best to use it carefully.
-+     * For example, if testing for objects under the mouse, test on tick (instead of on {{#crossLink "DisplayObject/mousemove:event"}}{{/crossLink}}),
-+     * and only if the mouse's position has changed.
-+     * 
-+     * <ul>
-+     * <li>By default (mode=0) this method evaluates all display objects.</li>
-+     * <li>By setting the `mode` parameter to `1`, the {{#crossLink "DisplayObject/mouseEnabled:property"}}{{/crossLink}}
-+     * and {{#crossLink "mouseChildren:property"}}{{/crossLink}} properties will be respected.</li>
-+     * <li>Setting the `mode` to `2` additionally excludes display objects that do not have active mouse event
-+     * listeners or a {{#crossLink "DisplayObject:cursor:property"}}{{/crossLink}} property. That is, only objects
-+     * that would normally intercept mouse interaction will be included. This can significantly improve performance
-+     * in some cases by reducing the number of display objects that need to be tested.</li>
-+     * </li>
-+     * 
-+     * This method accounts for both {{#crossLink "DisplayObject/hitArea:property"}}{{/crossLink}} and {{#crossLink "DisplayObject/mask:property"}}{{/crossLink}}.
-+     *
-+     * @param {(number|null)} x The x position in the container to test.
-+     * @param {(number|null)} y The y position in the container to test.
-+     * @param {(number|null|undefined)} mode The mode to use to determine which display objects to include. 0-all, 1-respect mouseEnabled/mouseChildren, 2-only mouse opaque objects.
-+     * @see [Container]
-+     * @returns {(Array|null)} An Array of DisplayObjects under the specified coordinates.
-+     */
-+createjs.Container.prototype.getObjectsUnderPoint = function (x, y, mode) {  return null; }
- 
+-
 -	/**
 -	 * Returns a string representation of this object.
 -	 * @method toString
@@ -3249,38 +3045,8 @@ index ea406f7..2f58e1f 100644
 -	p.toString = function() {
 -		return "[Container (name="+  this.name +")]";
 -	};
-+    /**
-+     * Removes the specified child from the display list. Note that it is faster to use removeChildAt() if the index is
-+     * already known.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * container.removeChild(child);
-+     * 
-+     * You can also remove multiple children:
-+     * 
-+     * removeChild(child1, child2, ...);
-+     * 
-+     * Returns true if the child (or children) was removed, or false if it was not in the display list.
-+     *
-+     * @param {(createjs.DisplayObject|null)} child The child to remove.
-+     * @see [Container]
-+     * @returns {(boolean|null)} true if the child (or children) was removed, or false if it was not in the display list.
-+     */
-+createjs.Container.prototype.removeChild = function (child) {  return null; }
- 
-+    /**
-+     * @param {(number|null)} x 
-+     * @param {(number|null)} y 
-+     * @param {(Array|null)} arr 
-+     * @param {(boolean|null)} mouse If true, it will respect mouse interaction properties like mouseEnabled, mouseChildren, and active listeners.
-+     * @param {(boolean|null)} activeListener If true, there is an active mouse event listener on a parent object.
-+     * @param {(number|null)} currentDepth Indicates the current depth of the search.
-+     * @see [Container]
-+     * @returns {(createjs.DisplayObject|null)} 
-+     */
-+createjs.Container.prototype._getObjectsUnderPoint = function (x, y, arr, mouse, activeListener, currentDepth) {  return null; }
- 
+-
+-
 -// private methods:
 -	/**
 -	 * @method _tick
@@ -3312,15 +3078,7 @@ index ea406f7..2f58e1f 100644
 -			arr.push(clone);
 -		}
 -	};
-+    /**
-+     * @param {(createjs.DisplayObject|null)} target 
-+     * @param {(number|null)} x 
-+     * @param {(number|null)} y 
-+     * @see [Container]
-+     * @returns {(boolean|null)} Indicates whether the x/y is within the masked region.
-+     */
-+createjs.Container.prototype._testMask = function (target, x, y) {  return null; }
- 
+-
 -	/**
 -	 * @method _getObjectsUnderPoint
 -	 * @param {Number} x
@@ -3337,23 +3095,7 @@ index ea406f7..2f58e1f 100644
 -		if (!currentDepth && !this._testMask(this, x, y)) { return null; }
 -		var mtx, ctx = createjs.DisplayObject._hitTestContext;
 -		activeListener = activeListener || (mouse&&this._hasMouseEventListener());
-+    /**
-+     * Adds a child to the top of the display list.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * container.addChild(bitmapInstance);
-+     * 
-+     * You can also add multiple children at once:
-+     * 
-+     * container.addChild(bitmapInstance, shapeInstance, textInstance);
-+     *
-+     * @param {(createjs.DisplayObject|null)} child The display object to add.
-+     * @see [Container]
-+     * @returns {(createjs.DisplayObject|null)} The child that was added, or the last child if multiple children were added.
-+     */
-+createjs.Container.prototype.addChild = function (child) {  return null; }
- 
+-
 -		// draw children one at a time, and check if we get a hit:
 -		var children = this.children, l = children.length;
 -		for (var i=l-1; i>=0; i--) {
@@ -3446,2193 +3188,2505 @@ index ea406f7..2f58e1f 100644
 -		}
 -		return rect;
 -	};
- 
-+    /**
-+     * Recursively clones all children of this container, and adds them to the target container.
-+     *
-+     * @param {(createjs.Container|null)} o The target container.
-+     * @see [Container]
-+     */
-+createjs.Container.prototype._cloneChildren = function (o) {  }
- 
+-
+-
 -	createjs.Container = createjs.promote(Container, "DisplayObject");
 -}());
-diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DOMElement.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DOMElement.js
-index f6eab31..de5f57e 100644
---- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DOMElement.js
-+++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DOMElement.js
-@@ -1,273 +1,53 @@
--/*
--* DOMElement
--* Visit http://createjs.com/ for documentation, updates and examples.
--*
--* Copyright (c) 2010 gskinner.com, inc.
--*
--* Permission is hereby granted, free of charge, to any person
--* obtaining a copy of this software and associated documentation
--* files (the "Software"), to deal in the Software without
--* restriction, including without limitation the rights to use,
--* copy, modify, merge, publish, distribute, sublicense, and/or sell
--* copies of the Software, and to permit persons to whom the
--* Software is furnished to do so, subject to the following
--* conditions:
--*
--* The above copyright notice and this permission notice shall be
--* included in all copies or substantial portions of the Software.
--*
--* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
--* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
--* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
--* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
--* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
--* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
--* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
--* OTHER DEALINGS IN THE SOFTWARE.
--*/
--
+\ No newline at end of file
 +/** @fileoverview Auto-generated Externs files
 + * @externs
 + */
- /**
-- * @module EaselJS
-+ * <b>This class is still experimental, and more advanced use is likely to be buggy. Please report bugs.</b>
-+ * 
-+ * A DOMElement allows you to associate a HTMLElement with the display list. It will be transformed
-+ * within the DOM as though it is child of the {{#crossLink "Container"}}{{/crossLink}} it is added to. However, it is
-+ * not rendered to canvas, and as such will retain whatever z-index it has relative to the canvas (ie. it will be
-+ * drawn in front of or behind the canvas).
-+ * 
-+ * The position of a DOMElement is relative to their parent node in the DOM. It is recommended that
-+ * the DOM Object be added to a div that also contains the canvas so that they share the same position
-+ * on the page.
-+ * 
-+ * DOMElement is useful for positioning HTML elements over top of canvas content, and for elements
-+ * that you want to display outside the bounds of the canvas. For example, a tooltip with rich HTML
-+ * content.
++/**
++ * A Container is a nestable display list that allows you to work with compound display elements. For  example you could
++ * group arm, leg, torso and head {{#crossLink "Bitmap"}}{{/crossLink}} instances together into a Person Container, and
++ * transform them as a group, while still being able to move the individual parts relative to each other. Children of
++ * containers have their <code>transform</code> and <code>alpha</code> properties concatenated with their parent
++ * createjs.Container.
 + * 
-+ * <h4>Mouse Interaction</h4>
++ * For example, a {{#crossLink "Shape"}}{{/crossLink}} with x=100 and alpha=0.5, placed in a Container with <code>x=50</code>
++ * and <code>alpha=0.7</code> will be rendered to the canvas at <code>x=150</code> and <code>alpha=0.35</code>.
++ * Containers have some overhead, so you generally shouldn't create a Container to hold a single child.
 + * 
-+ * DOMElement instances are not full EaselJS display objects, and do not participate in EaselJS mouse
-+ * events or support methods like hitTest. To get mouse events from a DOMElement, you must instead add handlers to
-+ * the htmlElement (note, this does not support EventDispatcher)
++ * <h4>Example</h4>
 + * 
-+ * var domElement = new createjs.DOMElement(htmlElement);
-+ * domElement.htmlElement.onclick = function() {
-+ * console.log("clicked");
-+ * }
++ * var container = new createjs.Container();
++ * container.addChild(bitmapInstance, shapeInstance);
++ * container.x = 100;
 + *
-+ * @see [DOMElement]
-+ * @constructor  * @extends createjs.DisplayObject
-  */
-+createjs.DOMElement = function (htmlElement) {}
- 
--// namespace:
--this.createjs = this.createjs||{};
--
--(function() {
--	"use strict";
--
--
--// constructor:
--	/**
--	 * <b>This class is still experimental, and more advanced use is likely to be buggy. Please report bugs.</b>
--	 *
--	 * A DOMElement allows you to associate a HTMLElement with the display list. It will be transformed
--	 * within the DOM as though it is child of the {{#crossLink "Container"}}{{/crossLink}} it is added to. However, it is
--	 * not rendered to canvas, and as such will retain whatever z-index it has relative to the canvas (ie. it will be
--	 * drawn in front of or behind the canvas).
--	 *
--	 * The position of a DOMElement is relative to their parent node in the DOM. It is recommended that
--	 * the DOM Object be added to a div that also contains the canvas so that they share the same position
--	 * on the page.
--	 *
--	 * DOMElement is useful for positioning HTML elements over top of canvas content, and for elements
--	 * that you want to display outside the bounds of the canvas. For example, a tooltip with rich HTML
--	 * content.
--	 *
--	 * <h4>Mouse Interaction</h4>
--	 *
--	 * DOMElement instances are not full EaselJS display objects, and do not participate in EaselJS mouse
--	 * events or support methods like hitTest. To get mouse events from a DOMElement, you must instead add handlers to
--	 * the htmlElement (note, this does not support EventDispatcher)
--	 *
--	 *      var domElement = new createjs.DOMElement(htmlElement);
--	 *      domElement.htmlElement.onclick = function() {
--	 *          console.log("clicked");
--	 *      }
--	 *
--	 * @class DOMElement
--	 * @extends DisplayObject
--	 * @constructor
--	 * @param {HTMLElement} htmlElement A reference or id for the DOM element to manage.
--	 */
--	function DOMElement(htmlElement) {
--		this.DisplayObject_constructor();
--		
--		if (typeof(htmlElement)=="string") { htmlElement = document.getElementById(htmlElement); }
--		this.mouseEnabled = false;
--		
--		var style = htmlElement.style;
--		style.position = "absolute";
--		style.transformOrigin = style.WebkitTransformOrigin = style.msTransformOrigin = style.MozTransformOrigin = style.OTransformOrigin = "0% 0%";
--		
--		
--	// public properties:
--		/**
--		 * The DOM object to manage.
--		 * @property htmlElement
--		 * @type HTMLElement
--		 */
--		this.htmlElement = htmlElement;
--	
--	
--	// private properties:
--		/**
--		 * @property _oldMtx
--		 * @type Matrix2D
--		 * @protected
--		 */
--		this._oldProps = null;
--	}
--	var p = createjs.extend(DOMElement, createjs.DisplayObject);
--
--	// TODO: deprecated
--	// p.initialize = function() {}; // searchable for devs wondering where it is. REMOVED. See docs for details.
--
--
--// public methods:
--	/**
--	 * Returns true or false indicating whether the display object would be visible if drawn to a canvas.
--	 * This does not account for whether it would be visible within the boundaries of the stage.
--	 * NOTE: This method is mainly for internal use, though it may be useful for advanced uses.
--	 * @method isVisible
--	 * @return {Boolean} Boolean indicating whether the display object would be visible if drawn to a canvas
--	 */
--	p.isVisible = function() {
--		return this.htmlElement != null;
--	};
--
--	/**
--	 * Draws the display object into the specified context ignoring its visible, alpha, shadow, and transform.
--	 * Returns true if the draw was handled (useful for overriding functionality).
--	 * NOTE: This method is mainly for internal use, though it may be useful for advanced uses.
--	 * @method draw
--	 * @param {CanvasRenderingContext2D} ctx The canvas 2D context object to draw into.
--	 * @param {Boolean} ignoreCache Indicates whether the draw operation should ignore any current cache.
--	 * For example, used for drawing the cache (to prevent it from simply drawing an existing cache back
--	 * into itself).
--	 * @return {Boolean}
--	 */
--	p.draw = function(ctx, ignoreCache) {
--		// this relies on the _tick method because draw isn't called if the parent is not visible.
--		// the actual update happens in _handleDrawEnd
--		return true;
--	};
--
--	/**
--	 * Not applicable to DOMElement.
--	 * @method cache
--	 */
--	p.cache = function() {};
--
--	/**
--	 * Not applicable to DOMElement.
--	 * @method uncache
--	 */
--	p.uncache = function() {};
--
--	/**
--	 * Not applicable to DOMElement.
--	 * @method updateCache
--	 */
--	p.updateCache = function() {};
--
--	/**
--	 * Not applicable to DOMElement.
--	 * @method hitTest
--	 */
--	p.hitTest = function() {};
--
--	/**
--	 * Not applicable to DOMElement.
--	 * @method localToGlobal
--	 */
--	p.localToGlobal = function() {};
- 
--	/**
--	 * Not applicable to DOMElement.
--	 * @method globalToLocal
--	 */
--	p.globalToLocal = function() {};
- 
--	/**
--	 * Not applicable to DOMElement.
--	 * @method localToLocal
--	 */
--	p.localToLocal = function() {};
- 
--	/**
--	 * DOMElement cannot be cloned. Throws an error.
--	 * @method clone
--	 */
--	p.clone = function() {
--		throw("DOMElement cannot be cloned.")
--	};
- 
--	/**
--	 * Returns a string representation of this object.
--	 * @method toString
--	 * @return {String} a string representation of the instance.
--	 */
--	p.toString = function() {
--		return "[DOMElement (name="+  this.name +")]";
--	};
- 
--	/**
--     * Interaction events should be added to `htmlElement`, and not the DOMElement instance, since DOMElement instances
--	 * are not full EaselJS display objects and do not participate in EaselJS mouse events.
--	 * @event click
--	 */
- 
--     /**
--     * Interaction events should be added to `htmlElement`, and not the DOMElement instance, since DOMElement instances
-- 	 * are not full EaselJS display objects and do not participate in EaselJS mouse events.
--	 * @event dblClick
--	 */
- 
--     /**
--      * Interaction events should be added to `htmlElement`, and not the DOMElement instance, since DOMElement instances
-- 	  * are not full EaselJS display objects and do not participate in EaselJS mouse events.
--	  * @event mousedown
--	  */
- 
--     /**
--      * The HTMLElement can listen for the mouseover event, not the DOMElement instance.
--      * Since DOMElement instances are not full EaselJS display objects and do not participate in EaselJS mouse events.
--      * @event mouseover
--	  */
- 
--     /**
--      * Not applicable to DOMElement.
--	  * @event tick
--	  */
- 
- 
--// private methods:
--	/**
--	 * @method _tick
--	 * @param {Object} evtObj An event object that will be dispatched to all tick listeners. This object is reused between dispatchers to reduce construction & GC costs.
--	 * function.
--	 * @protected
--	 */
--	p._tick = function(evtObj) {
--		var stage = this.getStage();
--		stage&&stage.on("drawend", this._handleDrawEnd, this, true);
--		this.DisplayObject__tick(evtObj);
--	};
--	
--	/**
--	 * @method _handleDrawEnd
--	 * @param {Event} evt
--	 * @protected
--	 */
--	p._handleDrawEnd = function(evt) {
--		var o = this.htmlElement;
--		if (!o) { return; }
--		var style = o.style;
--		
--		var props = this.getConcatenatedDisplayProps(this._props), mtx = props.matrix;
--		
--		var visibility = props.visible ? "visible" : "hidden";
--		if (visibility != style.visibility) { style.visibility = visibility; }
--		if (!props.visible) { return; }
--		
--		var oldProps = this._oldProps, oldMtx = oldProps&&oldProps.matrix;
--		var n = 10000; // precision
--		
--		if (!oldMtx || !oldMtx.equals(mtx)) {
--			var str = "matrix(" + (mtx.a*n|0)/n +","+ (mtx.b*n|0)/n +","+ (mtx.c*n|0)/n +","+ (mtx.d*n|0)/n +","+ (mtx.tx+0.5|0);
--			style.transform = style.WebkitTransform = style.OTransform = style.msTransform = str +","+ (mtx.ty+0.5|0) +")";
--			style.MozTransform = str +"px,"+ (mtx.ty+0.5|0) +"px)";
--			if (!oldProps) { oldProps = this._oldProps = new createjs.DisplayProps(true, NaN); }
--			oldProps.matrix.copy(mtx);
--		}
--		
--		if (oldProps.alpha != props.alpha) {
--			style.opacity = ""+(props.alpha*n|0)/n;
--			oldProps.alpha = props.alpha;
--		}
--	};
- 
-+    /**
-+     * @param {(Event|null)} evt 
-+     * @see [DOMElement]
-+     */
-+createjs.DOMElement.prototype._handleDrawEnd = function (evt) {  }
- 
--	createjs.DOMElement = createjs.promote(DOMElement, "DisplayObject");
--}());
-diff --git a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DisplayObject.js b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DisplayObject.js
-index 90b4526..ee21bf6 100644
---- a/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DisplayObject.js
-+++ b/externs/createjs/target/downloads/EaselJS-0.8.0/src/easeljs/display/DisplayObject.js
-@@ -1,1364 +1,492 @@
--/*
--* DisplayObject
--* Visit http://createjs.com/ for documentation, updates and examples.
--*
--* Copyright (c) 2010 gskinner.com, inc.
--* 
--* Permission is hereby granted, free of charge, to any person
--* obtaining a copy of this software and associated documentation
--* files (the "Software"), to deal in the Software without
--* restriction, including without limitation the rights to use,
--* copy, modify, merge, publish, distribute, sublicense, and/or sell
--* copies of the Software, and to permit persons to whom the
--* Software is furnished to do so, subject to the following
--* conditions:
--* 
--* The above copyright notice and this permission notice shall be
--* included in all copies or substantial portions of the Software.
--* 
--* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
--* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
--* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
--* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
--* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
--* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
--* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
--* OTHER DEALINGS IN THE SOFTWARE.
--*/
--
-+/** @fileoverview Auto-generated Externs files
-+ * @externs
++ * @see [Container]
++ * @constructor
++ * @extends createjs.DisplayObject
 + */
- /**
-- * The EaselJS Javascript library provides a retained graphics mode for canvas including a full hierarchical display
-- * list, a core interaction model, and helper classes to make working with 2D graphics in Canvas much easier.
-- * EaselJS provides straight forward solutions for working with rich graphics and interactivity with HTML5 Canvas...
-- *
-- * <h4>Getting Started</h4>
-- * To get started with Easel, create a {{#crossLink "Stage"}}{{/crossLink}} that wraps a CANVAS element, and add
-- * {{#crossLink "DisplayObject"}}{{/crossLink}} instances as children. EaselJS supports:
-- * <ul>
-- *      <li>Images using {{#crossLink "Bitmap"}}{{/crossLink}}</li>
-- *      <li>Vector graphics using {{#crossLink "Shape"}}{{/crossLink}} and {{#crossLink "Graphics"}}{{/crossLink}}</li>
-- *      <li>Animated bitmaps using {{#crossLink "SpriteSheet"}}{{/crossLink}} and {{#crossLink "Sprite"}}{{/crossLink}}
-- *      <li>Simple text instances using {{#crossLink "Text"}}{{/crossLink}}</li>
-- *      <li>Containers that hold other DisplayObjects using {{#crossLink "Container"}}{{/crossLink}}</li>
-- *      <li>Control HTML DOM elements using {{#crossLink "DOMElement"}}{{/crossLink}}</li>
-- * </ul>
-- *
-- * All display objects can be added to the stage as children, or drawn to a canvas directly.
-- *
-- * <b>User Interactions</b><br />
-- * All display objects on stage (except DOMElement) will dispatch events when interacted with using a mouse or
-- * touch. EaselJS supports hover, press, and release events, as well as an easy-to-use drag-and-drop model. Check out
-- * {{#crossLink "MouseEvent"}}{{/crossLink}} for more information.
-- *
-- * <h4>Simple Example</h4>
-- * This example illustrates how to create and position a {{#crossLink "Shape"}}{{/crossLink}} on the {{#crossLink "Stage"}}{{/crossLink}}
-- * using EaselJS' drawing API.
-- *
-- *	    //Create a stage by getting a reference to the canvas
-- *	    stage = new createjs.Stage("demoCanvas");
-- *	    //Create a Shape DisplayObject.
-- *	    circle = new createjs.Shape();
-- *	    circle.graphics.beginFill("red").drawCircle(0, 0, 40);
-- *	    //Set position of Shape instance.
-- *	    circle.x = circle.y = 50;
-- *	    //Add Shape instance to stage display list.
-- *	    stage.addChild(circle);
-- *	    //Update stage will render next frame
-- *	    stage.update();
-- *
-- * <b>Simple Interaction Example</b><br>
-- *
-- *      displayObject.addEventListener("click", handleClick);
-- *      function handleClick(event){
-- *          // Click happenened
-- *      }
-- *
-- *      displayObject.addEventListener("mousedown", handlePress);
-- *      function handlePress(event) {
-- *          // A mouse press happened.
-- *          // Listen for mouse move while the mouse is down:
-- *          event.addEventListener("mousemove", handleMove);
-- *      }
-- *      function handleMove(event) {
-- *          // Check out the DragAndDrop example in GitHub for more
-- *      }
-- *
-- * <b>Simple Animation Example</b><br />
-- * This example moves the shape created in the previous demo across the screen.
-- *
-- *	    //Update stage will render next frame
-- *	    createjs.Ticker.addEventListener("tick", handleTick);
-+ * DisplayObject is an abstract class that should not be constructed directly. Instead construct subclasses such as
-+ * {{#crossLink "Container"}}{{/crossLink}}, {{#crossLink "Bitmap"}}{{/crossLink}}, and {{#crossLink "Shape"}}{{/crossLink}}.
-+ * DisplayObject is the base class for all display classes in the EaselJS library. It defines the core properties and
-+ * methods that are shared between all display objects, such as transformation properties (x, y, scaleX, scaleY, etc),
-+ * caching, and mouse handlers.
-  *
-- *	    function handleTick() {
-- *          //Circle will move 10 units to the right.
-- *	    	circle.x += 10;
-- *	    	//Will cause the circle to wrap back
-- * 	    	if (circle.x > stage.canvas.width) { circle.x = 0; }
-- *	    	stage.update();
-- *	    }
-- *
-- * <h4>Other Features</h4>
-- * EaselJS also has built in support for
-- * <ul><li>Canvas features such as {{#crossLink "Shadow"}}{{/crossLink}} and CompositeOperation</li>
-- *      <li>{{#crossLink "Ticker"}}{{/crossLink}}, a global heartbeat that objects can subscribe to</li>
-- *      <li>Filters, including a provided {{#crossLink "ColorMatrixFilter"}}{{/crossLink}}, {{#crossLink "AlphaMaskFilter"}}{{/crossLink}},
-- *      {{#crossLink "AlphaMapFilter"}}{{/crossLink}}, and {{#crossLink "BlurFilter"}}{{/crossLink}}. See {{#crossLink "Filter"}}{{/crossLink}}
-- *      for more information</li>
-- *      <li>A {{#crossLink "ButtonHelper"}}{{/crossLink}} utility, to easily create interactive buttons</li>
-- *      <li>{{#crossLink "SpriteSheetUtils"}}{{/crossLink}} and a {{#crossLink "SpriteSheetBuilder"}}{{/crossLink}} to
-- *      help build and manage {{#crossLink "SpriteSheet"}}{{/crossLink}} functionality at run-time.</li>
-- * </ul>
-- *
-- * <h4>Browser Support</h4>
-- * All modern browsers that support Canvas will support EaselJS (<a href="http://caniuse.com/canvas">http://caniuse.com/canvas</a>).
-- * Browser performance may vary between platforms, for example, Android Canvas has poor hardware support, and is much
-- * slower on average than most other browsers.
-- *
-- * @module EaselJS
-- * @main EaselJS
-+ * @see [DisplayObject]
-+ * @constructor  * @extends createjs.EventDispatcher
-  */
-+createjs.DisplayObject = function () {}
++createjs.Container = function () {}
 +
 +    /**
-+     * @type {number} 
++     * @type {(Function|null)} 
 +     * @see [missing]
 +     */
-+createjs.DisplayObject.prototype.height;
++createjs.Container.prototype.onClick;
 +
 +    /**
-+     * @type {boolean} 
-+     * @see [missing]
++     * Returns the number of children in the container.
++     *
++     * @type {(number|null)} 
++     * @see [Container]
 +     */
-+createjs.DisplayObject.prototype.visible;
++createjs.Container.prototype.numChildren;
 +
 +    /**
-+     * @type {number} 
-+     * @see [missing]
++     * Performs an array sort operation on the child list.
++     * 
++     * <h4>Example: Display children with a higher y in front.</h4>
++     * 
++     * var sortFunction = function(obj1, obj2, options) {
++     * if (obj1.y > obj2.y) { return 1; }
++     * if (obj1.y < obj2.y) { return -1; }
++     * return 0;
++     * }
++     * container.sortChildren(sortFunction);
++     *
++     * @param {(Function|null)} sortFunction the function to use to sort the child list. See JavaScript's <code>Array.sort</code> documentation for details.
++     * @see [Container]
 +     */
-+createjs.DisplayObject.prototype.alpha;
++createjs.Container.prototype.sortChildren = function (sortFunction) {  }
 +
 +    /**
-+     * @type {string} 
-+     * @see [missing]
++     * Returns the index of the specified child in the display list, or -1 if it is not in the display list.
++     * 
++     * <h4>Example</h4>
++     * 
++     * var index = container.getChildIndex(child);
++     *
++     * @param {(createjs.DisplayObject|null)} child The child to return the index of.
++     * @see [Container]
++     * @returns {(number|null)} The index of the specified child. -1 if the child is not found.
 +     */
-+createjs.DisplayObject.prototype.name;
++createjs.Container.prototype.getChildIndex = function (child) { return 0; }
 +
 +    /**
-+     * @type {number} 
-+     * @see [missing]
-+     */
-+createjs.DisplayObject.prototype.width;
-+
-+    /**
-+     * @type {(createjs.Graphics|null)} 
-+     * @see [missing]
-+     */
-+createjs.DisplayObject.prototype.graphics;
-+
-+    /**
-+     * Returns the Stage instance that this display object will be rendered on, or null if it has not been added to one.
++     * Returns true if the specified display object either is this container or is a descendent (child, grandchild, etc)
++     * of this container.
 +     *
-+     * @type {(createjs.Stage|null)} 
-+     * @see [DisplayObject]
-+     */
-+createjs.DisplayObject.prototype.stage;
-+
-+    /**
-+     * @type {number} 
-+     * @see [missing]
++     * @param {(createjs.DisplayObject|null)} child The DisplayObject to be checked.
++     * @see [Container]
++     * @returns {(boolean|null)} true if the specified display object either is this container or is a descendent.
 +     */
-+createjs.DisplayObject.prototype.y;
++createjs.Container.prototype.contains = function (child) {  return null; }
 +
-+    /**
-+     * @type {number} 
-+     * @see [missing]
-+     */
-+createjs.DisplayObject.prototype.x;
 +
 +    /**
-+     * Applies this display object's transformation, alpha, globalCompositeOperation, clipping path (mask), and shadow
-+     * to the specified context. This is typically called prior to {{#crossLink "DisplayObject/draw"}}{{/crossLink}}.
++     * Adds a child to the display list at the specified index, bumping children at equal or greater indexes up one, and
++     * setting its parent to this createjs.Container.
++     * 
++     * <h4>Example</h4>
++     * 
++     * addChildAt(child1, index);
++     * 
++     * You can also add multiple children, such as:
++     * 
++     * addChildAt(child1, child2, ..., index);
++     * 
++     * The index must be between 0 and numChildren. For example, to add myShape under otherShape in the display list,
++     * you could use:
++     * 
++     * container.addChildAt(myShape, container.getChildIndex(otherShape));
++     * 
++     * This would also bump otherShape's index up by one. Fails silently if the index is out of range.
 +     *
-+     * @param {(CanvasRenderingContext2D|null)} ctx The canvas 2D to update.
-+     * @see [DisplayObject]
++     * @param {(createjs.DisplayObject|null)} child The display object to add.
++     * @param {(number|null)} index The index to add the child at.
++     * @see [Container]
++     * @returns {(createjs.DisplayObject|null)} Returns the last child that was added, or the last child if multiple children were added.
 +     */
-+createjs.DisplayObject.prototype.updateContext = function (ctx) {  }
++createjs.Container.prototype.addChildAt = function (child, index) {  return null; }
 +
 +    /**
-+     * Provides a chainable shortcut method for setting a number of properties on the instance.
++     * Removes all children from the display list.
 +     * 
 +     * <h4>Example</h4>
 +     * 
-+     * var myGraphics = new createjs.Graphics().beginFill("#ff0000").drawCircle(0, 0, 25);
-+     * var shape = stage.addChild(new Shape()).set({graphics:myGraphics, x:100, y:100, alpha:0.5});
++     * container.removeAlLChildren();
 +     *
-+     * @param {(Object|null)} props A generic object containing properties to copy to the DisplayObject instance.
-+     * @see [DisplayObject]
-+     * @returns {(createjs.DisplayObject|null)} Returns the instance the method is called on (useful for chaining calls.)
++     * @see [Container]
 +     */
-+createjs.DisplayObject.prototype.set = function (props) {  return null; }
++createjs.Container.prototype.removeAllChildren = function () {  }
 +
 +    /**
-+     * Transforms the specified x and y position from the coordinate space of the display object
-+     * to the global (stage) coordinate space. For example, this could be used to position an HTML label
-+     * over a specific point on a nested display object. Returns a Point instance with x and y properties
-+     * correlating to the transformed coordinates on the stage.
++     * Removes the child at the specified index from the display list, and sets its parent to null.
 +     * 
 +     * <h4>Example</h4>
 +     * 
-+     * displayObject.x = 300;
-+     * displayObject.y = 200;
-+     * stage.addChild(displayObject);
-+     * var point = mycreatejs.DisplayObject.localToGlobal(100, 100);
-+     * // Results in x=400, y=300
++     * container.removeChildAt(2);
++     * 
++     * You can also remove multiple children:
++     * 
++     * container.removeChild(2, 7, ...)
++     * 
++     * Returns true if the child (or children) was removed, or false if any index was out of range.
 +     *
-+     * @param {(number|null)} x The x position in the source display object to transform.
-+     * @param {(number|null)} y The y position in the source display object to transform.
-+     * @param {(Object|createjs.Point|null|undefined)} pt An object to copy the result into. If omitted a new Point object with x/y properties will be returned.
-+     * @see [DisplayObject]
-+     * @returns {(createjs.Point|null)} A Point instance with x and y properties correlating to the transformed coordinates on the stage.
++     * @param {(number|null)} index The index of the child to remove.
++     * @see [Container]
++     * @returns {(boolean|null)} true if the child (or children) was removed, or false if any index was out of range.
 +     */
-+createjs.DisplayObject.prototype.localToGlobal = function (x, y, pt) {  return null; }
++createjs.Container.prototype.removeChildAt = function (index) {  return null; }
 +
-+    /**
-+     * @param {(CanvasRenderingContext2D|null)} ctx 
-+     * @see [DisplayObject]
-+     * @returns {(boolean|null)} 
-+     */
-+createjs.DisplayObject.prototype._testHit = function (ctx) {  return null; }
 +
 +    /**
-+     * @see [DisplayObject]
-+     * @returns {(createjs.Rectangle|null)} 
++     * Use the {{#crossLink "Container/numChildren:property"}}{{/crossLink}} property instead.
++     *
++     * @see [Container]
++     * @returns {(number|null)} 
 +     */
-+createjs.DisplayObject.prototype._getFilterBounds = function (rect) {  return null; }
++createjs.Container.prototype.getNumChildren = function () { return 0; }
 +
 +    /**
-+     * Indicates whether the display object has any mouse event listeners or a cursor.
++     * Swaps the children at the specified indexes. Fails silently if either index is out of range.
 +     *
-+     * @see [DisplayObject]
-+     * @returns {(boolean|null)} 
++     * @param {(number|null)} index1 
++     * @param {(number|null)} index2 
++     * @see [Container]
 +     */
-+createjs.DisplayObject.prototype._hasMouseEventListener = function () {  return null; }
++createjs.Container.prototype.swapChildrenAt = function (index1, index2) {  }
++
++
 +
-+    /**
-+     * @param {(createjs.Matrix2D|null)} matrix 
-+     * @param {(boolean|null)} ignoreTransform If true, does not apply this object's transform.
-+     * @see [DisplayObject]
-+     * @returns {(createjs.Rectangle|null)} 
-+     */
-+createjs.DisplayObject.prototype._getBounds = function (matrix, ignoreTransform) {  return null; }
 +
 +    /**
-+     * @param {(createjs.Rectangle|null)} bounds 
-+     * @param {(createjs.Matrix2D|null)} matrix 
-+     * @param {(boolean|null)} ignoreTransform 
-+     * @see [DisplayObject]
-+     * @returns {(createjs.Rectangle|null)} 
++     * Returns the child with the specified name.
++     *
++     * @param {(string|null)} name The name of the child to return.
++     * @see [Container]
++     * @returns {(createjs.DisplayObject|null)} The child with the specified name.
 +     */
-+createjs.DisplayObject.prototype._transformBounds = function (bounds, matrix, ignoreTransform) {  return null; }
++createjs.Container.prototype.getChildByName = function (name) {  return null; }
++
 +
 +    /**
-+     * Draws the display object into the specified context ignoring its visible, alpha, shadow, and transform.
-+     * Returns <code>true</code> if the draw was handled (useful for overriding functionality).
++     * Returns the child at the specified index.
 +     * 
-+     * NOTE: This method is mainly for internal use, though it may be useful for advanced uses.
++     * <h4>Example</h4>
++     * 
++     * container.getChildAt(2);
 +     *
-+     * @param {(CanvasRenderingContext2D|null)} ctx The canvas 2D context object to draw into.
-+     * @param {(boolean|null|undefined)} ignoreCache Indicates whether the draw operation should ignore any current cache. For example, used for drawing the cache (to prevent it from simply drawing an existing cache back into itself).
-+     * @see [DisplayObject]
-+     * @returns {(boolean|null)} 
++     * @param {(number|null)} index The index of the child to return.
++     * @see [Container]
++     * @returns {(createjs.DisplayObject|null)} The child at the specified index. Returns null if there is no child at the index.
 +     */
-+createjs.DisplayObject.prototype.draw = function (ctx, ignoreCache) {  return null; }
++createjs.Container.prototype.getChildAt = function (index) {  return null; }
 +
 +    /**
-+     * @param {(Object|null)} evtObj An event object that will be dispatched to all tick listeners. This object is reused between dispatchers to reduce construction & GC costs.
-+     * @see [DisplayObject]
++     * Swaps the specified children's depth in the display list. Fails silently if either child is not a child of this
++     * createjs.Container.
++     *
++     * @param {(createjs.DisplayObject|null)} child1 
++     * @param {(createjs.DisplayObject|null)} child2 
++     * @see [Container]
 +     */
-+createjs.DisplayObject.prototype._tick = function (evtObj) {  }
++createjs.Container.prototype.swapChildren = function (child1, child2) {  }
 +
 +    /**
-+     * Tests whether the display object intersects the specified point in local coordinates (ie. draws a pixel with alpha > 0 at
-+     * the specified position). This ignores the alpha, shadow, hitArea, mask, and compositeOperation of the display object.
-+     * 
-+     * <h4>Example</h4>
-+     * 
-+     * stage.addEventListener("stagemousedown", handleMouseDown);
-+     * function handleMouseDown(event) {
-+     * var hit = myShape.hitTest(event.stageX, event.stageY);
-+     * }
-+     * 
-+     * Please note that shape-to-shape collision is not currently supported by EaselJS.
++     * Similar to {{#crossLink "Container/getObjectsUnderPoint"}}{{/crossLink}}, but returns only the top-most display
++     * object. This runs significantly faster than <code>getObjectsUnderPoint()</code>, but is still potentially an expensive
++     * operation. See {{#crossLink "Container/getObjectsUnderPoint"}}{{/crossLink}} for more information.
 +     *
-+     * @param {(number|null)} x The x position to check in the display object's local coordinates.
-+     * @param {(number|null)} y The y position to check in the display object's local coordinates.
-+     * @see [DisplayObject]
-+     * @returns {(boolean|null)} A Boolean indicating whether a visible portion of the DisplayObject intersect the specified local Point.
++     * @param {(number|null)} x The x position in the container to test.
++     * @param {(number|null)} y The y position in the container to test.
++     * @param {(number|null)} mode The mode to use to determine which display objects to include.  0-all, 1-respect mouseEnabled/mouseChildren, 2-only mouse opaque objects.
++     * @see [Container]
++     * @returns {(createjs.DisplayObject|null)} The top-most display object under the specified coordinates.
 +     */
-+createjs.DisplayObject.prototype.hitTest = function (x, y) {  return null; }
++createjs.Container.prototype.getObjectUnderPoint = function (x, y, mode) {  return null; }
++
++
 +
 +    /**
-+     * Returns true or false indicating whether the display object would be visible if drawn to a canvas.
-+     * This does not account for whether it would be visible within the boundaries of the stage.
-+     * 
-+     * NOTE: This method is mainly for internal use, though it may be useful for advanced uses.
++     * Changes the depth of the specified child. Fails silently if the child is not a child of this container, or the index is out of range.
 +     *
-+     * @see [DisplayObject]
-+     * @returns {(boolean|null)} Boolean indicating whether the display object would be visible if drawn to a canvas
++     * @param {(createjs.DisplayObject|null)} child 
++     * @param {(number|null)} index 
++     * @see [Container]
 +     */
-+createjs.DisplayObject.prototype.isVisible = function () {  return null; }
++createjs.Container.prototype.setChildIndex = function (child, index) {  }
 +
 +    /**
-+     * @see [DisplayObject]
++     * Returns an array of all display objects under the specified coordinates that are in this container's display
++     * list. This routine ignores any display objects with {{#crossLink "DisplayObject/mouseEnabled:property"}}{{/crossLink}}
++     * set to `false`. The array will be sorted in order of visual depth, with the top-most display object at index 0.
++     * This uses shape based hit detection, and can be an expensive operation to run, so it is best to use it carefully.
++     * For example, if testing for objects under the mouse, test on tick (instead of on {{#crossLink "DisplayObject/mousemove:event"}}{{/crossLink}}),
++     * and only if the mouse's position has changed.
++     * 
++     * <ul>
++     * <li>By default (mode=0) this method evaluates all display objects.</li>
++     * <li>By setting the `mode` parameter to `1`, the {{#crossLink "DisplayObject/mouseEnabled:property"}}{{/crossLink}}
++     * and {{#crossLink "mouseChildren:property"}}{{/crossLink}} properties will be respected.</li>
+

<TRUNCATED>