Foros del Web » Creando para Internet » Flash y Actionscript »

Controlar linea de tiempo compleja

Estas en el tema de Controlar linea de tiempo compleja en el foro de Flash y Actionscript en Foros del Web. Hola amigos, lamentablemente mi problema es algo dificil de explicar, pero creo que la solución podría ir de la mano con un buen script. Estoy ...
  #1 (permalink)  
Antiguo 18/12/2005, 12:26
 
Fecha de Ingreso: junio-2005
Mensajes: 38
Antigüedad: 12 años, 6 meses
Puntos: 0
Controlar linea de tiempo compleja

Hola amigos, lamentablemente mi problema es algo dificil de explicar, pero creo que la solución podría ir de la mano con un buen script.

Estoy desarrollando un sitio web con una navegación basada en 5 botones, los cuales controlan la línea de tiempo de un MC que contiene un video de 150 frames que muestra cada 30 frames una perspectiva distinta de un edificio. De este modo tenemos 5 perspectivas que corresponden a las 5 secciones.

¿Dónde empiezan los problemas? El video debe verse totalmente fluido al pasar de sección en sección, de modo tal que si estoy en la sección "inicio" y deseo pasar a la sección "contacto" exista la misma continuidad que si paso desde "inicio" a la sección "documentos", por ejemplo.

Para facilitar esto establecí una perspectiva común para mezclar todas las secciones. Esto lo detallo en la siguiente imagen.

Video AVI de 150 frames:


Aquí les muestro el swf sin ninguna acción, donde el video corre eternamente.
http://www.proliga.cl/real/vizar/VizarMX2004.swf

Además para los buenos samaritanos les dejo el FLA, en la versión MX2004 (http://www.proliga.cl/real/vizar/VizarMX2004.fla) y 8 (http://www.proliga.cl/real/vizar/Vizar8.fla). Con los escasos conocimientos de Action Script que poseo puedo inferir que la solución va por el uso de comandos "if".

Cualquier idea, solución, ejemplo con cuadrados y corculos, links a tutoriales, etc. serán bienvenidos y agradecidos.

Saludos y de antemano gracias por el tiempo
  #2 (permalink)  
Antiguo 18/12/2005, 15:19
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 12 años, 1 mes
Puntos: 1
Si ese video tiene 150 frames y hay 5 perspectivas diferentes, entonces ¿se supone que para ir de la perspectiva comun a la perspectiva seccion se tardan 15 frames y para volver de la perspectiva seccion a la perspectiva comun se tarda otros 15 frames no? Es decir tenemos 10 trozos de video distintos. 5 de ida (a las perspectivas seccion) y 5 de vuelta (a la perspectiva comun).
Código:
(150)...| PC5/PC1 (1) |---->| PS1 (15) |---->| PC1/PC2 (30) |---->| PS2 (45) |---->| PC2/PC3 (60) |---->| PS3 (75) |---->| PC3/PC4 (90) |---->| PS4 (105) |---->| PC4/PC5 (120) |---->| PS5 (135) |---->|   PC5/PC1 |...(150)
Nota: PC = perspectiva comun, PS = perspectiva seccion, (15) = frame 15, |---->| = trozo de video.

Aclarado esto es muy facil la navegacion Simplemente lo que tienes que hacer es colocar
Código:
stop();
cada 30 frames (poner stop(); en los frames de las secciones marcadas en rojo). O sea podnrias stop(); en los frames: 15, 45, 75, 105 y 135. En cada boton podrias colocar el codigo siguiente:
Imaginemos que estamos en la perspectiva seccion 1 (PS1) ya que hemos abierto la pagina y queremos ir a la perspectiva seccion 5 (PS5). El codigo del boton para ir a la seccion 5 seria:
on(release){
gotoAndPlay(121);
}
Ya que para enlazar de PC a PS tenemos que ir de PC a PC y luego a PS...
En todo caso, para no tener que poner todas las posibilidades tendrias que generalizar los casos. Aqui van los codigos de cada uno de los botones:

Código:
boton1.onPress = function() {
	play();
	onEnterFrame = function () {
		if ((_currentframe%30) == 0) {
			gotoAndPlay(1);
			delete onEnterFrame;
		}
	};
};
Código:
boton2.onPress = function() {
	play();
	onEnterFrame = function () {
		if ((_currentframe%30) == 0) {
			gotoAndPlay(30);
			delete onEnterFrame;
		}
	};
};
Código:
boton3.onPress = function() {
	play();
	onEnterFrame = function () {
		if ((_currentframe%30) == 0) {
			gotoAndPlay(60);
			delete onEnterFrame;
		}
	};
};
Código:
boton4.onPress = function() {
	play();
	onEnterFrame = function () {
		if ((_currentframe%30) == 0) {
			gotoAndPlay(90);
			delete onEnterFrame;
		}
	};
};
Código:
boton5.onPress = function() {
	play();
	onEnterFrame = function () {
		if ((_currentframe%30) == 0) {
			gotoAndPlay(120);
			delete onEnterFrame;
		}
	};
};
Donde boton1 es la instancia del boton que te llevara a la seccion1, etc...
Este codigo lo colocas en el primer frame de tu linia de tiempo, junto con la pelicula de 150 frames y los botones. (tienes que alargar la capa donde pongas este codigo los 150 frames de la peli)
Lo acabo de construir ahora o sea que no se si eso te ira bien

Venga saludos y adelante con el proyecto que te esta qedando muy bien

ArgoN

Última edición por -=ArgoN=-; 18/12/2005 a las 16:42
  #3 (permalink)  
Antiguo 18/12/2005, 16:13
 
Fecha de Ingreso: junio-2005
Mensajes: 38
Antigüedad: 12 años, 6 meses
Puntos: 0
Una respuesta rápida, bien explicada y para mi sorpresa justo y lo que yo necesitaba. Pocas veces he estado tan agradecido y realmente me ha sorprendido la capacidad que demuestras de entender el problema y de darle una respuesta tan elaborada.

Muy agradecido por tu tiempo y muchas gracias por el comentario del sitio .

Les dejo el archivo con el resultado de -=ArgoN=-. Gracias!

http://www.proliga.cl/real/vizar/Vizar2.swf
  #4 (permalink)  
Antiguo 18/12/2005, 16:54
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 12 años, 1 mes
Puntos: 1
Me alegro de veras de haberte solucionado tu problema a la primera Pero quisiera que me mandaras el .fla o lo actualizaras al link que has puesto antes para comprobar un par de cosas de funcionamiento
Feliz navidad y adelante con tu proyecto ! Ya me lo mostraras cuando este acabado

ArgoN
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:42.