# Automatic Page turn needed

**URL:** https://forum.kirupa.com/t/automatic-page-turn-needed/312537
**Category:** flash
**Created:** [August 5, 2010, 11:31pm UTC](https://forum.kirupa.com/t/automatic-page-turn-needed/312537 "2010-08-05T23:31:24Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![bcgraczyk](https://avatars.discourse-cdn.com/v4/letter/b/e495f1/32.png) [@bcgraczyk](https://forum.kirupa.com/u/bcgraczyk)
#### Post date: [August 5, 2010, 11:31pm UTC](https://forum.kirupa.com/t/automatic-page-turn-needed/312537/1 "2010-08-05T23:31:24Z")

</div>

Hello, I need smarter people’s help. I have a code for a two page turn. It works great except I need it for a banner ad, so the viewer may not click. So I need to figure out how to make it go automatically. I tried to upload the flash file but it’s too large…

Here is the code:  
//  
//  
// This file brought to you by: P i X E L W i T . C O M  
//  
//  
//  
stop();  
//  
//  
// \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_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 = 119;  
var pageHi = 178;  
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;  
//  
//  
//  
//  
//  
// \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_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);  
// 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  
// If quadrant = 1 page is on the right, if -1 page is on the left  
// targ is the clip which hold the page drawing  
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;  
// 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();  
}  
//  
//  
// 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();  
};  
//  
//  
//  
//  
//
