yuppy ..

Per chi come me ha porcheggiato e porcheggierà per modificare questo script..

versione con autoflip in loop del libro
Grassie negatyve.. quando vuoi ti offro lo spritz gigante che avanzi ..

Ciao e grassie mille


codice:
//  P i X E L W i T . C O M
//
//  Modified by Ringo - Autoflip-loop function  
//  tnx to Negatyve  -  http://www.negatyve.com/
//
stop();
//
//
//
//
//
//________________________C O M M E N T S
//
// Thought to self:
// Try naming functions according to the events which preclude them
//
//
// A page flip involves 3 pieces of paper
// 2 bottom static pages (which lay flat at all times)
// and 1 active flipping page (which has 2 sides)
// Four pages total, 2 static/stationary and 2 flipping
// The flipping page can be on the left or right side
// The top image on the flipping page doesn't actually move
//
//
//
//
//
//_________________________V A R I A B L E S 
//
// Store a constant reference to this clip on the main timeline so
// clip can be referenced from any other timeline as _level0.pagesAbs
_level0.pagesAbs = this;
// Set page dimensions
var pageWi = 483;
var PageHi = 483;
var pageWiHi = pageWi+pageHi;
var pivotY = pageHi/2+pageWi;
var pageColor = 0xFFFFE5;
// "dir" equals either 1 or -1 and determines if you
// are flipping forward or backward through the book
var dir = 1;
// "flipPage" is the # "between" the two flipping page #'s
var flipPage = 1.5;
// "curPage" is the # between the two currently viewed page #'s
var curPage = .5;
// "maxPages" should be an even number
var maxPages = 8;
// "autoStep" percentage of page width determining step size when auto-closing
var autoStep = .05;
// "dragging" is true if you are dragging the page
var dragging = false;

// Ringo - 31/10/2005 
// "autoFlip" set autoflip page with loop
var autoFlip = true;
// "timeToflip" is the time to auto flip expressed in seconds 
var timeToflip = 4;

//
//
//
//
//
//________________________________R U N   O N C E
//
// Place Left and Right page flip Buttons
this.attachMovie ("cornerButton", "RButton", 11);
with (RButton) {
	_x = pageWi;
	_y = -pageWi;
}
this.attachMovie ("cornerButton", "LButton", 12);
with (LButton) {
	_x = -pageWi;
	_y = -pageWi;
	_xscale = -100;
}
//
//
// Build pages for first time
pageInit (flipPage, dir);

// Autoflip Function - Ringo 31/10/2005
if (autoFlip == true){
     setInterval(nextPage,TimeToFlip*1000); // Change page every "TimeToFlip" seconds
}

// Drop down to appear centered
_y+=pivotY;
//
//
//
//
//
// _____________________B U I L D   F U N C T I O N S
//
// Create a left-aligned page-sized solid fill raised one pagewidth
function makePage (targ, xQuadrant) {
	with (targ) {
		beginFill(pageColor, 100);
		moveto(0, -pageWi);
		lineto(0, -pageWiHi);
		lineTo(xQuadrant*pageWi, -pageWiHi);
		lineTo(xQuadrant*pageWi, -pageWi);
		endFill();
	}
}
//
//
// Create a left-aligned page-sized shadow gradient raised one pagewidth
// Shade is used to add depth to stationary pages
function makeShade (targ, xQuadrant) {
	with (targ) {
		// Defines gradient used as shadow overlay
		var colors = [0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000];
		var alphas = [      40,       25,       15,        5,        0,        1,        6];
		var ratios = [       0,        1,       17,       51,       89,      132,      255];
		var matrix = { matrixType:"box", x:0, y:pageWi, w:xQuadrant*pageWi, h:pageHi, r:0};
		beginGradientFill( "linear", colors, alphas, ratios, matrix );
		moveto(0, -pageWi);
		lineto(0, -pageWiHi);
		lineTo(xQuadrant*pageWi, -pageWiHi);
		lineTo(xQuadrant*pageWi, -pageWi);
		endFill();
	}
}
//
//
// create a bottom-left aligned shadow gradient
// for animated shadows
function makeShadow (targ, xQuadrant) {
	with (targ) {
		// Defines gradient used as shadow overlay
		var colors = [0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000];
		var alphas = [      40,       25,       15,        5,        0,        1,        6];
		var ratios = [       0,        1,       17,       51,       89,      132,      255];
		var maxLength = Math.sqrt((pageWi*pageWi)+(pageWIHi*pageWiHi));
		var matrix = { matrixType:"box", x:0, y:-maxLength, w:xQuadrant*pageWi, h:maxLength-pageWi, r:0};
		beginGradientFill( "linear", colors, alphas, ratios, matrix );
		moveto(0, -pageWi);
		lineto(0, -maxLength);
		lineto(xQuadrant*pageWi, -maxLength);
		lineTo(xQuadrant*pageWi, -pageWi);
		endFill();
	}
}
//
//
// Place Stationary Pages
function setStationary() {
	
// Place the "S"tationary "L"eft "P"age
createEmptyMovieClip("SLPage", 1);
	if (flipPage!=1.5) {
		makePage (SLPage, -1)
			
		SLPage.attachMovie("print"+(flipPage-1.5), "Print", 1);
		with (SLPage.Print) {
			_x = -pageWi/2;
			_y = -pivotY;
		}		
	}
	// Place the "S"tationary "R"ight "P"age
createEmptyMovieClip("SRPage", 2);
	if (flipPage!=maxPages-.5){
		makePage (SRPage, 1)
		
		SRPage.attachMovie("print"+(flipPage+1.5), "Print", 1);
		with (SRPage.Print) {
			_x = pageWi/2;
			_y = -pivotY;	
		}
	}
	// Place shade on page not being revealed
	var targ = dir>0 ? SLPage : SRPage;
	targ.createEmptyMovieClip("Shade", 2);
	makeShade(targ.Shade, -dir);
}
// 
// 
// Place the Flipping Pages
function setFlipping() {
	var targ;
	// Place the "F"lipping "T"op "P"age
	createEmptyMovieClip("FTPage", 3);
	makePage (FTPage, dir)

	with (FTPage) {
		attachMovie("print"+(flipPage-dir*.5), "Print", 1);
		with (Print) {
			_x = dir*pageWi/2;
			_y = -pivotY;
		}
	}
	FTPage.createEmptyMovieClip("Shade", 2);
	makeShade(FTPage.Shade, dir);
	// Place the "F"lipping "B"ottom "P"age
	createEmptyMovieClip("FBPage", 4);
	makePage (FBPage, -dir)
	FBPage.attachMovie("print"+(flipPage+dir*.5), "Print", 1);
	with (FBPage.Print) {
		_x = -dir*pageWi/2;
		_y = -pivotY;
	}
	FBPage._rotation = dir*90;
}
// 
// 
// Creates Shadows which follow edge of transition
function setShadows() {
	var targ;
	// Place shadow on the "F"lipping page
	this.createEmptyMovieClip("FShadow", 5);
	makeShadow(FShadow, -dir);
	FShadow._rotation = dir*45;
	// Place shadow on the "S"tationary page
	this.createEmptyMovieClip("SShadow", 6);
	makeShadow(SShadow, dir);
	SShadow._rotation = dir*45;
}
// 
// 
// Create Masks to hide everything
function makeMasks() {
	// Create mask for Flipping Bottom Page Mask
	this.createEmptyMovieClip("FBPageMask", 7);
	with (FBPageMask) {
		beginFill(0x005500, 100);
		lineto(pageWiHi, -PageWiHi);
		curveto(0, -2*PageWiHi, -pageWiHi, -pageWiHi);
		endFill();
	}
	// Create mask for Flipping Top Page
	FBPageMask.duplicateMovieClip("FTPageMask", 8);
	// Create mask for Shadow on the Flipping Page
	this.createEmptyMovieClip("FShadowMask", 9);
	makePage (FShadowMask, -dir);
	FShadowMask._rotation = dir*90;
	// Create mask for Shadow on Stationary Page
	this.createEmptyMovieClip("SShadowMask", 10);
	makePage(SShadowMask, dir);
	FBPage.setMask(FBPageMask);
	FTPage.setMask(FTPageMask);
	FShadow.setMask(FShadowMask);
	SShadow.setMask(SShadowMask);
}
//
//
// Hide pages before page1 and after Last Page
function limitBook () {
	if (flipPage==1.5) {
		SLPage._visible = 0;
		LButton._visible = 0;
		SShadow._visible = 0;
		if (dir==1) {
			FTPage.Shade._alpha = 67;
			SShadow._visible = 1;
		}else {
			FShadow._alpha = 67;
		}			
	} else if (flipPage==maxPages-.5) {
		SRPage._visible = 0;
		RButton._visible = 0;
		SShadow._visible = 0;
		if (dir==-1) {
			FTPage.Shade._alpha = 67;
			SShadow._visible = 1;
		} else {
			FShadow._alpha = 67;
		}
	}		
}

// 
// 
// How to position all pages needed for a page flip
// calls all functions listed above
function pageInit (cp, d) {
	flipPage = cp;
	dir = d;
	//	_root.debug = flipPage + "/" +  maxPages; //Ringo - Debug Line
	//trace ("flip page = "+flipPage+" dir = "+dir);
	setStationary();
	setFlipping();
	setShadows();
	makeMasks();
	limitBook ();
}
// 
//
//
//
//
//__________________F L I P P I N G   F U N C T I O N S
//
// How to adjust position of flipping page
// based on a value between 0 and 1
function flip(curVal) {
	var rot = dir*45*curVal;
	FBPageMask._rotation = FTPageMask._rotation = -rot;
	FBPage._rotation = FShadowMask._rotation = (dir*90)-rot*2;
	FShadow._rotation = SShadow._rotation=(dir*45)-rot;
}
//
//
// how to determine position of flipping page
// returns a value between 0 and 1
// zero being no-flip and one being full-flip
function getPageRatio () {
	if (dragging) {
		// if dragging page position is determined by mouse position
		// the 20 helps advance the turning page when the button is pressed
		pageRatio = -dir*(_xmouse-startX-dir*20)/(2*pageWi);
	} else {
		// if not dragging; auto increment page towards final position
		pageRatio>2/3 ? pageRatio += autoStep : pageRatio -= autoStep;
	}
	// if out of bounds 
	if (pageRatio<=0) {
		pageRatio = 0;
		if (!dragging) {
			flipDone();
		}
	} else if (pageRatio>=1) {
		pageRatio = 1;
		if (!dragging) {
			flipDone();
		}
	}
	return (pageRatio);
}
// 
//
//
//
//
//_____________C O N T R O L I N G   F U N C T I O N S
//
// What to do when you press a page flipping button
function startFlip (dir) {
	pageInit (curPage+dir, dir);
	startX = dir*pageWi;
	dragging = true;
	RButton._alpha=0;
	Lbutton._alpha=0;
	this.onEnterFrame = function () {
		flip(getPageRatio());
	}
}
// 
//
// what to do when page is released
function flipRelease () {
	dragging = false;
	if (pageRatio>2/3) {
		curPage+=2*dir;
	}
}
//
//
// What to do when pages are done flipping
function flipDone () {
	this.onEnterFrame = null;
	RButton._alpha = 100;
	LButton._alpha = 100;
	if (curPage!=.5){
		LButton._visible = 1;		
	}
	if (curPage!=maxPages+.5){
		RButton._visible = 1;
	}
	// Delete hidden pages to save resources
	if (pageRatio==0) {
		FShadow.removeMovieClip();
		FShadowMask.removeMovieClip();
		SShadow.removeMovieClip();
		SShadowMask.removeMovieClip();
		FBPage.removeMovieClip();
		FBPageMask.removeMovieClip();
		if (dir==1) {
			SRPage.removeMovieClip();
		} else {
			SLPage.removeMovieClip();
		}			
	} else {
		FTPage.removeMovieClip();
		if (dir==-1) {
			SRPage.removeMovieClip();
		} else {
			SLPage.removeMovieClip();
		}
	}
	FTPageMask.removeMovieClip();
}
//
//

// Created by Negatyve - Edited By Ringo 30/10/2005
// Funzioni nextPage() prevPage() per evitare il trascinamento del mouse 
function nextPage()
{
	//Ringo 31/10/2005 Block pages over the end of the book	in loop mode
	if (autoflip == true) { 
			if (curPage > maxPages-.5) curPage = 0.5;  
            if (curPage < maxPages-.5) curPage = curPage; 		 
	}  
	//End Ringo

	
	var pageNumber = curPage + 1.5;
	var pagen = (pageNumber / 2) + 0.5;
	startForcedFlip(1);
}

function prevPage()
{
	var pageNumber = curPage - 1.5;
	var pagen = (pageNumber + 1) / 2;
	startForcedFlip(-1);
}
function startForcedFlip(dir)
{
	pageInit(curPage + dir, dir);
	mover = dir * pageWi;
	startX = dir * pageWi;
	dragging = true;
	this.onEnterFrame = function()
	{
		flip(getForcedPageRatio());
	};
}
function getForcedPageRatio()
{
	pageRatio = -dir * ((mover += (50 * -dir))  - startX - dir * 20) / (2 * pageWi);
	// if out of bounds 
	if (pageRatio <= 0) {
		pageRatio = 0;
		var chiudi = true;
	} else if(pageRatio >= 1){
		pageRatio = 1;
		var chiudi = true;
	}
	if(chiudi){
		flipRelease()
		flipDone();
	}
	return (pageRatio);
}
//
//
// assign functions to button events
LButton.onPress = function() {
	startFlip (-1);
}
LButton.onReleaseOutside = function () {
	flipRelease();
}
LButton.onRelease = function () {
	flipRelease();
}
RButton.onPress = function() {
	startFlip (1);
}
RButton.onReleaseOutside = function () {
	flipRelease();
}
RButton.onRelease = function () {
	flipRelease();
}
//
//
//
//
//