⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playablebase.as

📁 jquery插件
💻 AS
字号:
/** * Copyright (c) 2007 Moses Gunesch *  * 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. */package org.goasap {	import flash.events.EventDispatcher;	import flash.utils.Dictionary;	import flash.utils.getQualifiedClassName;		import org.goasap.errors.InstanceNotAllowedError;	import org.goasap.interfaces.IPlayableBase;		/**	 * Top-level abstract base class for playable classes that provides a standard	 * set of play-state constants and an instance playableID value.	 * 	 * <p>Playable classes in the Go system should normally extend this base class	 * and implement the IPlayable interface. This is not mandatory since utilities	 * normally reference playable items via the IPlayable datatype; However they also	 * refer directly to the constants defined here, so those should be adhered to even	 * if this class is not directly extended.</p> 	 * 	 * <p>Important memory management issue: Playable items that are not added to 	 * GoEngine can get garbage collected during play. It is a convention of the Go	 * system that such items store a reference to themselves during play that is 	 * removed in stop(). See <a href="#_playRetainer">_playRetainer</a> for more.</p>	 * 	 * @author Moses Gunesch	 */	public class PlayableBase extends EventDispatcher implements IPlayableBase {				// -== Standard Go Play-state Constants ==-				/**		 * Instance play is currently stopped.		 */		public static const STOPPED			: String = "STOPPED";				/**		 * Instance play is currently paused.		 */		public static const PAUSED			: String = "PAUSED";				/**		 * Instance is currently playing a delay, but has not started playing.		 * Delays are a non-universal feature that must be custom-implemented,		 * so some subclasses of PlayableBase don't use this constant. 		 */		public static const PLAYING_DELAY	: String = "PLAYING_DELAY";				/**		 * Instance play is currently playing.		 */		public static const PLAYING			: String = "PLAYING";				// -== Public Properties ==-				/**		 * An arbitrary id value for the convenient identification of any		 * instance, automatically set to an instance count by this class.		 */		public function get playableID() : * {			return _id;		}		public function set playableID(value: *):void {			_id = value;		}		/**		 * Returns the value of one of this class' play-state constants.		 * @see #STOPPED		 * @see #PAUSED		 * @see #PLAYING_DELAY		 * @see #PLAYING		 */		public function get state() : String {			return _state;		}		// -== Protected Properties ==-				/**		 * @private		 */		private static var _idCounter	: int = -1;		/**		 * @private		 */		protected var _state : String = STOPPED;		/**		 * @private		 */		protected var _id : *;		/**		 * Memory-management: Read this if you're subclassing PlayableBase but not adding your		 * instance to GoEngine.		 * 		 * <p>Subclasses that do not add themselves to GoEngine during play should stash a 		 * this-reference here in start() and delete it in stop. This prevents instance from 		 * getting GC'd during play. For an example see SequenceBase's start and stop methods.</p>		 * 		 * <p>This step is not necessary if GoEngine.addItem is used, which keeps a live reference 		 * during play.</p>		 * 		 * <p>This protected static var is just a convenience. You can mimic the technique of		 * stashing a this-reference using any static property, to temporarily protect the object		 * being referenced from garbage collection.</p>		 * 		 * @see org.goasap.utils.SequenceBase SequenceBase		 */		protected static var _playRetainer : Dictionary = new Dictionary(false);						// -== Public Methods ==-				/**		 * Throws an InstanceNotAllowedError if directly instantiated, also sets a		 * default playableID to an instance count number.		 */		public function PlayableBase() : void {			var className:String = getQualifiedClassName(this);			if (className.slice(className.lastIndexOf("::")+2) == "PlayableBase") {				throw new InstanceNotAllowedError("PlayableBase");			}			playableID = ++ _idCounter;		}		/**		 * Appends the regular toString value with the instance's playableID.		 * 		 * @return	String representation of this instance.		 */		override public function toString():String {			var s:String = super.toString();			var addLast:Boolean = (s.charAt(s.length-1)=="]");			if (addLast) s = s.slice(0,-1);			if (playableID is String) s += " playableID:\"" + playableID + "\"";			else s += " playableID:" + playableID;			if (addLast) s += "]";			return s;		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -