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

📄 albumphotobuilder.as

📁 国外强大的xml相册
💻 AS
字号:
//import drawPrimetive
import pssclasses.*;
// import hint class
import pssclasses.hint.*;
//***************************import FormatText class**************************
import pssclasses.*;
//***********************AlbumPhotoBuilder class**************************
import pssclasses.photocontainers.*;
class AlbumPhotoBuilder {
	//*************define attributes***************
	private var SkrollPanel:MovieClip;
	private var Holder:MovieClip;
	private var photoHolder:MovieClip;
	private var photoTextField:TextField;
	//depths
	private var loaderDepth:Number = 4;
	private var textDepth:Number = 3;
	private var photoHolderDepth:Number = 2;
	private var BGDepth:Number = 0;
	private var PhotoPartsFolder:String = "photoparts/";
	private var AlbumPhoto:String = "album.jpg";
	// width and height
	private var p_width:Number;
	private var p_height:Number;
	// margin
	private var topMargin:Number = 10;
	private var leftMargin:Number = 10;
	private var rightMargin:Number = 10;
	private var bottomMargin:Number = 10;
	private var photoSpace:Number = 6;
	// preloader
	private var PreLoader:MovieClip;
	private var loaderLinkageName:String = "preloaderLitle";
	private var loaderName:String = "loader_mc";
	//style photoholder
	private var BGarea:MovieClip;
	private var BGname:String = "bgArea_mc";
	private var borderBGcolor:Number = 0x666666;
	private var BGcolor:Number = 0x999999;
	private var bordWeight:Number = 0.25;
	private var bordAlpha:Number = 100;
	private var bodyAlpha:Number = 100;
	private var asBitMap:Boolean = true;
	// **********label text field property
	private var labelFont:String = "Verdana";
	private var labelSize:Number = 12;
	private var labelColor:Number = 0xD0D0D0;
	private var labelBold:Boolean = true;
	private var labelAlign:String = "center";
	private var labelMultyLine:Boolean = true;
	private var labelAutoSize:Boolean = true;
	private var selectebleText:Boolean = false;
	private var embedFont:Boolean = false;
	private var labelHtml:Boolean = true;
	private var labelMargin:Number = 5;
	//
	private var HOLDERSCOUNT:Number = 0;
	// label memori
	private var myLabel:String;
	private var labelOtstup:Number = 40;
	//BG
	private var multyContainerBG:MovieClip;
	private var ScrollPaneBG:MovieClip;
	private var ScrollPaneBGW:Number;
	private var ScrollPaneBGH:Number;
	// sumWidth
	private var sumWidth:Number = 0;
	private var sumHeight:Number = 0;
	private var startX:Number = photoSpace;
	private var startY:Number = photoSpace;
	private var newX:Number = photoSpace;
	private var newY:Number = photoSpace;
	private var standartHolderWidth:Number;
	private var standartHolderHeight:Number;
	private var newLine:Number = 0;
	private var lineArray:Array;
	private var lineHoldArray:Array = new Array();
	// ***end****label text field property
	//**************define metods****************
	public function AlbumPhotoBuilder() {
		HOLDERSCOUNT = 0;
		newLine = 0;
		lineArray = new Array();
	}
	//*********************create holder************
	public function createHolder(_place:MovieClip, photoObject:Object):Object {
		// bg
		//multyContainerBG = _place.BGArea_mc;
		//****************************SHOT TO MASK******************
		SkrollPanel = _place._parent._parent._parent;
		SkrollPanel.addHolderCount();
		//scroll pan eback ground
		ScrollPaneBG = SkrollPanel.BGArea_mc;
		ScrollPaneBGW = ScrollPaneBG._width;
		ScrollPaneBGH = ScrollPaneBG._height;
		// object with photo data
		var photoData:Object = photoObject;
		/*
		photoData.index
		photoData.id
		photoData.name
		photoData.mheight
		photoData.mwidth
		photoData.p_id
		*/
		var id:Number = photoData.id;
		//********************setphoto size
		setPhotoWH(photoData.mwidth, photoData.mheight);
		// *****************create holder
		//if from search
		if (photoData.rid == undefined) {
			Holder = _place.createEmptyMovieClip("holder_"+id, id);
		} else {
			Holder = _place.createEmptyMovieClip("holder_"+photoData.rid, photoData.rid);
		}
		//
		Holder.cacheAsBitmap = true;
		// set property to holder
		Holder.photoData = photoData;
		// ***end**********create holder
		//*******************create photo holder
		createPhotoHolder();
		//****end***********create photo holder
		//********************load photo
		loadPhoto(PhotoPartsFolder+photoData.p_id+"/"+photoData.id+"/"+AlbumPhoto);
		//***end*************load photo
		//******************create text field
		createTextFild();
		placeLabel();
		setPhotoLabel(photoData.name);
		//***end************create text field
		// ******************create bg
		var holderW:Number = p_width+leftMargin*2;
		var holderH:Number = photoTextField._y+photoTextField._height+bottomMargin;
		drawBG(holderW, holderH);
		// ***end************create bg
		//*****************place photo holder************************
		standartHolderWidth = holderW;
		standartHolderHeight = holderH;
		var lineHoldCount:Number;
		var maxHeight:Number;
		if (newX+standartHolderWidth>ScrollPaneBGW) {
			newLine++;
			var lineMovie:MovieClip;
			lineArray.sortOn("hheight", Array.DESCENDING);
			lineHoldCount = lineArray.length;
			var maxHObject:Object = lineArray[0];
			maxHeight = maxHObject.hheight;
			for (var i = 1; i<lineHoldCount; i++) {
				var tempHold:Object = lineArray[i];
				lineMovie = tempHold.movie;
				lineMovie.bgArea_mc._height = maxHeight;
			}
			//resize bg photo holder
			HOLDERSCOUNT = 0;
			lineArray = new Array();
			// set new line with holders
			newLine++;
			// new y and x
			newY += maxHeight+startY;
			newX = startX;
		}
		// set holder into line array                                                  
		lineArray[HOLDERSCOUNT] = {hheight:Holder._height, movie:Holder};
		//****************************RESIZE BG AT MAX HEIGHT*********************
		var lineMovie:MovieClip;
		lineArray.sortOn("hheight", Array.DESCENDING);
		lineHoldCount = lineArray.length;
		var maxHObject:Object = lineArray[0];
		maxHeight = maxHObject.hheight;
		for (var i = 1; i<lineHoldCount; i++) {
			var tempHold:Object = lineArray[i];
			lineMovie = tempHold.movie;
			lineMovie.bgArea_mc._height = maxHeight;
		}
		//***********end***********RESIZE BG AT MAX HEIGHT*********************
		// place holder
		Holder._x = Math.round(newX);
		Holder._y = Math.round(newY)+.5;
		// new holder x
		newX += startX+standartHolderWidth;
		//******end*******place photo holder************************
		HOLDERSCOUNT++;
		//**************************SET EVENTS******************************
		var _SkrollPanel:MovieClip = SkrollPanel;
		var _photoHolder:MovieClip = photoHolder;
		Holder.onRollOver = function() {
			var hinttext:String = _global.PSS_UI.lib_albumlook;
			//from hint class
			Hint.labelText(hinttext, null, true);
			Hint.hintDrag();
			//******************bluring****************************
			//if (_global.EFFECT) {
			HoldersEffects.dropShadow(this);
			//}
		};
		Holder.onRollOut = function() {
			// from hint class
			Hint.killHint();
			//*******************bluring****************************
			//if (_global.EFFECT) {
			HoldersEffects.killShadow(this);
			//}
		};
		Holder.onPress = function():Void  {
			// from hint class
			Hint.killHint();
			var LeftMenu:MovieClip = this._parent._parent._parent._parent._parent.leftMenuFull_mc;
			var BROWSER:MovieClip = this._parent._parent._parent._parent._parent._parent;
			/*
			photoData.index
			photoData.id
			photoData.name
			photoData.mheight
			photoData.mwidth
			photoData.p_id
			if from search photoData.s
			//
			 this.photoData.p_id
			 
			 this.photoData.p_index
			*/
			BROWSER.setLabel = this.photoData.p_name+" | "+this.photoData.name;
			LeftMenu.openSubPartMenu(this.photoData.p_index);
			LeftMenu.openAlbum(this.photoData.p_id, this.photoData.id, this.photoData.index, this.photoData.p_index);
		};
		//****************return object with holder end standart width
		var retObject:Object = new Object();
		retObject.swidth = standartHolderWidth;
		retObject.sheight = standartHolderHeight;
		retObject.holder = Holder;
		retObject.line = newLine;
		return retObject;
	}
	//**************************END*****HOLDER UILD*************************
	//********************create text field***********
	private function createTextFild():Void {
		//******************FormatText class******************
		photoTextField = Holder.createTextField("photoLabel", textDepth, 0, 0, 50, 20);
		photoTextField.wordWrap = true;
		photoTextField.cacheAsBitmap = true;
		FormatText.setTextFieldProp(photoTextField, labelAutoSize, selectebleText, embedFont, -400, "pixel", labelHtml, labelMultyLine);
		FormatText.setTextFieldFormat(photoTextField, labelFont, labelSize, labelColor, labelBold, false, labelAlign, labelMargin, labelMargin);
	}
	// place photo label
	private function placeLabel():Void {
		photoTextField._width = p_width;
		photoTextField._y = p_height+photoSpace+labelOtstup;
		photoTextField._x = leftMargin;
	}
	public function setPhotoLabel(__text:String):Void {
		photoTextField.htmlText = __text;
		myLabel = __text;
	}
	//*******************create photo holder**********************
	private function createPhotoHolder():Void {
		photoHolder = Holder.createEmptyMovieClip("photoHolder_mc", photoHolderDepth);
		photoHolder._y = topMargin;
		photoHolder._x = leftMargin;
		photoHolder.cacheAsBitmap = true;
		//******************events*****************
	}
	// ******************draw holder bg***************************
	private function drawBG(__width:Number, __height:Number):Void {
		var widthR:Number = __width;
		var heightR:Number = __height;
		BGarea = DrawPrimitive.drawRectangle(Holder, BGname, BGDepth, widthR, heightR, bordWeight, borderBGcolor, BGcolor, bordAlpha, bodyAlpha, asBitMap);
	}
	// ******************place preloader**************************
	private function placePreloader():MovieClip {
		var _SkrollPanel:MovieClip = SkrollPanel;
		PreLoader = Holder.attachMovie(loaderLinkageName, loaderName, loaderDepth);
		PreLoader._xscale = 80;
		PreLoader._yscale = 80;
		PreLoader._y = topMargin+(p_height-PreLoader._height)/2;
		PreLoader._x = leftMargin+(p_width-PreLoader._width)/2;
		return PreLoader;
	}
	//*********************************SET METODS*********************
	public function setPhotoWH(__width:Number, __height:Number):Void {
		p_height = Number(__height);
		p_width = Number(__width);
	}
	//**********************LOAD PHOTO*******************
	public function loadPhoto(__path:String):Void {
		var __Holder:MovieClip = Holder;
		var _SkrollPanel:MovieClip = SkrollPanel;
		var _AlbumPhotoBuilder:Object = this;
		//**********place preloader**********************
		var preLoader:MovieClip = placePreloader();
		//***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  {
			preLoader.removeMovieClip();
			//**************resize scroll panel***************
			//_SkrollPanel.dynResizeWidth();
			delete loader;
			//***************effects
			if (_global.EFFECT == 3) {
				HoldersEffects.goToSharp(__Holder);
			}
			// place photo in center 
			var _holder:MovieClip = __Holder;
			target_mc.onEnterFrame = function() {
				if (this._width>0) {
					this._x = Math.floor((_holder._width-this._width)/2);
					delete this.onEnterFrame;
				}
			};
			// end place photo in center
		};
		loadListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void  {
			//************************SET TO LOADER *************************
			//preLoader.setProgressLoadig(bytesTotal, bytesLoaded);
			//*****end***************SET TO LOADER *************************
		};
		//********************ERROR*********'
		var alertError:MovieClip;
		loadListener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
			delete loader;
			alertError = __Holder.attachMovie("alert_error", "alert_error", 4);
			alertError._x = (__Holder._width-alertError._width)/2;
			alertError._y = 50;
		};
		//****************preloader action**********************
		loader.loadClip(__path, photoHolder);
		//***end*********preloader action**********************
	}
	//***************setToFitSize*************
	//**********end class********
}

⌨️ 快捷键说明

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