Hola gente tengo este codigo en un archivo del Mx 2004 y funciona pero lo quiero hacer en el Mx y no me dibuja la linea,
¿que es lo que marca la diferencia?
// Creamos las líneas de los puntos de ancla
_root.createEmptyMovieClip("linIni", 33333);
//Ponemos la curva inicial
var cp:Array = new Array(p0, p1, p2, p3);
n = 0;
numberOfPoints = 20;
t = 0;
dt = 1/(numberOfPoints-1);
// Creamos la curva
for (i=0; i<numberOfPoints; i++) {
t += dt;
pointOnCubicBezier(cp, t);
}
// Eventos
for (i=0; i<4; i++) {
_root["p"+i].onPress = function() {
startDrag(this, true);
pulsado = true;
};
_root["p"+i].onRelease = function() {
stopDrag();
pulsado = false;
};
}
function pointOnCubicBezier(cp, t) {
// Calcular los coeficientes polinomiales (o algo así XD)
cx = 3*(cp[1]._x-cp[0]._x);
bx = 3*(cp[2]._x-cp[1]._x)-cx;
ax = cp[3]._x-cp[0]._x-cx-bx;
cy = 3*(cp[1]._y-cp[0]._y);
by = 3*(cp[2]._y-cp[1]._y)-cy;
ay = cp[3]._y-cp[0]._y-cy-by;
// Calcular el punto de curva para el parámetro con valor t
tSquared = t*t;
tCubed = tSquared*t;
attachMovie("puntos", "puntos"+n, n);
_root["puntos"+n]._x = (ax*tCubed)+(bx*tSquared)+(cx*t)+cp[0]._x;
_root["puntos"+n]._y = (ay*tCubed)+(by*tSquared)+(cy*t)+cp[0]._y;
n++;
}
// Cuando movemos el ratón actualizamos la línea
alMover = new Object();
alMover.onMouseMove = function() {
if (pulsado == true) {
// Declaramos variables
// var cp:Array = new Array(p0, p1, p2, p3);
n = 0;
numberOfPoints = 20;
t = 0;
dt = 1/(numberOfPoints-1);
// Creamos la curva
for (i=0; i<numberOfPoints; i++) {
t += dt;
pointOnCubicBezier(cp, t);
}
}
}
Mouse.addListener(alMover);
Gracias