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

Reproducción de peliculas swf en un orden determinado

Estas en el tema de Reproducción de peliculas swf en un orden determinado en el foro de Flash y Actionscript en Foros del Web. Hola buenas tardes Estoy haciendo un ejercicio que consiste en lo siguiente y realmente no se si voy por buen camio. Agradecería mucho vuestros consejos. ...
  #1 (permalink)  
Antiguo 12/01/2010, 13:49
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 10 meses
Puntos: 0
Reproducción de peliculas swf en un orden determinado

Hola buenas tardes
Estoy haciendo un ejercicio que consiste en lo siguiente y realmente no se si voy por buen camio. Agradecería mucho vuestros consejos.

La película "principal.swf" es la que corre en el nivel 0. Dentro de ella pretendo colocar 7 cuadros de introducción de texto. Junto a cada cuadro de texto se encuentran los títulos de 7 peliculas swf. Por ejemplo, peli1.swf, peli2.swf, peli3.swf, peli4.swf, peli5.swf, peli6.swf y peli7.swf. Ademas de esto hay un simple botón de empezar proyección. La idea es que por ejemplo si introduzco el valor 1 en el cuadro que corresponde a peli2.swf, 2 en el cuadro de peli4.swf y 3 en el cuadro de peli7.swf que al pulsar el botón empezar proyección abra la película que tenía asignado el número 1, al acabar de ejecutarse que se abriera la pelicula que tenía asignado el 2 y finalmente se abriera la que tiene el 3. Conseguir establecer un orden de proyección de las películas en función del número que les asigne.


de momento lo que estoy haciendo va por aquí. No se si es la mejor solución.
A cada cuadro de texto le he dado la siguiente propiedad.

Cuadro de texto peli1.swf tiene asignado Var: veri_1
Cuadro de texto peli2.swf tiene asignado Var: veri_2
Cuadro de texto peli3.swf tiene asignado Var: veri_3
Cuadro de texto peli1.swf tiene asignado Var: veri_4
etc

El boton de empezar lleva lo siguiente:

on (press) {
if (veri_1 == primero)
loadMovie("peli1.swf",2);
else
if (veri_2 == primero)
loadMovie("peli2.swf",2);
else
if (veri_3 == primero)
loadMovie("peli3.swf",2);
else
if (veri_4 == primero)
loadMovie("peli4.swf",2);
else
if (veri_5 == primero)
loadMovie("posturas_forzadas/posturas_forzadas.swf",2);

}


etc

Cuando introduzco 1 en alguno de esos cuadros al pulsar el boton de empezar proyección me abre la película en cuestión. Pero no consigo pasar de ahi. Una vez terminada la primera necesito que se abra la siguiente y despues la siguiente.

Gracias
Guille
  #2 (permalink)  
Antiguo 12/01/2010, 19:29
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: Reproducción de peliculas swf en un orden determinado

Yo lo pensaría de esta manera:

Creas un Array, en el que almacenas estos números, no importa el orden. Es decir, puede ser que en el array se almacene en este orden los números:

Código actionScript:
Ver original
  1. var orden:Array=new Array(peli1.text,peli2.text,peli3.text);
(etcétera).

Creas una variable que empiece en 1:

Código actionScript:
Ver original
  1. var peliActual:int=1;

Y que compruebe cuál es la número 1 al presionar el botón:

Código actionScript:
Ver original
  1. function reproducir(){
  2. for (var i=0; i<orden.length;i++){
  3. if(Number(orden[i])==1){
  4. //Pones a reproducrir la película
  5. }
  6. }
  7. i++;
  8. }

En cualquier momento (la idea es al finalizar la reproducción) puede presionar otra vez el botón, y le va a reproducir la segunda peli...

Espero te sirva. Así me parece más sencillo, con una función que se ejecute al presionar el botón... El código como lo estas haciendo seguro funciona, pero va a ser larguísimo. No hay necesidad.
Saludos.
Eskombro
__________________
Blog AS3 Ideas -> Programación en ActionScript 3
________
Esk Games | Free online flash games
  #3 (permalink)  
Antiguo 13/01/2010, 07:14
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Reproducción de peliculas swf en un orden determinado

Hola Eskombro muchas gracias por esta respuesta. La verdad es que mis conocimientos de actionScript son bastante escasos.

Cuando te refieres a lo de crear un array realmente no se donde poner ese código para crear el array en función de los numeros que se introduzcan en cada uno de los cuadros de texto. Debe crearse el array automaticamente cuando yo decido introducir por ejemplo 1 en el cuadro tres y 2 en el cuadro 6 para que el array sea parecido a esto?

var orden:Array=new Array(peli3.text,peli6.tex);

en la función que planteas que comprueba cual es el número 1 al pulsar el botón:


function reproducir(){

for (var i=0; i<orden.length;i++){

if(Number(orden[i])==1){

//Pones a reproducrir la película

}

}

i++;

}

en la línea donde pones el comentario lo cierto es que no se que código es el que debería colocar para que empezara con la ejecución de la peli3.swf en este caso o de la que se hubiera seleccionado como primera.

Espero no robarte mucho tiempo y agradezco mucho tu ayuda.

Saludos

Guille
  #4 (permalink)  
Antiguo 13/01/2010, 13:01
Avatar de Eskombro  
Fecha de Ingreso: septiembre-2009
Ubicación: Colombia
Mensajes: 437
Antigüedad: 15 años, 2 meses
Puntos: 22
Respuesta: Reproducción de peliculas swf en un orden determinado

Lo que se me ocurría era que en el Array almacenaras los valores de los campos de texto en un orden, sin importar lo que el usuario había escrito en cada uno. Supongamos que tienes los campos de texto, y me imagino que habrá un botón como 'Iniciar Reproducción' o algo así. En ese botón, al ser presionado debe crear el array. el orden del array podría ser simplemente el orden de los campos de texto, del primero al último. Entonces vas a saber qué escribió en cada uno, y así sabrás cual reproducir.

la función que te dije que llamaba 'reproducir' lo que hace es buscar en qué posición se encuentra el número 1. ¿Por qué? pues porque si el numero 1 está en la segunda posición, sabes que la primer peli a reproducir es la Número 2. Inmediatamente el valor pasa a 2. Cuando se presione otra vez el botón va a ir a buscar en qué posición está el número 2. Si está de ultima, sabes que debes reproducir la ultima peli. Y así continúia hasta que complete el número de valores dentro del array.

Entonces, en la línea principal, en el primer fotograma, pones una variable peliActual y la función así:

Código actionScript:
Ver original
  1. var peliActual:int=1;
  2. function reproducir(){
  3. for (var i=0; i<orden.length;i++){
  4. if(Number(orden[i])==peliActual){
  5. //Pones a reproducrir la película
  6. }
  7. i++;
  8. }
  9. peliActual++;
  10. }

En un botón 'Iniciar reproducción' o lo que sea, pones que cree el array, y que reproduzca la primera peli llamando a la función reproducir...

Código actionScript:
Ver original
  1. on(press){
  2. var orden:Array=new Array(peli1.text,peli2.text,peli3.text); //Cuantos campos haya
  3. reproducir();
  4. }

Y cuando esté viendo una pelicula, puedes usar otro botón, que sea como 'Reproducir la siguiente peli' o algo así, que lo único que va a hacer es llamar a la función reproducir, pero ahora la función buscará el 2 y la reproducirá..

Código actionScript:
Ver original
  1. on(press){
  2. reproducir();
  3. }

Con eso estaría funcionando, solo habría que plir algunos detalles....

Lo de cómo poner a reproducir la peli, eso depende de cómo lo estés haciendo. No sé que codigo usar, porque no se, por ejemplo, si son pleis externas al archivo fla, o están importadas en biblioteca. Habría que saber eso..

Bueno, espero esté más claro y te sirva, cualquier cosa escribes.
Saludos
Eskombro
__________________
Blog AS3 Ideas -> Programación en ActionScript 3
________
Esk Games | Free online flash games
  #5 (permalink)  
Antiguo 13/01/2010, 13:10
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Reproducción de peliculas swf en un orden determinado

Hola y muchas gracias de nuevo.

Las películas son externas. Esto funcionaria en una pelicula AS2

Saludos
Guille

Etiquetas: determinado, orden, peliculas, swf
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 23:07.