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

📄 bigphotoholder.as

📁 国外强大的xml相册
💻 AS
📖 第 1 页 / 共 2 页
字号:
//***************************import FormatText class**************************
import pssclasses.*;
// import hint class
import pssclasses.hint.*;
//************************BigPhotoHolder class*********************
import pssclasses.photocontainers.*;
class BigPhotoHolder extends MovieClip {
	// ***************define attributes***********
	private var partID:Number;
	private var albumID:Number;
	private var photoID:Number;
	private var photosArray:Array;
	private var photosCount:Number;
	private var PhotoData:Object;
	private var photoFit:Boolean = false;
	private var ActualSizeObj:Object;
	// preloader
	private var PreLoader:MovieClip;
	private var loaderLinkageName:String = "preloaderLitle";
	private var loaderName:String = "loader_mc";
	// photo parts folder
	private var PhotoPartsFolder:String = "photoparts/";
	private var photobigfold:String = "big";
	private var PhotoPath:String;
	private var photoTXTFold:String = "textdescription";
	private var photoTXTformat:String = ".txt";
	private var photoTxtDescription:String;
	private var photoSoundFold:String = "sounddescription";
	private var photoSoundformat:String = ".mp3";
	//photos holder
	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;
	// text vield
	private var photoTextField:TextField;
	private var photoTextName:String = "phototext_txt";
	private var photoTextDepth:Number = 3;
	// **********label text field property
	private var labelFont:String = "Verdana";
	private var labelSize:Number = 12;
	private var labelColor:Number = 0x333333;
	private var labelBold:Boolean = false;
	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 linkCopyHint:String;
	// ********BGArea***************
	private var BGArea:MovieClip;
	private var BGAreaName:String = "BGArea_mc";
	private var BGAreaDepth:Number = -1;
	private var BGAreaX:Number = 0;
	private var BGAreaY:Number = 0;
	private var BGAreaW:Number = 200;
	private var BGAreaH:Number = 200;
	//BGColor
	private var BGColorAlpha:Boolean = true;
	//B1B1B1
	private var BGColor:Number = 0x00FF0000;
	//
	private var photoBort:Number = 10;
	private var lastPhoto:Number;
	// 
	private var __this:MovieClip;
	private var ScrollPanel:MovieClip;
	private var ScrollPanelBG:MovieClip;
	private var BROWSER:MovieClip;
	private var PlayMenu:MovieClip;
	private var alertError:MovieClip;
	//***************define metods****************
	private function BigPhotoHolder() {
		__this = this;
		__this.cacheAsBitmap = true;
		ScrollPanel = __this._parent._parent;
		ScrollPanelBG = ScrollPanel.BGArea_mc;
		BROWSER = __this._parent._parent._parent._parent;
		PlayMenu = BROWSER.footer_mc.playMenu_mc;
		drawBG();
		// desable browser
		BROWSER.aviableBrowser(true)
	}
	// **************set photo path******************
	public function setPhotoData(pdata:Object):Void {
		PhotoData = pdata;
		lastPhoto = PhotoData.index;
		//PhotoData.index
		setPhotoPath(PhotoData.p_id, PhotoData.a_id, PhotoData.file);
		//********************load text description***************
		//loadTXTDescription();
		//********create holders********
		createPhotoHolders();
		// load photo
		loadPhoto(PhotoPath, firstHolder);
	}
	public function setPhotoPath(p_id:Number, a_id:Number, pfile:String):Void {
		PhotoPath = PhotoPartsFolder+p_id+"/"+a_id+"/"+photobigfold+"/"+pfile;
	}
	// set array with photos in album
	public function setPhotosArray(pArray:Array):Void {
		photosArray = pArray;
		photosCount = photosArray.length;
	}
	// **********open next photo*****
	public function nextPhoto():Boolean {
		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;
		}
		lastPhoto++;
		PhotoData = photosArray[lastPhoto];
		//PhotoData.index
		setPhotoPath(PhotoData.p_id, PhotoData.a_id, PhotoData.file);
		// load photo
		loadPhoto(PhotoPath, nextHolder);
		if (photosCount-1 == lastPhoto) {
			return false;
		} else {
			return true;
		}
	}
	//*******open prev photo*********
	public function prevPhoto():Boolean {
		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;
		}
		lastPhoto--;
		PhotoData = photosArray[lastPhoto];
		//PhotoData.index
		setPhotoPath(PhotoData.p_id, PhotoData.a_id, PhotoData.file);
		// load photo
		loadPhoto(PhotoPath, nextHolder);
		if (0 == lastPhoto) {
			return false;
		} else {
			return true;
		}
	}
	//****************seting with actual photo size*****************
	public function setSizeSetting(fit:Boolean):Void {
		if (fit) {
			setToFitSize();
		}
		if (photoFit && !fit) {
			setToActoalSize();
		}
		photoFit = fit;
	}
	//***************setToFitSize*************
	private function setToFitSize(from:Boolean):Void {
		photoFit = true;
		var scrollBGw:Number = ScrollPanelBG._width;
		var scrollBGh:Number = ScrollPanelBG._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 = ScrollPanelBG._width;
		var stageHeightPix:Number = ScrollPanelBG._height;
		browserSize.w = Math.round(stageWidthPix/100*percentW);
		browserSize.h = Math.round(stageHeightPix/100*percentH);
		return browserSize;
	}
	//********************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];
	}
	private function createTextFild():Void {
		//******************FormatText class******************
		photoTextField = __this.createTextField(photoTextName, photoTextDepth, 0, 0, 10, 10);
		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);
	}
	//*************************draw BGArea**************************
	private function drawBG():Void {
		//***************BGArea with DrawPrimitive class*************
		BGArea = DrawPrimitive.drawBitmapRectangle(__this, BGAreaName, BGAreaDepth, BGAreaW, BGAreaH, BGColorAlpha, BGColor);
	}
	private function setBGSize(_w:Number, _h:Number):Void {
		BGArea._width = _w;
		BGArea._height = _h;

⌨️ 快捷键说明

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