Comunidad de diseño web y desarrollo en internet online

codigo libro

Citar            
MensajeEscrito el 19 Feb 2005 06:41 pm
Tengo el script para hacer el efecto de libro, pero no me funciona para el flash player 7, que le debo cambiar para que me funcione este es el script

Código :

trace(this);
trace(_root);


//these values can be changed: -------------------------------------------------------------------------

pw = 300;         //page width in pixel
ph = 400;         //page height in pixel

//page data... (export names/tearing flag)
pageOrder =  new Array("page0","page1","page2","page3","page4","page5","page6","page7","page8","page9","page10","page11","page12","page13","page14","page15","page16","page17");
pageCanTear = new Array(false,  false,  false,  false,  false,  false,  false,  false,  false,  false,  false,   false,    false,    false,   false,   false,   false,   false);   //pages TEAROFF function!


page=0;            //first page (normally it is 0 = the page before the cover = blank page)
maxpage=3;         //last page (back cover, should be even number)

hcover = true;      //hard cover on/off

clickarea = 64;      //pixel width of the click sensitive area at the edges..
afa = 56;         //width of the autoflip starter square.

gs = 2;            //goto page flip speed
ps = 5;            //mouse pursuit speed
es = 3;            //flip speed after mouse btn release

canflip = true;      //page flipping enabled

//do not change these values:  ---------------------------------------------------------------------------------------------------------------------

_global.mcnt = 0;   //counter (used on a page where is an animation)
gpage = 0;         //gotoPage No
gflip = false;      //gotoPage flip
gdir = 0;         //goto direction...

aflip = false;      //auto flip
flip = false;      //pageflip
flipOff = false;   //terminateflip
flipOK = false;      //good flip
hflip = false;      //hardflip (the cover of the book)
rotz = -30;         //hardflip max y difference

preflip = false;   //corner flip status
ctear = false;      //actual page status
tear = false;
teard = 0;
tlimit = 80;



mpx = 0, mpy = 0;   //mousepos at click

sx = sy = 0;   //startpoint when flipping

x = 0;   //mouse x,y
y = 0;
ax = 0;   //auto x,y
ay = 0;
acnt = 0;
aadd = 0;
aamp = 0;

AM = Math.PI/180;

stop();

_quality = "BEST";
Stage.scaleMode = "noScale";

function reset() {               //initializing pages... ---------------------------------------------------------------------------------------
   pages.p0.page._x = -pw;
   pages.p0._x = 0;
   pages.p1.page._x = -pw;
   pages.p1._x = 0;

   pages.flip.p2.page._x = -pw;
   pages.flip.p2._x = pw;
   pages.flip.p3.page._x = -pw;
   pages.flip.p3._x = 0;

   pages.p4.page._x = -pw;
   pages.p4._x = pw;
   pages.p5.page._x = -pw;
   pages.p5._x = pw;
   
   pages.pgrad._visible = pages.mask._visible = pages.flip._visible = false;
   pages.flip.p3mask._width = pages.pgmask._width = pw*2;
   pages.center._height = pages.flip.p3mask._height = pages.pgmask._height = ph;
   pages.flip.fmask.page.pf._width = pw;
   pages.center._width = 6;
   pages.flip.fmask.page.pf._height = ph;
   
   pageNumber = new Array();
   for(i=0;i<=(maxPage+1);i++) pageNumber[i] = i;
}

mousecontroll = new Object();      //initializing mouse click handler ---------------------------------------------------------------------------
mousecontroll.onMouseDown = function() {
   if(flip && !aflip) {//  && !preflip) {
      flipOK = false;   
      if(sx<0 && pages._xmouse>0) flipOK = true;
      if(sx>0 && pages._xmouse<0) flipOK = true;
      flipOff = true;
      flip = false;
   } else if((flipoff || aflip || !canflip) && !preflip) {
      trace("donothing");
   } else {
      var oox = ox;
      var ooy = oy;
      var osx = sx;
      var osy = sy;
      var hit = hittest();      //hittest
      if(hit) {
         anim._visible = false;
         flip = true;
         flipOff = false;
         tear = false;         //not tearing yet...
         ox = sx = hit*pw;
         if(preflip) {
            aflip = preflip = false;
            ox = oox, oy = ooy;
            sx = osx, sy = osy;
         }
         pages.flip.setMask(pages.mask);
         mpx = pages._xmouse, mpy = pages._ymouse;
         //_quality = "MEDIUM";   //it is the place to degrade image quality while turning pages if the performance is too low.
      }
   }
}
mousecontroll.onMouseUp = function() {
   if(flip && !tear) {
      if((Math.abs(pages._xmouse)>(pw-afa) && Math.abs(pages._ymouse)>(ph/2-afa) && Math.abs(pages._xmouse-mpx)<afa) || preflip) {
         flip = false;
         preflip = false;
         autoflip();
      } else if(!preflip) {
         preflip = false;
         flipOK = false;   
         if(sx<0 && pages._xmouse>0) flipOK = true;
         if(sx>0 && pages._xmouse<0) flipOK = true;
         flipOff = true;
         flip = false;
      }
   }
}

function hittest() {   //hittest at mouse clicks, if click is over the book -> determining turning direction ------------------------------------
   var x=pages._xmouse;
   var y=pages._ymouse;
   var pmh = ph/2;
   
   if(y<=pmh && y>=-pmh && x<=pw && x>=-pw) {   //ha a megadott intervallumban klikkelunk, akkor lapozhatunk
      var r = Math.sqrt(x*x+y*y);
      var a = Math.asin(y/r);
      var y = Math.tan(a)*pw;
      if(y>0 && y>ph/2) y = ph/2;
      if(y<0 && y<-ph/2) y = - ph/2;
      oy = sy = y;
      r0 = Math.sqrt((sy+ph/2)*(sy+ph/2)+pw*pw);
      r1 = Math.sqrt((ph/2-sy)*(ph/2-sy)+pw*pw);
      
      pageN = eval("pages.flip.p2.page");
      pageO = eval("pages.flip.p3");
      offs = -pw;
      pages.flip.fmask._x = pw;
      
      if(x<-(pw-clickarea) && page>0) {      //>-----> flip backward
         pages.flip.p3._x = 0;
         hflip = checkCover(page,-1);
         setPages(page-2,page-1,page,page+1);
         ctear = pageCanTear[page-1];
         return -1;
      }
      if(x>(pw-clickarea) && page<maxpage) {   //<-----< flip forward
         pages.flip.p3._x = pw;
         hflip = checkCover(page,1);
         setPages(page,page+2,page+1,page+3);
         ctear = pageCanTear[page+2];

         return 1;
      }
   } else return 0;   //wrong click
}
function checkCover(p,dir) {
   if(hcover) {
      if(dir>0) {
         if(p==(maxpage-2) || p==0) return true;
      } else {
         if(p==maxpage || p==2) return true;
      }
   }
   return false;   
}
function corner() {
   var x = Math.abs(pages._xmouse);
   var y = Math.abs(pages._ymouse);
         if(x>(pw-afa) && x<pw && y>(ph/2-afa) && y<(ph/2)) {
      return true;
   }
   return false;
}


function oef() {
   _global.mcnt++;   //main counter incrase (need for some page effect);
   
   if(!flip && corner()) {   //corner mouseover
      preflip = true;
      if(!autoflip()) preflip = false;
   }
   if(preflip && !corner()) {
      preflip = false;
      flip = false;
      flipOK = false;
      flipoff = true;
   }
   getm();
   if(aflip && !preflip) {
      y = (ay += (sy-ay)/(gflip? gs: ps ));
      acnt += aadd;
      ax -= aadd;
      if(Math.abs(acnt)>pw) {
         flipOK = true;
         flipOff = true;
         flip = false;
         aflip = false;
      }
   }
   if(flip) {                     //page turning is in progress...
      if(tear) {
         x = tox;
         y = (toy += teard);
         teard *= 1.2;
         if(Math.abs(teard)>1200) {
            flipOff = true;
            flip = false;
         }
      } else {
         x = (ox += (x-ox)/(gflip? gs: ps ));
         y = (oy += (y-oy)/(gflip? gs: ps ));
      }
      calc(x,y);                  //positioning pages and shadows
   }
   if(flipOff) {                  //terminating page turning effect... (comlplete turning... dropped on the other side)
      if(flipOK || tear) {
         x = (ox += (-sx-ox)/(gflip? gs: es ));
         y = (oy += (sy-oy)/(gflip? gs: es ));
         calc(x,y);
         if(x/-sx > 0.99 || tear) {         //we are done with turning, so stop all turning issue...
            flip = false;
            flipOK = flipOff = false;
            pages.pgrad._visible = pages.flip._visible = false;
            //_quality = "BEST";   //if quality is decrased during turning effect, you must reset its default value!

            if(tear) {            //if tear: remove page!!!
               removePage((sx<0)? page: page+1);
               //removePage(page);
               page += (sx<0)? -2: 0;
            } else {
               page += (sx<0)? -2: 2;   //and tourning pages at pagenumber level...
            }
            setPages(page,0,0,page+1);
            tear = false;
            
            if(gpage>0) {         //gotoflip active -> is there another flipping left?
               gpage--;
               autoflip();
            } else gflip = false;
         }
      } else {                  //terminating page turning effect... (incomlplete turning... dropped on the dragged side)
         x = (ox += (sx-ox)/3);
         y = (oy += (sy-oy)/3);
         calc(x,y);
         if(x/sx > 0.99) {         //we are done with turning, so stop all turning issue...
            flip = false;
            flipOff = false;
            aflip = false;
            pages.pgrad._visible = pages.flip._visible = false;
            //_quality = "HIGH";    //if quality is decrased during turning effect, you must reset its default value!
            setPages(page,0,0,page+1);   //no change at pagenumbers..
         }
      }
   }
}

function calc(x,y) {               //positioning pages and shadows by x,y reference points --------------------------------------------------
   if(hflip) {   //hardflip...
      var xp = (sx<0)? -x: x;
      if(xp>0) {
         sp2._visible = false;
         sp3._visible = true;
         scalc(sp3,x);
      } else {
         sp3._visible = false;
         sp2._visible = true;
         scalc(sp2,x);
      }
      pages.flip.setMask(null);
      pages.flip._visible = true;
      pages.flip.fgrad._visible = false;
      pages.flip.p2._visible = pages.flip.p3._visible = false;
      return;
   } else pages.flip.fgrad._visible = true;
   
   //normal flipping process---------------------------------------------------------------------
   var rr0 = Math.sqrt((y+ph/2)*(y+ph/2)+x*x);
   var rr1 = Math.sqrt((ph/2-y)*(ph/2-y)+x*x);
   if((rr0>r0 || rr1>r1) && !tear) {   // we can tear off pages now:)
                     // so reference points must be recalculated!
      if(y<sy) {   // k1-gyel kell osszehasonlitani!
         var a = Math.asin((ph/2-y)/rr1);
         y = (ph/2-Math.sin(a)*r1);
         x = (x<0)? -Math.cos(a)*r1: Math.cos(a)*r1;
         if(y>sy) {
            if((sx*x)>0) y = sy, x = sx;
            else y = sy, x = -sx;
         }
         if((rr1-r1)>tlimit && ctear) {
            teard = -5;
            tear = true;
            tox = ox = x;
            toy = oy = y;
         }
      } else {   // k0-val kell osszehasonlitani!
         var a = Math.asin((y+ph/2)/rr0);
         y = Math.sin(a)*r0-ph/2;
         x = (x<0)? -Math.cos(a)*r0: Math.cos(a)*r0;
         if(y<sy) {
            if((sx*x)>0) y = sy, x = sx;
            else y = sy, x = -sx;
         }
         if((rr0-r0)>tlimit && ctear) {
            teard = 5;
            tear = true;
            tox = ox = x;
            toy = oy = y;
         }
      }
   }
   if((sx<0 && (x-sx)<10) || (sx>0 && (sx-x)<10)) {
      if(sx<0) x = -pw+10;
      if(sx>0) x = pw-10;
   } 
   //calculating flipping process
   pages.flip._visible = true;
   pages.flip.p3shadow._visible = pages.pgrad._visible = !tear;
   pages.flip.p2._visible = pages.flip.p3._visible = true;
   //equation of the line
   var vx = x-sx;
   var vy = y-sy;
   var a1 = vy/vx;
   var a2 = -vy/vx;
   
   cx = sx+(vx/2);
   cy = sy+(vy/2);
   //trigonometriai szamitasok
   //calculating rotation of the page, and the masks
   var r = Math.sqrt((sx-x)*(sx-x)+(sy-y)*(sy-y));
   var a = Math.asin((sy-y)/r);
   if(sx<0) a = -a;   
   ad = a/AM;    //in degree
   pageN._rotation = ad*2;
   r = Math.sqrt((sx-x)*(sx-x)+(sy-y)*(sy-y));
   rl = (pw*2);
   if(sx>0) {             //flip forward
      pages.mask._xscale = 100;
      nx = cx-Math.tan(a)*(ph/2-cy);
      ny = ph/2;
      if(nx>pw) {
         nx = pw;
         ny = cy+Math.tan(Math.PI/2+a)*(pw-cx);
      }
      pageN.pf._x = -(pw-nx);
      pages.flip.fgrad._xscale = (r/rl/2)*pw;
      pages.pgrad._xscale = -(r/rl/2)*pw;
      pages.flip.p3shadow._xscale = (r/rl/2)*pw;
   } else {             //flip backward
      pages.mask._xscale = -100;
      nx = cx-Math.tan(a)*(ph/2-cy);
      ny = ph/2;
      if(nx<-pw) {
         nx = -pw;
         ny = cy+Math.tan(Math.PI/2+a)*(-pw-cx);
      }
      pageN.pf._x = -(pw-(pw+nx));
      pages.flip.fgrad._xscale = -(r/rl/2)*pw;
      pages.pgrad._xscale = (r/rl/2)*pw;
      pages.flip.p3shadow._xscale = -(r/rl/2)*pw;
   }
   pages.mask._x = cx;
   pages.mask._y = cy;
   pages.mask._rotation = ad;
   pageN.pf._y = -ny;
   pageN._x = nx+offs;
   pageN._y = ny;
   pages.flip.fgrad._x = cx;
   pages.flip.fgrad._y = cy;
   pages.flip.fgrad._rotation = ad;
   pages.flip.fgrad._alpha = (r>(rl-50))? 100-(r-(rl-50))*2: 100;
   pages.flip.p3shadow._x = cx;
   pages.flip.p3shadow._y = cy;
   pages.flip.p3shadow._rotation = ad;
   pages.flip.p3shadow._alpha = (r>(rl-50))? 100-(r-(rl-50))*2: 100;
   pages.pgrad._x = cx;
   pages.pgrad._y = cy;
   pages.pgrad._rotation = ad+180;
   pages.pgrad._alpha = (r>(rl-100))? 100-(r-(rl-100)): 100;
   pages.flip.fmask.page._x = pageN._x;
   pages.flip.fmask.page._y = pageN._y;
   pages.flip.fmask.page.pf._x = pageN.pf._x;
   pages.flip.fmask.page.pf._y = pageN.pf._y;
   pages.flip.fmask.page._rotation = pageN._rotation;
}

function scalc(obj,x) {   //hardflip calc
   if(x<-pw) x=-pw;
   if(x>pw) x=pw;
   var a = Math.asin( x/pw );
   var rot = a/AM/2;
   var xs = 100;
   var ss = 100*Math.sin( rotz*AM );
   x = x/2;
   var y = Math.cos(a)*(pw/2)*(ss/100);
   placeImg(obj, rot, ss, x, y)
   pages.pgrad._visible = pages.flip._visible = true;
   pages.pgrad._xscale = x;
   pages.pgrad._alpha = pages.flip.p3shadow._alpha = 100;
   pages.flip.p3shadow._xscale = -x;
   pages.flip.p3shadow._x = 0;
   pages.flip.p3shadow._y = 0;
   pages.flip.p3shadow._rotation = 0;
   pages.pgrad._x = 0;
   pages.pgrad._y = 0;
   pages.pgrad._rotation = 0;
}

function placeImg(j, rot, ss, x, y) {
   var m = Math.tan( rot*AM );
   var f = Math.SQRT2/Math.sqrt(m*m+1);
   var phxs = 100*m;
   var phRot = -rot;;
   var xs = 100*f;
   var ys = 100*f;
   j.ph.pic._rotation = 45;
   j.ph.pic._xscale = (phxs<0)? - xs: xs;
   j.ph.pic._yscale = ys*(100/ss);
   j.ph._rotation = phRot;
   j.ph._xscale = phxs;
   j._yscale = ss;
   j._x = x;
   j._y = y;
   j._visible = true;
}

function setPages(p1,p2,p3,p4) {   //attach the right page "image" at the right place:)
   p0 = p1-2;                  //pages for transparency...
   p5 = p4+2;
   if(p0<0) p0=0;
   if(p5>maxpage) p5=0;
   
   if(p1<0) p1=0;   //visible pages
   if(p2<0) p2=0;
   if(p3<0) p3=0;
   if(p4<0) p4=0;
   trace("setpages ->"+p1+","+p2+","+p3+","+p4);
   pleft = pages.p1.page.pf.ph.attachMovie(pageOrder[p1],"pic",0);
   pages.p1.page.pf.ph._y = -ph/2;
   pleftb = pages.p0.page.pf.ph.attachMovie(pageOrder[p0],"pic",0);
   pages.p0.page.pf.ph._y = -ph/2;
   if(hflip) {   //hardflip pages are specials!!! 
      var tm = pages.flip.hfliph.attachMovie("sph","sp2",0);
      sp2 = tm.ph.pic.attachMovie(pageOrder[p2],"pic",0);
      sp2._y = -ph/2, sp2._x = -pw/2;
      sp2 = eval("pages.flip.hfliph.sp2");
      var tm = pages.flip.hfliph.attachMovie("sph","sp3",1);
      sp3 = tm.ph.pic.attachMovie(pageOrder[p3],"pic",0);
      sp3._y = -ph/2, sp3._x = -pw/2;
      sp3 = eval("pages.flip.hfliph.sp3");
   } else {
      pages.flip.hfliph.sp2.removeMovieClip();
      pages.flip.hfliph.sp3.removeMovieClip();
      sp2 = pages.flip.p2.page.pf.ph.attachMovie(pageOrder[p2],"pic",0);
      pages.flip.p2.page.pf.ph._y = -ph/2;
      sp3 = pages.flip.p3.page.pf.ph.attachMovie(pageOrder[p3],"pic",0);
      pages.flip.p3.page.pf.ph._y = -ph/2;
   }
   pright = pages.p4.page.pf.ph.attachMovie(pageOrder[p4],"pic",0);
   pages.p4.page.pf.ph._y = -ph/2;
   prightb = pages.p5.page.pf.ph.attachMovie(pageOrder[p5],"pic",0);
   pages.p5.page.pf.ph._y = -ph/2;
}

function resetPages() {
   setPages(page,0,0,page+1);
}
   
function autoflip() {                        //start auto flip!
   if(!aflip && !flip && !flipoff && canflip) {   //only when all conditions fits our needs...
      acnt = 0
      aamp = Math.random()*(ph/2)-(ph/4);
      var x= gflip? (gdir*pw)/2: ((pages._xmouse<0)? -pw/2: pw/2);
      var y= Math.random()*ph-(ph/2);            //random starty
      var pmh = ph/2;
      var r = Math.sqrt(x*x+y*y);
      var a = Math.asin(y/r);
      var yy = Math.tan(a)*pw;
      if(y>0 && y>ph/2) y = ph/2;
      if(y<0 && y<-ph/2) y = - ph/2;
      oy = sy = yy;
      ax = (pages._xmouse<0)? -pw/2: pw/2;
      var l = ((ph/2)-y);
      ay = y;+(Math.random()*2*l)-l;            //page turnig style randomizing
      offs = -pw;
      var hit = 0;
      if(x<0 && page>0) {
         pages.flip.p3._x = 0;
         hflip = checkCover(page,-1);
         if(!(preflip && hflip)) setPages(page-2,page-1,page,page+1);
         hit = -1;
      }
      if(x>0 && page<maxpage) {
         pages.flip.p3._x = pw;
         hflip = checkCover(page,1);
         if(!(preflip && hflip)) setPages(page,page+2,page+1,page+3);
         hit = 1;
      }
      if(hflip && preflip) {
         hit = 0;
         preflip = false;
         return false;
      }
      if(hit) {
         anim._visible = false;
         flip = true;
         flipOff = false;
         ox = sx = hit*pw;
         pages.flip.setMask(pages.mask);
         aadd = hit*(pw/(gflip? 5:10 ));         //autoflip takes 10 frames to be done!!!
         aflip = true;
         pages.flip.fmask._x = pw;
         if(preflip) {
            oy = sy = (pages._ymouse<0)? -(ph/2): (ph/2);
         }
         r0 = Math.sqrt((sy+ph/2)*(sy+ph/2)+pw*pw);
         r1 = Math.sqrt((ph/2-sy)*(ph/2-sy)+pw*pw);
         pageN = eval("pages.flip.p2.page");
         pageO = eval("pages.flip.p3");
         oef();
         return true;
      }
   } else return false;
}

function getm() {   //get x,y reference points depending of turning style: manual/auto
   if(aflip && !preflip) {
      x = ax;
      y = ay;
   } else {
      x = pages._xmouse;
      y = pages._ymouse;
   }
}

function gotoPage(i) {   //quickjump to the page number i
   i = getPN(i);
   if(i<0) return false;
   var p = int(page/2);
   var d = int(i/2);
   if(p!=d && canflip && !gflip) {      //target!=current page
      if(p<d) {                  //go forward
         gdir = 1;
         gpage = d-p-1;
      } else {                  //go backward
         gdir = -1
         gpage = p-d-1;
      }
      gflip = true;
      autoflip();
   }
}
function getPN(i) {   //get the right page number
   var find = false;
   for(j=1;j<=maxpage;j++) {
      if(i==pageNumber[j]) {
         i=j;
         find = true;
         break;
      }
   }
   if(find) return i;
   else return -1;
}
function removePage(i) {
   trace("remove page "+i);
   i = (Math.floor((i-1)/2)*2)+1;
   removedPages.push(pageNumber[i], pageNumber[i+1]);
   
   for(j=(i+2);j<=(maxPage+1);j++) {
      pageOrder[j-2]=pageOrder[j];
      pageCanTear[j-2]=pageCanTear[j];
      pageNumber[j-2]=pageNumber[j];
   }
}
onEnterFrame = function() {
   trace(getBytesLoaded());
   if(getBytesLoaded()==getBytesTotal()) {
      gotoAndPlay(2);
      delete onEnterFrame;
   }
}

Por oskarjavier13

18 de clabLevel



Genero:Masculino  

Bogota

firefox
Citar            
MensajeEscrito el 20 Feb 2005 03:22 am
hay una parte del script que cuando exporto hace que me salga un mensaje que dice "un Script de esta pelicula esta provocando que el reproductor de flash se ejecute lentamente. si continua ejecutandose su pc podria no responder" cosa que pasa, la parte especifica del script que hace que esto pase es

Código :

Mouse.addListener(mousecontroll);
onEnterFrame = oef;      //main function: handles page turning-------------------------------------------------------------------------------------
resetPages();
reset();

que curiosamente no esta en el chorrero que copie arriba la unica forma que me funcione es cambiando las opciones de publicacion colocandole flash player 6, pero no me sirve por que el librito se lo quiero agregar a un proyecto que tengo para fp7 y no lo puedo poner en fp6 por que se vuelven una mie.. los textos.
gracias

Por oskarjavier13

18 de clabLevel



Genero:Masculino  

Bogota

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.