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

📄 widthtween.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 com.mosesSupposes.go.tutorials 
{
	import flash.display.DisplayObject;
	
	import org.goasap.items.LinearGo;
	/**	 * A basic example of how you could build a tween on LinearGo.
	 * 
	 * @see SizeTweenMg SizeTweenMg: a similar example that works with OverlapMonitor
	 * 
	 * @author Moses Gunesch	 */	public class WidthTween extends LinearGo {				// -== Public Properties ==-		
		
		// In this example, the tween class has a width property, but the point of Go is that
		// the design is left up to you. If you prefer to parse an object or XML, or accept an
		// array of properties and targets, all of that is left up to you.		public function get width() : Number {			return _width;		}		public function set width(value : Number):void {			if (_state==STOPPED)				_width = value;		} 				
		
		// See note above width getter, same applies here. Note that I've picked a specific datatype
		// for my tween target, but again it's wide open, including the variable name. The only thing
		// that tends to be universal is that you need at least one target and at least one property.		public function get target() : DisplayObject {			return _target;		}		public function set target(obj : DisplayObject):void {			if (_state==STOPPED)				_target = obj;		}		
				// -== Protected Properties ==-		protected var _target : DisplayObject;		protected var _width : Number;		protected var _startWidth : Number;		protected var _changeWidth : Number;		
				// -== Public Methods ==-		
		// You can design your own constructor for your tween classes of course!		public function WidthTween(	target				: DisplayObject=null,									widthTo				: Number=NaN,									delay	 			: Number=NaN,									duration 			: Number=NaN,									easing 				: Function=null ) 		{			super(delay, duration, easing);			_target = target;			_width = widthTo;		}		
		
		// CONVENTION ALERT!
		
		// * Be aware that there are two standard conventions in Go that need to be 
		//   implemented manually by each LinearGo subclass, numbered below.
		
				override public function start():Boolean 		{			if (!_target || !_width || isNaN(_width))				return false;			
			_startWidth = _target.width; // Store start & change values for use in onUpdate.
			
			// Convention #1: useRelative   (*see note above)			_changeWidth = (useRelative 							? _width // relative positioning: like if the user set -10, we should change "by" that much.  
							: _width - _startWidth); // absolute positioning: the tween spans the difference from existing width.
			
			return (super.start());		}		
		
		// Convention #2:useRounding   (*see note above)
		// Always call correctValue() on tween values before setting them to targets. 
		// This fixes NaNs to 0 and applies Math.round based on the useRounding setting. 
		override protected function onUpdate(type:String) : void 
		{
			// Basic tween implementation using the formula Value=Start+(Change*Position).
			// Position is a 0-1 multiplier run by LinearGo.
						_target.width = super.correctValue( _startWidth + _changeWidth * _position );		}	}}

⌨️ 快捷键说明

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