📄 slideshoweffects.as
字号:
// import filters
import flash.filters.BlurFilter;
//*****************************SlideShowEffects**************************
import pssclasses.SlideShow.*;
class SlideShowEffects extends MovieClip {
//**************define attributes*************
private var IsPhotoLoaded:Boolean = true;
private var EffectAction:Boolean = true;
private var PhotosArray:Array;
private var __this:MovieClip;
private var TopPhotoHolder:MovieClip;
private var Panel:MovieClip;
//photos holder
private var PhotoPath:String;
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;
private var photoFit:Boolean = true;
private var ActualSizeObj:Object;
private var EffectsArray:Array = new Array();
private var FirstPhoto:Boolean = true;
private var EffectFinished:Boolean = false;
private var alertError:MovieClip;
//
private var photoBort:Number = 0;
//******************define metods**************************
private function SlideShowEffects() {
__this = this;
TopPhotoHolder = __this.createEmptyMovieClip("topholder", 1);
}
public function setPlace(_panel:MovieClip):Void {
Panel = _panel;
createPhotoHolders();
}
public function openPhoto(path:String):Void {
if (IsPhotoLoaded) {
PhotoPath = path;
Panel.preloaderActivate();
IsPhotoLoaded = false;
nextPhoto();
}
}
//***************setToFitSize*************
private function setToFitSize(from:Boolean):Void {
photoFit = true;
var scrollBGw:Number = Stage.width;
var scrollBGh:Number = Stage.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 = Stage.width;
var stageHeightPix:Number = Stage.height;
browserSize.w = Math.round(stageWidthPix/100*percentW);
browserSize.h = Math.round(stageHeightPix/100*percentH);
return browserSize;
}
//**********************LOAD PHOTO*******************
public function loadPhoto(__path:String, Holder:MovieClip):Void {
//ActivHolder.swapDepths(0);
var __Holder:MovieClip = Holder;
var __THIS:MovieClip = __this;
Panel.block();
Holder._alpha = 0;
FirstStart = true;
//***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 {
//IsPhotoLoaded = true;
__THIS.lastActivHolder = __THIS.ActivHolder;
__THIS.ActivHolder = __Holder;
// *******************hide preloader into PlayMenu************
__THIS.Panel.preloaderDesable();
__THIS.Panel.unblock();
__THIS.Panel.setlabels();
__THIS.placeByFirstPhoto();
__THIS.ActivHolder._visible = true;
delete loader;
};
loadListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
//************************SET TO LOADER *************************
//_PlayMenu.setProgressLoadig(bytesTotal, bytesLoaded);
//*****end***************SET TO LOADER *************************
};
//********************ERROR*********'
loadListener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
//__THIS.attachMovie("alert_error", "alert_error", 10);
__THIS.IsPhotoLoaded = true;
__THIS.lastActivHolder = __THIS.ActivHolder;
__THIS.ActivHolder = __Holder;
// *******************hide preloader into PlayMenu************
__THIS.Panel.preloaderDesable();
__THIS.Panel.unblock();
//__THIS.Panel.setlabels();
__THIS.Panel.removePreloader();
__THIS.placeByFirstPhoto();
__THIS.ActivHolder._visible = true;
delete loader;
};
//****************preloader action**********************
loader.loadClip(__path, __Holder);
//***end*********preloader action**********************
}
// **********open next photo*****
//********************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];
}
public function nextPhoto():Void {
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;
}
// load photo
loadPhoto(PhotoPath, nextHolder);
}
public function placePhoto():Void {
var _photoBort:Number = photoBort;
if (ActivHolder._width != 0) {
//*************************fit size*************************
if (photoFit) {
setToFitSize(true);
} else {
setToActoalSize(true);
}
//_x
if ((ActivHolder._width+5*2)<Stage.width) {
ActivHolder._x = Math.round((Stage.width-(ActivHolder._width+5*2))/2);
} else {
ActivHolder._x = 5;
}
//_y
if ((ActivHolder._height+5*2)<Stage.height) {
ActivHolder._y = Math.round((Stage.height-(ActivHolder._height+5*2))/2)+.5;
} else {
ActivHolder._y = 5+.5;
}
//*************************fit size*************************
if (photoFit) {
setToFitSize(true);
} else {
setToActoalSize(true);
}
}
}
public function placeByFirstPhoto():Void {
//**set Effects
setEffects();
//end **set Effects
var THIS:MovieClip = __this;
var EffectsCount:Number = EffectsArray.length-1;
var EffectRandom:Number = Math.round(Math.random()*EffectsCount);
if (EffectRandom == 0) {
EffectRandom = 1;
}
if (!EffectAction || FirstPhoto) {
FirstPhoto = false;
EffectRandom = 0;
}
EffectsArray[EffectRandom].apply();
//*************************fit size*************************
if (photoFit) {
setToFitSize(true);
} else {
setToActoalSize(true);
}
}
//********************return data*********************
public function isPhotoLoaded():Boolean {
return IsPhotoLoaded;
}
public function effetcSwitchOn(switchOn:Boolean):Void {
EffectAction = switchOn;
}
//***************************************EFFECTS METODS************************************
private function setEffects():Void {
var _photoBort:Number = photoBort;
var count:Number = 0;
var _lastActivHolder:MovieClip = lastActivHolder;
var _photoFit:Boolean = photoFit;
ActualSizeObj = new Object();
var firstChecSize:Boolean = false;
ActivHolder.cacheAsBitmap = true;
var THIS:MovieClip = __this;
var _ActivHolder:MovieClip = ActivHolder;
//*************************effects metods************************
//alpha effect
function alphaEffect():Void {
_ActivHolder.onEnterFrame = function() {
if (this._width != 0) {
if (!firstChecSize) {
THIS.ActualSizeObj.width = this._width;
THIS.ActualSizeObj.height = this._height;
firstChecSize = true;
}
THIS.placePhoto();
if (count == 1) {
THIS.IsPhotoLoaded = true;
THIS.Panel.removePreloader();
delete this.onEnterFrame;
count = 0;
}
_lastActivHolder.onEnterFrame = function() {
_ActivHolder._alpha += 20;
this._alpha -= 20;
if (this._alpha<0 && _ActivHolder._alpha>=100) {
this._visible = false;
THIS.IsPhotoLoaded = true;
this.removeMovieClip();
}
};
//**************checkScrollPanel***************
count++;
}
};
}
//end alpha effect
//blur effect
function blurEffect():Void {
_ActivHolder.onEnterFrame = function() {
if (this._width != 0) {
if (!firstChecSize) {
THIS.ActualSizeObj.width = this._width;
THIS.ActualSizeObj.height = this._height;
firstChecSize = true;
}
THIS.placePhoto();
if (count == 1) {
delete this.onEnterFrame;
count = 0;
THIS.goToBlur(THIS.lastActivHolder, this, 1);
}
}
count++;
};
}
//blur effect
function blurEffectWithY():Void {
_ActivHolder.onEnterFrame = function() {
if (this._width != 0) {
if (!firstChecSize) {
THIS.ActualSizeObj.width = this._width;
THIS.ActualSizeObj.height = this._height;
firstChecSize = true;
}
THIS.placePhoto();
if (count == 1) {
delete this.onEnterFrame;
count = 0;
THIS.goToBlur(THIS.lastActivHolder, this, 1, true);
}
}
count++;
};
}
//****************end ******effects metods************************
EffectsArray[0] = alphaEffect;
EffectsArray[1] = blurEffect;
EffectsArray[2] = blurEffectWithY
}
//***********************goToBlur************************
private function goToBlur(bluringMC:MovieClip, sharpnesMC:MovieClip, unloadChek:Number, withY:Boolean):Void {
var blurIndex:Number = 2;
blurIndex = 0;
sharpnesMC.cacheAsBitmap = true;
sharpnesMC._alpha = 0;
var blurFilter:BlurFilter = new BlurFilter(0, 0, 3);
var blurFilterArray:Array = new Array();
var THIS:MovieClip = __this;
var WithY:Boolean=withY
//add filter to movie
bluringMC.onEnterFrame = function() {
blurIndex += 4;
blurFilter.blurX += blurIndex+blurIndex;
if(WithY){
blurFilter.blurY += blurIndex+blurIndex;
}
blurFilterArray[0] = blurFilter;
bluringMC.filters = blurFilterArray;
bluringMC._alpha -= blurIndex*2;
if (bluringMC._alpha<=0) {
delete bluringMC.onEnterFrame;
if(!WithY){
THIS.goToSharp(sharpnesMC);
}else{
THIS.goToSharp(sharpnesMC, true);
}
if (unloadChek == 1) {
bluringMC.unloadMovie();
}
}
};
}
//********************goToSharp*****************************
private function goToSharp(sharpnesMC:MovieClip,withY:Boolean):Void {
var blurIndex:Number = 2;
var WithY:Boolean=withY
if(WithY){
var blurFilter:BlurFilter = new BlurFilter(140, 140, 3);
}else{
var blurFilter:BlurFilter = new BlurFilter(240, 0, 3);
}
var blurFilterArray:Array = new Array();
sharpnesMC.filters = blurFilterArray;
sharpnesMC._alpha = 0;
var THIS:MovieClip = __this;
//add filter to movie
sharpnesMC.onEnterFrame = function() {
blurIndex += 4;
blurFilter.blurX -= 20+blurIndex;
if(WithY){
blurFilter.blurY -= 20+blurIndex;
}
blurFilterArray[0] = blurFilter;
sharpnesMC.filters = blurFilterArray;
sharpnesMC._alpha = 100;
if (blurFilter.blurX<=0) {
THIS.IsPhotoLoaded = true;
delete sharpnesMC.onEnterFrame;
}
};
}
//*************************END******BLURING********************
private function onUnload():Void {
FirstPhoto = true;
IsPhotoLoaded = true;
}
//******************end class*****************
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -