toasterfactory
Messages postés2Date d'inscriptionmardi 28 septembre 2004StatutMembreDernière intervention 7 octobre 2006
-
7 oct. 2006 à 14:09
A2linegarnoule
Messages postés45Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 2 avril 2008
-
18 mars 2008 à 14:45
bonjour,
j'ai un problème avec le script du flipbook, j'ai paramétré des boutons sur le côté du livre pour qu'il m'envoie à une page donnée située plus loin (skip page fonction gotopage) mais le problème est que le bouton disparait quand on va 4 pages plus loin, mais j'aimerais qu'il soit visible peut importe ou on se trouve dans le livre.
En gros pouvoir revenir à la page 1 quand on est sur la 14 par exemple.
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) {
startsnd(1); //Sound
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;
oef();
//_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)0) flipOK = true;
if(sx>0 && pages._xmouse<0) flipOK = true;
flipOff = true;
flip = false;
if(flipOK) startsnd(2); //sound
}
}
}
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);
//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;
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;
//------------------------------------------------------------------------------------------------ PUT YOUR CODE HERE --------------
/* you can use these functions:
gotoPage( destinationPageNo, skip ); //quick jump to the page number: destinationPageNo; values = 0-maxpages; skip: boolean; if true, pages will be skipped to the destination!
canflip //it's a variable. setting its value to false disables flipping
other functions of page turning is automatic;
WARNING!!!
if you want to unload/reload tha pageflip, before unloading call function: removeML(); to remove mouse listener!
*/
function startAutoFlip () {
intervalID = setInterval(nextPage,2000); //2 seconds
}
function stopAutoFlip () {
clearInterval(intervalID);
}
function prevPage() {
gotoPage(page-2);
}
function nextPage() {
gotoPage(page+2);
}