📄 bigphotoholder.as
字号:
//***************************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 + -