Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2005, 11:33
sheker2
 
Fecha de Ingreso: mayo-2005
Ubicación: Ibiza
Mensajes: 19
Antigüedad: 19 años
Puntos: 0
Complicado pero a ver si es posible

Saludos, estoy intentando crear un escenario que a traves de un slide, puedas desplazarte a un lado y a otro.
Es una galeria con personajes, pero me gustaria que cada personaje se moviese a una velocidad distinta, para que cree el efecto de profundidad.
Aqui teneis un ejemplo para que me entendais mejor.
Se que es complicado, pero he intentado cargar en diferentes capas distintos personajes con la misma programación, pero es un caos.
Veries que primero carga los cuadros y luego dos capas mas con personajes..cuando los carga se vuelve loca la animación..como es normal y solo va bien la primera.

El ejemploe esta aqui:

http://www.pixelimperium.com/prueba


Y aqui os pongo el escript utilizado:

Si hay alguien que tenga una solución similar para crear ese efecto se lo agradecería mucho.

En esta web en el menu principal hay algo parecido, se que esto es pedir mucho ya que es muy bueno, pero a ver que se podría hacer:

http://www.leoburnett.ca

EN TODAS LAS PELICULAS HAY EN EL PRIMER FRAME:

acceleration = .10;
stageWidth = 1024;
// DO NOT CHANGE ANYTHING BUT THE ABOVE TWO VARIABLES UNLESS YOU KNOW WHAT YOU ARE DOING!
sliderWidth = getProperty("/slider", _width);
maxSpeed = ((stageWidth/2)/20)*(acceleration*((stageWidth/2)/20));
trace(maxSpeed);
speed = 0;
setProperty("/slider", _visible, false);
duplicateMovieClip("/slider", "slider1", 1);
duplicateMovieClip("/slider", "slider2", 2);
duplicateMovieClip("/slider", "slider3", 3);
startDrag("/draggy", true);



Y LUEGO UN CLIP DONDE EN SU INTERIOR HAY EN EL PRIMER FRAME:

distance = getProperty("/draggy", _x)-(/:stageWidth/2);
if (Number(distance)<0) {
direction = 1;
} else {
direction = -1;
}
speed = (distance/20)*(/:acceleration*(distance/20))*direction;
setProperty("/slider1", _x, Number(getProperty("/slider1", _x))+Number(speed));
setProperty("/slider2", _x, Number(getProperty("/slider1", _x))+Number(/:sliderWidth));
setProperty("/slider3", _x, Number(getProperty("/slider2", _x))+Number(/:sliderWidth));
if (Number(getProperty("/slider3", _x))>Number((Number(/:stageWidth)+Number(/:maxSpeed)))) {
setProperty("/slider3", _name, "temp");
setProperty("/slider2", _name, "slider3");
setProperty("/slider1", _name, "slider2");
setProperty("/temp", _name, "slider1");
setProperty("/slider1", _x, getProperty("/slider2", _x)-/:sliderWidth);
} else {
if (Number(getProperty("/slider2", _x))<Number((-/:maxSpeed))) {
setProperty("/slider1", _name, "temp");
setProperty("/slider2", _name, "slider1");
setProperty("/slider3", _name, "slider2");
setProperty("/temp", _name, "slider3");
setProperty("/slider3", _x, Number(getProperty("/slider2", _x))+Number(/:sliderWidth));
}
}





Y EN EL SEGUNDO:


distance = getProperty("/draggy", _x)-(/:stageWidth/2);
if (Number(distance)<0) {
direction = 1;
} else {
direction = -1;
}
speed = (distance/20)*(/:acceleration*(distance/20))*direction;
setProperty("/slider1", _x, Number(getProperty("/slider1", _x))+Number(speed));
setProperty("/slider2", _x, Number(getProperty("/slider1", _x))+Number(/:sliderWidth));
setProperty("/slider3", _x, Number(getProperty("/slider2", _x))+Number(/:sliderWidth));
if (Number(getProperty("/slider3", _x))>Number((Number(/:stageWidth)+Number(/:maxSpeed)))) {
setProperty("/slider3", _name, "temp");
setProperty("/slider2", _name, "slider3");
setProperty("/slider1", _name, "slider2");
setProperty("/temp", _name, "slider1");
setProperty("/slider1", _x, getProperty("/slider2", _x)-/:sliderWidth);
} else {
if (Number(getProperty("/slider2", _x))<Number((-/:maxSpeed))) {
setProperty("/slider1", _name, "temp");
setProperty("/slider2", _name, "slider1");
setProperty("/slider3", _name, "slider2");
setProperty("/temp", _name, "slider3");
setProperty("/slider3", _x, Number(getProperty("/slider2", _x))+Number(/:sliderWidth));
}
}


Gracias