📄 photobuilder.as
字号:
// import MenuXMLAssembler class
import pssclasses.splitpanel.leftmenu.*;
//import drawPrimetive
import pssclasses.*;
// import hint class
import pssclasses.hint.*;
//***************************import FormatText class**************************
import pssclasses.*;
//***********************PhotoBuilder class**************************
import pssclasses.photocontainers.*;
class PhotoBuilder {
//*************define attributes***************
private var BROWSER:MovieClip;
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 = "preview";
private var PhotoFile:String;
// 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 = 11;
private var labelColor:Number = 0xD0D0D0;
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 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 PhotoBuilder() {
HOLDERSCOUNT = 0;
newLine = 0;
lineArray = new Array();
}
public function setBrowser(brows:MovieClip):Void {
BROWSER = brows;
}
//*********************create holder************
public function createHolder(_place:MovieClip, photoObject:Object, photosArray:Array):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.w
photoData.h
photoData.p_id
*/
var id:Number = photoData.id;
//********************setphoto size
setPhotoWH(photoData.mwidth, photoData.mheight);
// *****************create holder
Holder = _place.createEmptyMovieClip("holder_"+id, id);
Holder.cacheAsBitmap = true;
// set property to holder
Holder.photoData = photoData;
// ***end**********create holder
//*******************create photo holder
createPhotoHolder(photoData);
//****end***********create photo holder
//********************load photo
loadPhoto(PhotoPartsFolder+photoData.p_id+"/"+photoData.a_id+"/"+AlbumPhoto+"/"+photoData.file);
//***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_bigphotolook;
// from hint class
Hint.labelText(hinttext, null, true);
//*******************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();
//trace()
//*******************for photo dop menu***********************
var BrowserContentHolder:MovieClip = this._parent._parent._parent._parent._parent;
var BROWSER:MovieClip = BrowserContentHolder._parent;
var LeftMenu:MovieClip = BrowserContentHolder.leftMenuFull_mc;
// blok reBuild albums
LeftMenu.setShowingSwitch("PHOTO");
var scrollPanelBG:MovieClip = BrowserContentHolder._parent.content_mc.scrollContentPane_mc.BGArea_mc;
var photoDopMenu:MovieClip = BrowserContentHolder._parent.footer_mc.photoMenu_mc;
photoDopMenu.setToActiv();
photoDopMenu.setAlbumData(this.photoData.p_id, this.photoData.a_id);
photoDopMenu.setPhotoData(photoData);
//*******end*******for photo dop menu***********************
var contentHolder:MovieClip = this._parent._parent._parent;
// attach big photo holder
var BigPHolder:MovieClip = contentHolder.attachMovie("bigPhotoholder", "bigPhotoholder", 0);
BigPHolder.setPhotoData(photoData);
LeftMenu.setBigPhotoHolder(BigPHolder);
// take photos array
BigPHolder.setPhotosArray(photosArray);
// add link on BigPholder to play menu
BROWSER.footer_mc.playMenu_mc.setBigPhotoHolder(BigPHolder, contentHolder, scrollPanelBG);
BROWSER.footer_mc.playMenu_mc.setPhotoIndex(photoData.index);
// **********************set to dop photo menu data***********************
photoDopMenu.setScrollPanelBG(scrollPanelBG, LeftMenu, BigPHolder);
//LeftMenu.openSubPartMenu(this.photoData.p_index);
//LeftMenu.openAlbum(this.photoData.p_id, this.photoData.a_id);
/*
photoData.file
photoData.index
photoData.id
photoData.name
photoData.mheight
photoData.mwidth
// part ID
photoData.p_id
// album ID
photoData.a_id
//
this.photoData.p_id
// photo ID
this.photoData.id
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 {
if (__text == undefined) {
__text = " ";
}
photoTextField.htmlText = __text;
myLabel = __text;
}
//*******************create photo holder**********************
private function createPhotoHolder(fotoData:Object):Void {
photoHolder = Holder.createEmptyMovieClip("photoHolder_mc", photoHolderDepth);
if (fotoData.w) {
photoHolder._x = leftMargin+(fotoData.mwidth-fotoData.w)/2;
} else {
photoHolder._x = leftMargin;
}
photoHolder._y = topMargin;
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 _PhotoBuilder:Object = this;
var _BROWSER = BROWSER;
//**********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 {
_BROWSER.countLoadedImg();
preLoader.removeMovieClip();
//**************checkScrollPanel***************
//_SkrollPanel.dynResizeWidth();
//***end******checkScrollPanel***************
delete loader;
//***************effects
if (_global.EFFECT == 3) {
HoldersEffects.goToSharp(__Holder);
}
};
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) {
_BROWSER.countLoadedImg();
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**********************
}
//**********end class********
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -