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

📄 slideshoweffects.as

📁 国外强大的xml相册
💻 AS
字号:
// import filters
import flash.filters.BlurFilter;
//*****************************SlideShowEffects**************************
import pssclasses.SlideShow.*;
class SlideShowEffects extends MovieClip {
	//**************define attributes*************
	private var IsPhotoLoaded:Boolean = true;
	private var EffectAction:Boolean = true;
	private var PhotosArray:Array;
	private var __this:MovieClip;
	private var TopPhotoHolder:MovieClip;
	private var Panel:MovieClip;
	//photos holder
	private var PhotoPath:String;
	private var ActivHolder:MovieClip;
	private var lastActivHolder:MovieClip;
	private var firstHolder:MovieClip;
	private var firstHolderName:String = "firstHolder_mc";
	private var firstHolderDepth:Number = 2;
	private var secondHolder:MovieClip;
	private var secondHolderName:String = "secondHolder_mc";
	private var secondHolderDepth:Number = 1;
	private var holdersArray:Array;
	private var holdersCheck:Boolean = true;
	private var FirstStart:Boolean = false;
	private var photoFit:Boolean = true;
	private var ActualSizeObj:Object;
	private var EffectsArray:Array = new Array();
	private var FirstPhoto:Boolean = true;
	private var EffectFinished:Boolean = false;
	private var alertError:MovieClip;
	//
	private var photoBort:Number = 0;
	//******************define metods**************************
	private function SlideShowEffects() {
		__this = this;
		TopPhotoHolder = __this.createEmptyMovieClip("topholder", 1);
	}
	public function setPlace(_panel:MovieClip):Void {
		Panel = _panel;
		createPhotoHolders();
	}
	public function openPhoto(path:String):Void {
		if (IsPhotoLoaded) {
			PhotoPath = path;
			Panel.preloaderActivate();
			IsPhotoLoaded = false;
			nextPhoto();
		}
	}
	//***************setToFitSize*************
	private function setToFitSize(from:Boolean):Void {
		photoFit = true;
		var scrollBGw:Number = Stage.width;
		var scrollBGh:Number = Stage.height;
		var actualSizePw:Number = ActualSizeObj.width;
		var actualSizePh:Number = ActualSizeObj.height;
		var newSize:Object;
		if (actualSizePw>scrollBGw || actualSizePh>scrollBGh) {
			newSize = percentToPixel(98, 98);
			if ((actualSizePw-scrollBGw)>(actualSizePh-scrollBGh)) {
				// width
				ActivHolder._width = newSize.w;
				ActivHolder._yscale = ActivHolder._xscale;
			} else {
				// height
				ActivHolder._height = newSize.h;
				ActivHolder._xscale = ActivHolder._yscale;
			}
			//ActivHolder._width=newSize.w
		} else {
			setToActoalSize(true, true);
		}
		// 
		//ActivHolder  
		if (!from) {
			placePhoto();
		}
	}
	//****************setToActualSize*************
	private function setToActoalSize(from:Boolean, fit:Boolean):Void {
		photoFit = fit;
		ActivHolder._width = ActualSizeObj.width;
		ActivHolder._height = ActualSizeObj.height;
		//ActivHolder  
		if (!from) {
			placePhoto();
		}
	}
	// ******************calculate percent from pixels******************
	private function percentToPixel(percentW:Number, percentH:Number):Object {
		var browserSize:Object = new Object();
		var stageWidthPix:Number = Stage.width;
		var stageHeightPix:Number = Stage.height;
		browserSize.w = Math.round(stageWidthPix/100*percentW);
		browserSize.h = Math.round(stageHeightPix/100*percentH);
		return browserSize;
	}
	//**********************LOAD PHOTO*******************
	public function loadPhoto(__path:String, Holder:MovieClip):Void {
		//ActivHolder.swapDepths(0);
		var __Holder:MovieClip = Holder;
		var __THIS:MovieClip = __this;
		Panel.block();
		Holder._alpha = 0;
		FirstStart = true;
		//***end****place preloader**********************
		var loader:MovieClipLoader = new MovieClipLoader();
		var loadListener:Object = new Object();
		loader.addListener(loadListener);
		loadListener.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number):Void  {
			//IsPhotoLoaded = true;
			__THIS.lastActivHolder = __THIS.ActivHolder;
			__THIS.ActivHolder = __Holder;
			// *******************hide preloader into PlayMenu************
			__THIS.Panel.preloaderDesable();
			__THIS.Panel.unblock();
			__THIS.Panel.setlabels();
			__THIS.placeByFirstPhoto();
			__THIS.ActivHolder._visible = true;
			delete loader;
		};
		loadListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void  {
			//************************SET TO LOADER *************************
			//_PlayMenu.setProgressLoadig(bytesTotal, bytesLoaded);
			//*****end***************SET TO LOADER *************************
		};
		//********************ERROR*********'
		loadListener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
			//__THIS.attachMovie("alert_error", "alert_error", 10);
			__THIS.IsPhotoLoaded = true;
			__THIS.lastActivHolder = __THIS.ActivHolder;
			__THIS.ActivHolder = __Holder;
			// *******************hide preloader into PlayMenu************
			__THIS.Panel.preloaderDesable();
			__THIS.Panel.unblock();
			//__THIS.Panel.setlabels();
			__THIS.Panel.removePreloader();
			__THIS.placeByFirstPhoto();
			__THIS.ActivHolder._visible = true;
			delete loader;
		};
		//****************preloader action**********************
		loader.loadClip(__path, __Holder);
		//***end*********preloader action**********************
	}
	// **********open next photo*****
	//********************creat photo holders*************
	private function createPhotoHolders():Void {
		firstHolder = __this.createEmptyMovieClip(firstHolderName, firstHolderDepth);
		firstHolder.cacheAsBitmap = true;
		secondHolder = __this.createEmptyMovieClip(secondHolderName, secondHolderDepth);
		secondHolder.cacheAsBitmap = true;
		holdersArray = [firstHolder, secondHolder];
	}
	public function nextPhoto():Void {
		var nextHolder:MovieClip;
		holdersCheck = !holdersCheck;
		if (holdersCheck) {
			firstHolder = __this.createEmptyMovieClip(firstHolderName, firstHolderDepth);
			firstHolder.cacheAsBitmap = true;
			nextHolder = firstHolder;
		} else {
			secondHolder = __this.createEmptyMovieClip(secondHolderName, secondHolderDepth);
			secondHolder.cacheAsBitmap = true;
			nextHolder = secondHolder;
		}
		// load photo
		loadPhoto(PhotoPath, nextHolder);
	}
	public function placePhoto():Void {
		var _photoBort:Number = photoBort;
		if (ActivHolder._width != 0) {
			//*************************fit size*************************
			if (photoFit) {
				setToFitSize(true);
			} else {
				setToActoalSize(true);
			}
			//_x
			if ((ActivHolder._width+5*2)<Stage.width) {
				ActivHolder._x = Math.round((Stage.width-(ActivHolder._width+5*2))/2);
			} else {
				ActivHolder._x = 5;
			}
			//_y
			if ((ActivHolder._height+5*2)<Stage.height) {
				ActivHolder._y = Math.round((Stage.height-(ActivHolder._height+5*2))/2)+.5;
			} else {
				ActivHolder._y = 5+.5;
			}
			//*************************fit size*************************
			if (photoFit) {
				setToFitSize(true);
			} else {
				setToActoalSize(true);
			}
		}
	}
	public function placeByFirstPhoto():Void {
		//**set Effects
		setEffects();
		//end **set Effects
		var THIS:MovieClip = __this;
		var EffectsCount:Number = EffectsArray.length-1;
		var EffectRandom:Number = Math.round(Math.random()*EffectsCount);
		if (EffectRandom == 0) {
			EffectRandom = 1;
		}
		if (!EffectAction || FirstPhoto) {
			FirstPhoto = false;
			EffectRandom = 0;
		}
		EffectsArray[EffectRandom].apply();
		//*************************fit size*************************
		if (photoFit) {
			setToFitSize(true);
		} else {
			setToActoalSize(true);
		}
	}
	//********************return data*********************
	public function isPhotoLoaded():Boolean {
		return IsPhotoLoaded;
	}
	public function effetcSwitchOn(switchOn:Boolean):Void {
		EffectAction = switchOn;
	}
	//***************************************EFFECTS METODS************************************
	private function setEffects():Void {
		var _photoBort:Number = photoBort;
		var count:Number = 0;
		var _lastActivHolder:MovieClip = lastActivHolder;
		var _photoFit:Boolean = photoFit;
		ActualSizeObj = new Object();
		var firstChecSize:Boolean = false;
		ActivHolder.cacheAsBitmap = true;
		var THIS:MovieClip = __this;
		var _ActivHolder:MovieClip = ActivHolder;
		//*************************effects metods************************
		//alpha effect
		function alphaEffect():Void {
			_ActivHolder.onEnterFrame = function() {
				if (this._width != 0) {
					if (!firstChecSize) {
						THIS.ActualSizeObj.width = this._width;
						THIS.ActualSizeObj.height = this._height;
						firstChecSize = true;
					}
					THIS.placePhoto();
					if (count == 1) {
						THIS.IsPhotoLoaded = true;
						THIS.Panel.removePreloader();
						delete this.onEnterFrame;
						count = 0;
					}
					_lastActivHolder.onEnterFrame = function() {
						_ActivHolder._alpha += 20;
						this._alpha -= 20;
						if (this._alpha<0 && _ActivHolder._alpha>=100) {
							this._visible = false;
							THIS.IsPhotoLoaded = true;
							this.removeMovieClip();
						}
					};
					//**************checkScrollPanel***************  
					count++;
				}
			};
		}
		//end alpha effect
		//blur effect
		function blurEffect():Void {
			_ActivHolder.onEnterFrame = function() {
				if (this._width != 0) {
					if (!firstChecSize) {
						THIS.ActualSizeObj.width = this._width;
						THIS.ActualSizeObj.height = this._height;
						firstChecSize = true;
					}
					THIS.placePhoto();
					if (count == 1) {
						delete this.onEnterFrame;
						count = 0;
						THIS.goToBlur(THIS.lastActivHolder, this, 1);
					}
				}
				count++;
			};
		}
		//blur effect
		function blurEffectWithY():Void {
			_ActivHolder.onEnterFrame = function() {
				if (this._width != 0) {
					if (!firstChecSize) {
						THIS.ActualSizeObj.width = this._width;
						THIS.ActualSizeObj.height = this._height;
						firstChecSize = true;
					}
					THIS.placePhoto();
					if (count == 1) {
						delete this.onEnterFrame;
						count = 0;
						THIS.goToBlur(THIS.lastActivHolder, this, 1, true);
					}
				}
				count++;
			};
		}
		//****************end ******effects metods************************
		EffectsArray[0] = alphaEffect;
		EffectsArray[1] = blurEffect;
		EffectsArray[2] = blurEffectWithY
	}
	//***********************goToBlur************************
	private function goToBlur(bluringMC:MovieClip, sharpnesMC:MovieClip, unloadChek:Number, withY:Boolean):Void {
		var blurIndex:Number = 2;
		blurIndex = 0;
		sharpnesMC.cacheAsBitmap = true;
		sharpnesMC._alpha = 0;
		var blurFilter:BlurFilter = new BlurFilter(0, 0, 3);
		var blurFilterArray:Array = new Array();
		var THIS:MovieClip = __this;
		var WithY:Boolean=withY
		//add filter to movie
		bluringMC.onEnterFrame = function() {
			blurIndex += 4;
			blurFilter.blurX += blurIndex+blurIndex;
			if(WithY){
			blurFilter.blurY += blurIndex+blurIndex;
			}
			blurFilterArray[0] = blurFilter;
			bluringMC.filters = blurFilterArray;
			bluringMC._alpha -= blurIndex*2;
			if (bluringMC._alpha<=0) {
				delete bluringMC.onEnterFrame;
				if(!WithY){
				THIS.goToSharp(sharpnesMC);
				}else{
					THIS.goToSharp(sharpnesMC, true);
				}
				if (unloadChek == 1) {
					bluringMC.unloadMovie();
				}
			}
		};
	}
	//********************goToSharp*****************************
	private function goToSharp(sharpnesMC:MovieClip,withY:Boolean):Void {
		var blurIndex:Number = 2;
		var WithY:Boolean=withY
		if(WithY){
			var blurFilter:BlurFilter = new BlurFilter(140, 140, 3);
		}else{
		var blurFilter:BlurFilter = new BlurFilter(240, 0, 3);
		}
		var blurFilterArray:Array = new Array();
		sharpnesMC.filters = blurFilterArray;
		sharpnesMC._alpha = 0;
		var THIS:MovieClip = __this;
		
		//add filter to movie
		sharpnesMC.onEnterFrame = function() {
			blurIndex += 4;
			blurFilter.blurX -= 20+blurIndex;
			if(WithY){
			blurFilter.blurY -= 20+blurIndex;
			}
			blurFilterArray[0] = blurFilter;
			sharpnesMC.filters = blurFilterArray;
			sharpnesMC._alpha = 100;
			if (blurFilter.blurX<=0) {
				THIS.IsPhotoLoaded = true;
				delete sharpnesMC.onEnterFrame;
			}
		};
	}
	//*************************END******BLURING********************
	private function onUnload():Void {
		FirstPhoto = true;
		IsPhotoLoaded = true;
	}
	//******************end class*****************
}

⌨️ 快捷键说明

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