Browse Source

Changed Vector<Function> to Listeners class.

NathanSweet 11 years ago
parent
commit
9f690c4efb
1 changed files with 59 additions and 0 deletions
  1. 59 0
      spine-as3/spine-as3/src/spine/animation/Listeners.as

+ 59 - 0
spine-as3/spine-as3/src/spine/animation/Listeners.as

@@ -0,0 +1,59 @@
+/******************************************************************************
+ * Spine Runtime Software License - Version 1.1
+ * 
+ * Copyright (c) 2013, Esoteric Software
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms in whole or in part, with
+ * or without modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. A Spine Essential, Professional, Enterprise, or Education License must
+ *    be purchased from Esoteric Software and the license must remain valid:
+ *    http://esotericsoftware.com/
+ * 2. Redistributions of source code must retain this license, which is the
+ *    above copyright notice, this declaration of conditions and the following
+ *    disclaimer.
+ * 3. Redistributions in binary form must reproduce this license, which is the
+ *    above copyright notice, this declaration of conditions and the following
+ *    disclaimer, in the documentation and/or other materials provided with the
+ *    distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+package spine.animation {
+	public class Listeners {
+		private var _listeners:Vector.<Function> = new Vector.<Function>();
+		
+		public function get listeners () : Vector.<Function> {
+			return _listeners;
+		}
+		
+		public function add (listener:Function) : void {
+			if (listener == null)
+				throw new ArgumentError("listener cannot be null.");
+			_listeners.push(listener);
+		}
+
+		public function remove (listener:Function) : void {
+			if (listener == null)
+				throw new ArgumentError("listener cannot be null.");
+			_listeners.splice(_listeners.indexOf(listener), 1);
+		}
+
+		public function invoke (... args:*) : void {
+			for each (var listener:Function in _listeners)
+				listener.apply(null, args);
+		}
+	}
+}