Comunidad de diseño web y desarrollo en internet online

Saber cuando un .swf se ha terminado

Citar            
MensajeEscrito el 05 Ene 2007 05:30 pm
Hola foreros, mirad tengo una duda, soy torpecito aunque lo intento :D

Mirad, mi intención es crear un banner que cargue .swf de forma aleatoria. El caso es que he seguido un ejemplo que había por ahí, pero de música MP3, lo que he hecho es cambiar la extensión para que sea SWF y guay. Ahora bien, en el código original de la música, había una función que se activaba en el evento OnSoundcomplete, mi duda es para el caso de la película, cuál es el equivalente que existe?


Este es el código:

var MiArray = new Array();
var playMusic = new Sound();
var ValorIni = 0;
/* Para mayor simplicidad es aconsejable que el primer archivo de la serie, tenga como numeral el 0.
La variable TextoSound es para el texto del nombre por ejemplo: "MySound" esto sería lo que correspondería
al primer archivo:"MySound0.mp3", de esta manera solo tienes que modificar esta variable para adaptarla
a tus archivos.
La variable ArchivoExtension es obvio esta variable es para especificar la extensión de los archivos, en este
caso mp3.
La variable NumMovies es para el numero total de archivos que deseas que hagan el ciclo por ejemplo:
" MySound0.mp3, M0Sound1.mp3, MySound2.mp3, MySound3.mp3= 4 archivos. Modifica este valor según
las imágenes de que dispongas */
var TextoSound = "banner00";
var ArchivoExtension = ".swf";
var NumMovies = 2;
//-----------------------------------------------------------------------------------------------------------
/* Esta función sólo nos devolverá un valor comprendido en la variable NumMovies, este se comprobara para ver
si ya existe en un Array creado en tiempo de ejecución. */
function Busqueda() {
var Controlde = true;
// while.. si ya se ha emitido el numero, repite la búsqueda del numero al azar
while (Controlde == true) {
Controlde = false;
Minor = random(NumMovies);
//for.. recorre todos las variables del Array, para buscar si ya ha sido emitido el numero actual
for (x=0; x<(NumMovies); x++) {
if (MiArray[x] == Minor) {
Controlde = true;
break;
}
}
}
/* Una vez pasado el número aleatorio y comprobado que no existe en ningún elemento del Array crea un
nuevo elemento del Array e introduce el nuevo valor. A continuación subimos el valor de la
variable, para el siguiente elemento */
MiArray[ValorIni] = Minor;
ValorIni++;
return Minor;
/*return.. se utiliza para que al solicitar una función nos devuelva el valor de la variable que se
indica. */
}
//-----------------------------------------------------------------------------------------------------------
function activarsonido() {
/*En esta variable solicita mediante la función, la entrada de un numero válido. */
MiNum = Busqueda();
var musica = TextoSound+MiNum+ArchivoExtension;
imagenes_mc.loadMovie(musica);
/* el evento ...onSoundComplete activa la función una vez se ha acabado de reproducir el sonido, y el
condicional if.. cierra el ciclo cuando se ha acabado de emitir todos los archivos de sonido */
imagenes_mc.on = function() {
if (ValorIni<(NumMovies)) {
activarsonido();
}
};
}
//-----------------------------------------------------------------------------------------------------------
/*Este evento inica la reproducción, yo lo he puesto al cargar la línea principal de tiempo , pero se puede
modificar y colocar en cualquier otro evento, por ejemplo en un botón "on(release)..." */
//_root.onLoad = function() {
activarsonido();
//};
//-----------------------------------------------------------------------------------By Silvestre

Por intentalo

0 de clabLevel



 

msie
Citar            
MensajeEscrito el 05 Ene 2007 07:37 pm
HOla

La idea es carga swf y saber cuando termina?

mmm esta medio complicado eso... porque a lo sumo podes saber si llego al ultimo frame de la pelicula, pero eso no te asegura q ahi se termino, porque puede tener movieclip q sigan con la animacion...

Lo mejor es hacer en el banner q cuando termine de reproducirse modifique una variable del _root, o ejecute directamente la funcion q cambia de banner. Veamos

En la linea de tiempo principal del swf q cargara los banners tenes esta funcion

Código :

function CambiarBanner():Void{
    var num:Number = random(10); //suponiendo q tenes 10 banners
    _root.cargador.loadMovie("banners/banner_"+(num+1)+".sewf");
}
//cargamos el primer banner
CambiarBanner();


Ahora en cada uno de los banners, al terminar, ponemos esta linea

Código :

_root.CambiarBanner()


Con eso vas a llamar a la funcion de la linea de tiempo principal y te va a cambiar de banner.

Supongo q eso es lo q necesitas no? cualquier cosa chifla

saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.