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

📄 parallel.as

📁 flash as编程的库和源代码
💻 AS
字号:
package de.alex_uhlmann.animationpackage.animation {	import de.alex_uhlmann.animationpackage.APCore;import de.alex_uhlmann.animationpackage.animation.IAnimatable;import de.alex_uhlmann.animationpackage.animation.ISingleAnimatable;import de.alex_uhlmann.animationpackage.animation.AnimationCore;import de.alex_uhlmann.animationpackage.animation.AnimationEvent;import de.alex_uhlmann.animationpackage.utility.IVisitor;import de.alex_uhlmann.animationpackage.utility.IVisitorElement;import de.alex_uhlmann.animationpackage.utility.IComposite;public class Parallel extends AnimationCore implements ISingleAnimatable, IVisitorElement, IComposite {		private var childsArr:Array;	private var oneChild:*;		public function Parallel() {		super();		this.childsArr = new Array();	}		public function run(...arguments:Array):void {		this.invokeAnimation(0, 100);			}	public function animate(start:Number, end:Number):void {				this.invokeAnimation(start, end);	}	public function setCurrentPercentage(percentage:Number):void {		this.invokeAnimation(percentage, NaN);	}		private function invokeAnimation(start:Number, end:Number):void {				var isGoto:Boolean;		if(isNaN(end)) {			isGoto = true;			end = start;			start = 0;		} else {			isGoto = false;			this.setStartValue(start);				this.setEndValue(end);		}		var i:Number, len:Number = this.childsArr.length;		var child:*;		for (i = 0; i < len; i++) {			child = this.childsArr[i];			if(isGoto == false) {				child.animate(start, end);			} else {				child.setCurrentPercentage(end);			}			if(child.duration == this.duration) {				this.oneChild = child;			}		}		this.oneChild.addEventListener(AnimationEvent.UPDATE, onUpdate);		this.oneChild.addEventListener(AnimationEvent.END, onEnd);		this.myAnimator = this.oneChild.myAnimator;		this.setTweening(true);		this.dispatchEvent(new AnimationEvent(AnimationEvent.START, this.getStartValue()));	}		override public function animationStyle(duration:Number, easing:* = null):void {		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {								this.childsArr[i].animationStyle(duration, easing);					}		this.duration = duration;	}			public function onStart(event:AnimationEvent):void {				this.dispatchEvent(new AnimationEvent(AnimationEvent.START, this.getStartValue()));	}		public function onUpdate(event:AnimationEvent):void {		this.dispatchEvent(new AnimationEvent(AnimationEvent.UPDATE, this.getCurrentValue()));	}		public function onEnd(event:AnimationEvent):void {							var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			var child:Object = this.childsArr[i];			if(child.isTweening()) {				child.addEventListener(AnimationEvent.END, onEnd);				return;			}		}		this.setTweening(false);		event.currentTarget.removeEventListener(AnimationEvent.END, onEnd);		this.dispatchEvent(new AnimationEvent(AnimationEvent.END, this.getEndValue()));	}		public function addChild(component:IAnimatable):IAnimatable {		this.childsArr.push(component);		return component;	}	public function removeChild(component:IAnimatable):void {		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			if(this.childsArr[i] == component) {				this.childsArr.splice(i, 1);			}		}	}	override public function accept(visitor:IVisitor):void {		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			visitor.visit(this.childsArr[i]);					}	}	public function getChildren():Array {		return this.childsArr;	}	override public function roundResult(rounded:Boolean):void {		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			this.childsArr[i].roundResult(rounded);				}	}		override public function forceEnd(forceEndVal:Boolean):void {		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			this.childsArr[i].forceEnd(forceEndVal);				}	}	override public function setOptimizationMode(optimize:Boolean):void {		this.equivalentsRemoved = optimize;		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			this.childsArr[i].setOptimizationMode(optimize);				}	}		override public function setTweenMode(tweenMode:String):Boolean {		super.setTweenMode(tweenMode);		var isSet:Boolean;		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			isSet = this.childsArr[i].setTweenMode(tweenMode);				}		return isSet;	}	override public function setDurationMode(durationMode:String):Boolean {		super.setDurationMode(durationMode);		var isSet:Boolean;		var i:Number, len:Number = this.childsArr.length;		for (i = 0; i < len; i++) {			isSet = this.childsArr[i].setDurationMode(durationMode);				}		return isSet;	}	override public function stop():Boolean {		if(super.stop() == true) {						var i:Number, len:Number = this.childsArr.length;			for (i = 0; i < len; i++) {								this.childsArr[i].stop();			}			return true;		} else {			return false;		}	}		override public function pause(duration:Number = 0):Boolean {				if(super.pause(duration) == true) {			var i:Number, len:Number = this.childsArr.length;			for (i = 0; i < len; i++) {								this.childsArr[i].pause();			}			return true;		} else {			return false;		}	}			override public function resume():Boolean {				if(super.resume() == true) {			var i:Number, len:Number = this.childsArr.length;			for (i = 0; i < len; i++) {								this.childsArr[i].resume();			}						return true;		} else {			return false;		}	}		override public function getStartValue():Number {		var startValue:Number = super.getStartValue();		if(isNaN(startValue)) {			startValue = 0;		}		return startValue;	}	override public function getEndValue():Number {		var endValue:Number = super.getEndValue();		if(isNaN(endValue)) {			endValue = 100;		}		return endValue;	}	override public function getCurrentValue():Number {		return this.oneChild.getCurrentPercentage();	}		override public function getCurrentPercentage():Number {		return this.oneChild.getCurrentPercentage();	}}}

⌨️ 快捷键说明

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