Hola a todos, soy diseñadora y la verdad no sé mucho de Action Script. Necesito de su ayuda para hacer un flipbook, ya tengo un machote de un flipbook, pero quiero saber cómo agregar más páginas. En el machote que tengo sólo se pueden ver 4 páginas y quiero agregar 10 más.
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
};