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

📄 workersphotobuilder.as

📁 国外强大的xml相册
💻 AS
字号:
// import MenuXMLAssembler class
import pssclasses.splitpanel.leftmenu.*;
//**import PSSContentControler class**************************
import pssclasses.splitpanel.*;
//***********************WorkersPhotoBuilder class**************************
// Class work with ID photo or part or album
// get Id class build parts or album or big photo
// class created for search works
import pssclasses.photocontainers.*;
class WorkersPhotoBuilder {
	//*****************define attributes***************
	private var LeftMenu:MovieClip;
	private var Browser:MovieClip;
	private var ScrollPanel:MovieClip;
	private var BrowserFooter:MovieClip;
	private var BrowserHeader:MovieClip;
	private var ContentHolder:MovieClip;
	private var ScrollPanelBG:MovieClip;
	private var PlayMenu:MovieClip;
	private var LinksMenu:MovieClip;
	private var SoundMenu:MovieClip;
	private var PhotoMenu:MovieClip;
	//parts and albums arrays
	private var PartObject:Object;
	private var AlbumObject:Object;
	private var PartsArray:Array;
	private var AlbumsArray:Array;
	private var PartIndex:Number;
	private var AlbumIndex:Number;
	private var PhotosArray:Array;
	private var PhotoObject:Object;
	private var PhotoIndex:Number;
	private var PhotoSearchID:Number;
	private var PartID:Number;
	private var AlbumID:Number;
	//
	private var Worker:Object;
	// ****************define metods******************
	public function WorkersPhotoBuilder() {
		Worker = this;
	}
	//********************get all components****************
	public function init(browser:MovieClip):Void {
		Browser = browser;
		// get browser components
		LeftMenu = Browser.getLeftMenu();
		ScrollPanel = Browser.getScrollPanel();
		BrowserFooter = Browser.getFooter();
		BrowserHeader = Browser.getHeader();
		//***********************get parts and albums data from left menu*********
		PartsArray = LeftMenu.getPartsArray();
		AlbumsArray = LeftMenu.getAlbumsArray();
		// get components from scrollpanel
		ContentHolder = ScrollPanel.getContentHolder();
		ScrollPanelBG = ScrollPanel.getScrollPaneBG();
		// get components from browser footer
		PlayMenu = BrowserFooter.getPlayMenu();
		LinksMenu = BrowserFooter.getLinkMenu();
		SoundMenu = BrowserFooter.getSoundMenu();
		PhotoMenu = BrowserFooter.getPhotoMenu();
	}
	//**************************openPhoto by partID albumID photoID*******************
	public function openPhotoByID(partID:Number, albumID:Number, photoID:Number):Void {
		PartID = partID;
		AlbumID = albumID;
		//***********************search index from array by id**************
		// part index
		PartIndex = getPartIndexByID(PartsArray, partID);
		if (PartIndex != -1) {
			// album index
			AlbumIndex = getAlbumIndexByID(AlbumsArray, albumID, PartIndex);
			if (AlbumIndex != -1) {
				if (isNaN(photoID)) {
					LeftMenu.openSubPartMenu(PartIndex);
					LeftMenu.openAlbum(partID, albumID, AlbumIndex, PartIndex);
					//select sub part
					LeftMenu.selectInLeftMenu(PartIndex, AlbumIndex);
					// set header label
					BrowserHeader.setLabel(PartObject.name+" | "+AlbumObject.name);
				} else {
					// set showing to LeftMenu
					LeftMenu.setShowingSwitch("PHOTO");
					LeftMenu.openSubPartMenu(PartIndex);
					BrowserHeader.setLabel(PartObject.name+" | "+AlbumObject.name);
					PhotoSearchID = photoID;
					//select sub part
					LeftMenu.selectInLeftMenu(PartIndex, AlbumIndex);
					//**************************LOAD BIG PHOTO********************
					// load photos XML
					loadPhotosXML(partID, albumID);
					//********end*************LOAD BIG PHOTO********************
				}
			} else {
				// open first all parts
				LeftMenu.openSubPartMenu(PartIndex);
				openClearPart(PartIndex);
				// set header label
				BrowserHeader.setLabel(PartObject.name);
			}
			// end album index
		} else {
			// open first all parts
			openClearPart();
		}
		// end part index
	}
	//******end***************openPhoto by partID albumID photoID*******************
	//********************load Photos XML and pars********************
	private function loadPhotosXML(partID:Number, albumID:Number):Void {
		var _BROWSER:MovieClip = Browser;
		var _Worker:Object = Worker;
		var photosArray:Array;
		MenuXMLAssembler.setPhotosIsLoaded(false);
		if (!MenuXMLAssembler.getPhotosIsLoaded()) {
			MenuXMLAssembler.loadPhotosXML(partID, albumID);
			//var intervalIndex:Number = setInterval(chechPhotoXML, 50);
			MenuXMLAssembler.setCalBackAction(chechPhotoXML, this);
		} else {
			chechPhotoXML();
		}
		function chechPhotoXML():Void {
			if (MenuXMLAssembler.getPhotosIsLoaded()) {
				//clearInterval(intervalIndex);
				photosArray = MenuXMLAssembler.getPhotosArray();
				_Worker.searchPhotoById(photosArray);
				//****************************set to play menu photos array with photo object************
				_BROWSER.footer_mc.playMenu_mc.setPhotosArray(photosArray);
			}
		}
	}
	//*****end***********load Photos XML and pars********************
	public function openClearPart(partInd:Number):Void {
		LeftMenu.openSubPartMenu(partInd);
		//PSSContentControler
		var newPSSContentControler:Object = new PSSContentControler();
		newPSSContentControler.setLeftMenu(LeftMenu);
		newPSSContentControler.setScrollPane(ScrollPanel);
		newPSSContentControler.setPartsAndAlbumArray(PartsArray, AlbumsArray);
		newPSSContentControler.createPartsList(partInd);
		delete newPSSContentControler;
	}
	public function openAlbum(partID:Number, albumID:Number, partIndex:Number):Void {
		MenuXMLAssembler.setPhotosIsLoaded(false);
		LeftMenu.openSubPartMenu(partIndex);
				//*********************SET DopPhotoMenu to pasiv****************
		Browser.footer_mc.photoMenu_mc.setToPasiv();
		//PSSContentControler
		var newPSSContentControler:Object = new PSSContentControler();
		newPSSContentControler.setLeftMenu(LeftMenu);
		newPSSContentControler.setScrollPane(ScrollPanel);
		newPSSContentControler.setPartsAndAlbumArray(PartsArray, AlbumsArray);
		newPSSContentControler.createPhotosList(partID, albumID, PartIndex);
		delete newPSSContentControler;
	}
	//***********************search index from array by id**************
	public function getPartIndexByID(arr:Array, searchID:Number):Number {
		var arrCount:Number = arr.length;
		for (var i = 0; i<arrCount; i++) {
			var tempObject:Object = arr[i];
			if (tempObject.id == searchID) {
				PartObject = tempObject;
				return i;
			}
		}
		return -1;
	}
	public function getAlbumIndexByID(alarr:Array, searchID:Number, partIndex:Number):Number {
		var albArray:Array = alarr[partIndex];
		var countsAlbums:Number = albArray.length;
		for (var i = 0; i<countsAlbums; i++) {
			var tempObject:Object = albArray[i];
			if (tempObject.id == searchID) {
				AlbumObject = tempObject;
				return i;
			}
		}
		return -1;
	}
	//***************check photo XML*****************
	public function searchPhotoById(photosAr:Array):Number {
		PhotosArray = photosAr;
		var photosCount:Number = PhotosArray.length;
		for (var i = 0; i<photosCount; i++) {
			var tempObject:Object = PhotosArray[i];
			if (tempObject.id == PhotoSearchID) {
				tempObject.index = i;
				PhotoIndex = i;
				tempObject.p_index = PartIndex;
				tempObject.a_index = AlbumIndex;
				PhotoObject = tempObject;
				// open foto
				firstOpenBigPhoto();
				return 1;
			}
		}
		//PhotoSearchID
		//PhotoObject
		//PhotoIndex
	}
	//********************OPEN BIG PHOTO***********************
	private function firstOpenBigPhoto():Void {
		//*blok reBuild albums
		LeftMenu.setShowingSwitch("PHOTO");
		//*******************for photo dop menu***********************
		PhotoMenu.setToActiv();
		PhotoMenu.setAlbumData(PartID, AlbumID);
		PhotoMenu.setPhotoData(PhotosArray[PhotoIndex]);
		//*******end*******for photo dop menu***********************
		// attach big photo holder
		var BigPHolder:MovieClip;
		BigPHolder = ContentHolder.attachMovie("bigPhotoholder", "bigPhotoholder", 0);
		BigPHolder.setPhotoData(PhotosArray[PhotoIndex]);
		LeftMenu.setBigPhotoHolder(BigPHolder);
		// take photos array 
		BigPHolder.setPhotosArray(PhotosArray);
		// add link on BigPholder to play menu
		PlayMenu.setBigPhotoHolder(BigPHolder, ContentHolder, ScrollPanelBG);
		// **********************set to dop photo menu data***********************
		PhotoMenu.setScrollPanelBG(ScrollPanelBG, LeftMenu, BigPHolder);
		//
	}
	//*********END ********OPEN BIG PHOTO***********************
	public function getPartsArray():Array {
		return PartsArray;
	}
	public function getAlbumsArray():Array {
		return AlbumsArray;
	}
	//**********************end class********************************
}

⌨️ 快捷键说明

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