Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

epidemia

Virar página do livro com um clique

Recommended Posts

Olá tenho esta função que vira a página de um livro quando eu seguro e arrasto o mouse .. mas alem de fazer este efeito preciso de quando a pessoa somente clique já vire a página de uma vez.Fico no aguardo de uma luzValeu//// P i X E L W i T . C O M//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 dimensionsvar pageWi = 320;var PageHi = 340;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 bookvar dir = 1;// "flipPage" is the # "between" the two flipping page #'svar flipPage = 1.5;// "curPage" is the # between the two currently viewed page #'svar curPage = .5;// "maxPages" should be an even numbervar maxPages = 8;// "autoStep" percentage of page width determining step size when auto-closingvar autoStep = .05;// "dragging" is true if you are dragging the pagevar dragging = false////////////________________________________R U N O N C E//// Place Left and Right page flip Buttonsthis.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 timepageInit (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 pagewidthfunction 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 pagesfunction 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 shadowsfunction 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 Pagesfunction setStationary() {// Place the "S"tationary "L"eft "P"agecreateEmptyMovieClip("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"agecreateEmptyMovieClip("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 Pagesfunction 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 transitionfunction 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 everythingfunction 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 Pagefunction 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 abovefunction 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 1function 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-flipfunction 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 buttonfunction 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 releasedfunction flipRelease () { dragging = false; if (pageRatio>2/3) { curPage+=2*dir; }}////// What to do when pages are done flippingfunction 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 eventsLButton.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();}//////////

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode atribuir um evento onRelease se for um mc ou on(release) se for um botão, você só tem que adaptar o código p/ tais eventos. Dessa forma, você informa os código a seguir caso o usuário dê um click no objeto em questão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.