Alguien me puede ayudar?? Se los agradeceré mucho.
Mil gracias
Esta es la programación:
_____________________
function addPage(ename, tear)
{
var _loc1 = ename;
var _loc2 = tear;
if (_loc1 == "start")
{
pageOrder = new Array();
pageCanTear = new Array();
page = 0;
_loc1 = "blankpage";
} // end if
if (_loc1 == "end")
{
maxpage = page - 1;
_loc1 = "blankpage";
} // end if
_loc2 = _loc2 == undefined ? (false) : (_loc2);
pageOrder[page] = _loc1;
pageCanTear[page] = _loc2;
++page;
} // End of the function
function reset()
{
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;
pages.mask._height = pages.pgrad._height = pages.flip.p3shadow._height = pages.flip.flipgrad._height = 2 * Math.sqrt(ph * ph + pw * pw);
pageNumber = new Array();
for (i = 0; i <= maxpage + 1; i++)
{
pageNumber[i] = i;
} // end of for
} // End of the function
function hittest()
{
var x = pages._xmouse;
var y = pages._ymouse;
var pmh = ph / 2;
if (y <= pmh && y >= -pmh && x <= pw && x >= -pw)
{
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;
} // end if
if (y < 0 && y < -ph / 2)
{
y = -ph / 2;
} // end if
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 = pages.flip.p2.page;
pageO = pages.flip.p3;
offs = -pw;
pages.flip.fmask._x = pw;
if (x < -(pw - clickarea) && page > 0)
{
pages.flip.p3._x = 0;
hflip = checkCover(page, -1);
setPages(page - 2, page - 1, page, page + 1);
ctear = pageCanTear[page - 1];
return (-1);
} // end if
if (x > pw - clickarea && page < maxpage)
{
pages.flip.p3._x = pw;
hflip = checkCover(page, 1);
setPages(page, page + 2, page + 1, page + 3);
ctear = pageCanTear[page + 2];
return (1);
} // end if
}
else
{
return (0);
} // end else if
} // End of the function
function checkCover(p, dir)
{
var _loc1 = p;
if (hcover)
{
if (dir > 0)
{
if (_loc1 == maxpage - 2 || _loc1 == 0)
{
return (true);
} // end if
}
else if (_loc1 == maxpage || _loc1 == 2)
{
return (true);
} // end if
} // end else if
return (false);
} // End of the function
function corner()
{
var _loc2 = Math.abs(pages._xmouse);
var _loc1 = Math.abs(pages._ymouse);
if (_loc2 > pw - afa && _loc2 < pw && _loc1 > ph / 2 - afa && _loc1 < ph / 2)
{
return (true);
} // end if
return (false);
} // End of the function
function oef()
{
++_global.mcnt;
if (!flip && corner())
{
preflip = true;
if (!autoflip())
{
preflip = false;
} // end if
} // end if
if (preflip && !corner())
{
preflip = false;
flip = false;
flipOK = false;
flipOff = true;
} // end if
getm();
if (aflip && !preflip)
{
y = ay = ay + (sy - ay) / (gflip ? (gs) : (ps));
acnt = acnt + aadd;
ax = ax - aadd;
if (Math.abs(acnt) > pw)
{
flipOK = true;
flipOff = true;
flip = false;
aflip = false;
} // end if
} // end if
if (flip)
{
if (tear)
{
x = tox;
y = toy = toy + teard;
teard = teard * 1.200000E+000;
if (Math.abs(teard) > 1200)
{
flipOff = true;
flip = false;
} // end if
}
else
{
x = ox = ox + (x - ox) / (gflip ? (gs) : (ps));
y = oy = oy + (y - oy) / (gflip ? (gs) : (ps));
} // end else if
calc(x, y);
} // end if
if (flipOff)
{
if (flipOK || tear)
{
x = ox = ox + (-sx - ox) / (gflip ? (gs) : (es));
y = oy = oy + (sy - oy) / (gflip ? (gs) : (es));
calc(x, y);
if (x / -sx > 9.900000E-001 || tear)
{
flip = false;
flipOK = flipOff = false;
pages.pgrad._visible = pages.flip._visible = false;
if (tear)
{
removePage(sx < 0 ? (page) : (page + 1));
page = page + (sx < 0 ? (-2) : (0));
}
else
{
page = page + (sx < 0 ? (-2) : (2));
} // end else if
if (gskip)
{
page = gtarget;
} // end if
setPages(page, 0, 0, page + 1);
tear = false;
if (gpage > 0 && !gskip)
{
--gpage;
autoflip();
}
else
{
gflip = gskip = false;
} // end if
} // end else if
}
else
{
x = ox = ox + (sx - ox) / 3;
y = oy = oy + (sy - oy) / 3;
calc(x, y);
if (x / sx > 9.900000E-001)
{
flip = false;
flipOff = false;
aflip = false;
pages.pgrad._visible = pages.flip._visible = false;
setPages(page, 0, 0, page + 1);
} // end if
} // end if
} // end else if
} // End of the function
function calc(x, y)
{
var _loc1 = x;
var _loc2 = y;
if (hflip)
{
var xp = sx < 0 ? (-_loc1) : (_loc1);
if (xp > 0)
{
sp2._visible = false;
sp3._visible = true;
scalc(sp3, _loc1);
}
else
{
sp3._visible = false;
sp2._visible = true;
scalc(sp2, _loc1);
} // end else if
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;
} // end else if
var rr0 = Math.sqrt((_loc2 + ph / 2) * (_loc2 + ph / 2) + _loc1 * _loc1);
var rr1 = Math.sqrt((ph / 2 - _loc2) * (ph / 2 - _loc2) + _loc1 * _loc1);
if ((rr0 > r0 || rr1 > r1) && !tear)
{
if (_loc2 < sy)
{
var a = Math.asin((ph / 2 - _loc2) / rr1);
_loc2 = ph / 2 - Math.sin(a) * r1;
_loc1 = _loc1 < 0 ? (-Math.cos(a) * r1) : (Math.cos(a) * r1);
if (_loc2 > sy)
{
if (sx * _loc1 > 0)
{
_loc2 = sy;
_loc1 = sx;
}
else
{
_loc2 = sy;
_loc1 = -sx;
} // end if
} // end else if
if (rr1 - r1 > tlimit && ctear)
{
teard = -5;
tear = true;
tox = ox = _loc1;
toy = oy = _loc2;
} // end if
}
else
{
var a = Math.asin((_loc2 + ph / 2) / rr0);
_loc2 = Math.sin(a) * r0 - ph / 2;
_loc1 = _loc1 < 0 ? (-Math.cos(a) * r0) : (Math.cos(a) * r0);
if (_loc2 < sy)
{
if (sx * _loc1 > 0)
{
_loc2 = sy;
_loc1 = sx;
}
else
{
_loc2 = sy;
_loc1 = -sx;
} // end if
} // end else if
if (rr0 - r0 > tlimit && ctear)
{
teard = 5;
tear = true;
tox = ox = _loc1;
toy = oy = _loc2;
} // end if
} // end if
} // end else if
if (sx < 0 && _loc1 - sx < 10 || sx > 0 && sx - _loc1 < 10)
{
if (sx < 0)
{
_loc1 = -pw + 10;
} // end if
if (sx > 0)
{
_loc1 = pw - 10;
} // end if
} // end if
pages.flip._visible = true;
pages.flip.p3shadow._visible = pages.pgrad._visible = !tear;
pages.flip.p2._visible = pages.flip.p3._visible = true;
var vx = _loc1 - sx;
var vy = _loc2 - sy;
var a1 = vy / vx;
var a2 = -vy / vx;
cx = sx + vx / 2;
cy = sy + vy / 2;
var _loc3 = Math.sqrt((sx - _loc1) * (sx - _loc1) + (sy - _loc2) * (sy - _loc2));
var a = Math.asin((sy - _loc2) / _loc3);
if (sx < 0)
{
a = -a;
} // end if
ad = a / AM;
pageN._rotation = ad * 2;
_loc3 = Math.sqrt((sx - _loc1) * (sx - _loc1) + (sy - _loc2) * (sy - _loc2));
rl = pw * 2;
if (sx > 0)
{
pages.mask._xscale = 100;
nx = cx - Math.tan(a) * (ph / 2 - cy);
ny = ph / 2;
if (nx > pw)
{
nx = pw;
ny = cy + Math.tan(1.570796E+000 + a) * (pw - cx);
} // end if
pageN.pf._x = -(pw - nx);
pages.flip.fgrad._xscale = _loc3 / rl / 2 * pw;
pages.pgrad._xscale = -_loc3 / rl / 2 * pw;
pages.flip.p3shadow._xscale = _loc3 / rl / 2 * pw;
}
else
{
pages.mask._xscale = -100;
nx = cx - Math.tan(a) * (ph / 2 - cy);
ny = ph / 2;
if (nx < -pw)
{
nx = -pw;
ny = cy + Math.tan(1.570796E+000 + a) * (-pw - cx);
} // end if
pageN.pf._x = -(pw - (pw + nx));
pages.flip.fgrad._xscale = -_loc3 / rl / 2 * pw;
pages.pgrad._xscale = _loc3 / rl / 2 * pw;
pages.flip.p3shadow._xscale = -_loc3 / rl / 2 * pw;
} // end else if
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 = _loc3 > rl - 50 ? (100 - (_loc3 - (rl - 50)) * 2) : (100);
pages.flip.p3shadow._x = cx;
pages.flip.p3shadow._y = cy;
pages.flip.p3shadow._rotation = ad;
pages.flip.p3shadow._alpha = _loc3 > rl - 50 ? (100 - (_loc3 - (rl - 50)) * 2) : (100);
pages.pgrad._x = cx;
pages.pgrad._y = cy;
pages.pgrad._rotation = ad + 180;
pages.pgrad._alpha = _loc3 > rl - 100 ? (100 - (_loc3 - (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;
} // End of the function
function scalc(obj, x)
{
var _loc1 = x;
if (_loc1 < -pw)
{
_loc1 = -pw;
} // end if
if (_loc1 > pw)
{
_loc1 = pw;
} // end if
var _loc2 = Math.asin(_loc1 / pw);
var rot = _loc2 / AM / 2;
var xs = 100;
var _loc3 = 100 * Math.sin(rotz * AM);
_loc1 = _loc1 / 2;
var y = Math.cos(_loc2) * (pw / 2) * (_loc3 / 100);
placeImg(obj, rot, _loc3, _loc1, y);
pages.pgrad._visible = pages.flip._visible = true;
pages.pgrad._xscale = _loc1;
pages.pgrad._alpha = pages.flip.p3shadow._alpha = 100;
pages.flip.p3shadow._xscale = -_loc1;
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;
} // End of the function
function placeImg(j, rot, ss, x, y)
{
var _loc1 = j;
var _loc2 = Math.tan(rot * AM);
var f = 1.414214E+000 / Math.sqrt(_loc2 * _loc2 + 1);
var phxs = 100 * _loc2;
var phRot = -rot;
var _loc3 = 100 * f;
var ys = 100 * f;
_loc1.ph.pic._rotation = 45;
_loc1.ph.pic._xscale = phxs < 0 ? (-_loc3) : (_loc3);
_loc1.ph.pic._yscale = ys * (100 / ss);
_loc1.ph._rotation = phRot;
_loc1.ph._xscale = phxs;
_loc1._yscale = ss;
_loc1._x = x;
_loc1._y = y;
_loc1._visible = true;
} // End of the function
function setPages(p1, p2, p3, p4)
{
p0 = p1 - 2;
p5 = p4 + 2;
if (p0 < 0)
{
p0 = 0;
} // end if
if (p5 > maxpage)
{
p5 = 0;
} // end if
if (p1 < 0)
{
p1 = 0;
} // end if
if (p2 < 0)
{
p2 = 0;
} // end if
if (p3 < 0)
{
p3 = 0;
} // end if
if (p4 < 0)
{
p4 = 0;
} // end if
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)
{
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 = 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 = 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;
} // end else if
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;
} // End of the function
function resetPages()
{
setPages(page, 0, 0, page + 1);
} // End of the function
function autoflip()
{
if (!aflip && !flip && !flipOff && canflip)
{
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 / 2) - ph / 4;
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;
} // end if
if (y < 0 && y < -ph / 2)
{
y = -ph / 2;
} // end if
oy = sy = yy;
ax = pages._xmouse < 0 ? (-pw / 2) : (pw / 2);
var l = ph / 2 - y;
ay = y + (Math.random() * 2 * l - l) / 2;
trace ("autoflip from " + ax + "," + ay);
offs = -pw;
var hit = 0;
if (x < 0 && page > 0)
{
pages.flip.p3._x = 0;
hflip = hcover && gskip ? (gtarget == 0) : (checkCover(page, -1));
if (!(preflip && hflip))
{
if (gskip)
{
setPages(gtarget, gtarget + 1, page, page + 1);
}
else
{
setPages(page - 2, page - 1, page, page + 1);
} // end if
} // end else if
hit = -1;
} // end if
if (x > 0 && page < maxpage)
{
pages.flip.p3._x = pw;
hflip = hcover && gskip ? (gtarget == maxpage) : (checkCover(page, 1));
if (!(preflip && hflip))
{
if (gskip)
{
setPages(page, gtarget, page + 1, gtarget + 1);
}
else
{
setPages(page, page + 2, page + 1, page + 3);
} // end if
} // end else if
hit = 1;
} // end if
if (hflip && preflip)
{
hit = 0;
preflip = false;
return (false);
} // end if
if (hit)
{
anim._visible = false;
flip = true;
flipOff = false;
ox = sx = hit * pw;
pages.flip.setMask(pages.mask);
aadd = hit * (pw / (gflip ? (5) : (10)));
aflip = true;
pages.flip.fmask._x = pw;
if (preflip)
{
oy = sy = pages._ymouse < 0 ? (-ph / 2) : (ph / 2);
} // end if
r0 = Math.sqrt((sy + ph / 2) * (sy + ph / 2) + pw * pw);
r1 = Math.sqrt((ph / 2 - sy) * (ph / 2 - sy) + pw * pw);
pageN = pages.flip.p2.page;
pageO = pages.flip.p3;
oef();
return (true);
} // end if
}
else
{
return (false);
} // end else if
} // End of the function
function getm()
{
if (aflip && !preflip)
{
x = ax;
y = ay;
}
else
{
x = pages._xmouse;
y = pages._ymouse;
} // end else if
} // End of the function
function gotoPage(i, skip)
{
var _loc3 = i;
_loc3 = getPN(_loc3);
gskip = skip == undefined ? (false) : (skip);
if (_loc3 < 0)
{
return (false);
} // end if
var _loc2 = int(page / 2);
var _loc1 = int(_loc3 / 2);
if (_loc2 != _loc1 && canflip && !gflip)
{
if (_loc2 < _loc1)
{
gdir = 1;
gpage = _loc1 - _loc2 - 1;
}
else
{
gdir = -1;
gpage = _loc2 - _loc1 - 1;
} // end else if
gflip = true;
if (gskip)
{
(gtarget = _loc1 * 2, gpage = 0);
} // end if
autoflip();
}
else
{
gskip = false;
} // end else if
return;
} // End of the function
function getPN(i)
{
var _loc1 = i;
var _loc2 = false;
for (j = 1; j <= maxpage; j++)
{
if (_loc1 == pageNumber[j])
{
_loc1 = j;
_loc2 = true;
break;
} // end if
} // end of for
if (_loc2)
{
return (_loc1);
}
else
{
return (-1);
} // end else if
} // End of the function
function removePage(i)
{
var _loc1 = i;
trace ("remove page " + _loc1);
_loc1 = Math.floor((_loc1 - 1) / 2) * 2 + 1;
removedPages.push(pageNumber[_loc1], pageNumber[_loc1 + 1]);
for (j = _loc1 + 2; j <= maxPage + 1; j++)
{
pageOrder[j - 2] = pageOrder[j];
pageCanTear[j - 2] = pageCanTear[j];
pageNumber[j - 2] = pageNumber[j];
} // end of for
trace ("removed pages " + _loc1 + "," + (_loc1 + 1));
trace (removedPages.join(", "));
maxPage = maxPage - 2;
} // End of the function
pw = 342;
ph = 502;
addPage("start");
addPage("page1");
addPage("page2");
addPage("page3");
addPage("page4");
addPage("page5");
addPage("page6");
addPage("page7");
addPage("page8");
addPage("page9");
addPage("page16");
addPage("end");
page = 0;
hcover = false;
clickarea = 35;
afa = 56;
gs = 2;
ps = 5;
es = 3;
canflip = true;
_global.mcnt = 0;
gpage = 0;
gflip = false;
gdir = 0;
gskip = false;
gtarget = 0;
aflip = false;
flip = false;
flipOff = false;
flipOK = false;
hflip = false;
rotz = -30;
preflip = false;
ctear = false;
tear = false;
teard = 0;
tlimit = 80;
removedPages = new Array();
(mpx = 0, mpy = 0);
sx = sy = 0;
x = 0;
y = 0;
ax = 0;
ay = 0;
acnt = 0;
aadd = 0;
aamp = 0;
AM = 1.745329E-002;
mousecontroll = new Object();
mousecontroll.onMouseDown = function ()
{
if (flip && !aflip)
{
flipOK = false;
if (sx < 0 && pages._xmouse > 0)
{
flipOK = true;
} // end if
if (sx > 0 && pages._xmouse < 0)
{
flipOK = true;
} // end if
flipOff = true;
flip = false;
return;
} // end if
if ((flipOff || aflip || !canflip) && !preflip)
{
trace ("donothing");
return;
} // end if
var oox = ox;
var ooy = oy;
var _loc3 = sx;
var _loc2 = sy;
var _loc1 = hittest();
if (_loc1)
{
anim._visible = false;
flip = true;
flipOff = false;
tear = false;
ox = sx = _loc1 * pw;
if (preflip)
{
aflip = preflip = false;
(ox = oox, oy = ooy, sx = _loc3, sy = _loc2);
} // end if
pages.flip.setMask(pages.mask);
(mpx = pages._xmouse, mpy = pages._ymouse);
} // end if
};
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;
} // end if
if (sx > 0 && pages._xmouse < 0)
{
flipOK = true;
} // end if
flipOff = true;
flip = false;
} // end if
} // end else if
};