Comunidad de diseño web y desarrollo en internet online

Evento onRelease para cargar un nivel

Citar            
MensajeEscrito el 11 Jun 2009 12:34 am
Hola. Gracias por entrar.

Necesito ayuda con el siguiente script. Un boton llama a dos niveles de movies. Una cubierta y el contenido. Tiene un condicional el cual dice que si el nivel 5 esta cargado, solo cargar el nivel 6. El tema es que como el contenido es mas liviano, cuando el evento de boton llama a la cubierta (nivel 5) y al contenido (nivel 6) se carga primero el nivel 6. No puedo llamarlo desde el mc (movieclip) del nivel 5 por que es el mismo mc que utilizo para todos los botones.
El script que tengo es el siguiente:

Código ActionScript :

on (release) {
   unloadMovieNum(7); // contenido 1
   unloadMovie(8);// [i]contenido2
   if (_level5._width>0) { // si el nivel 5 tiene un valor mayor a cero
       loadMovieNum("galeria.swf", 6); // [i]solo cargar el nivel 6
   } else { 
           // sino cargar ambos
       loadMovieNum("submenu.swf", 5);
       loadMovieNum("galeria.swf", 6); 
       }
}

¿Alguien me podria decir como hacer para que en el 'else' el nivel 6 se cargue una vez que el nivel 5 se haya cargado?

Saludos! :D

Por flavexxx

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Jun 2009 11:00 am
Tienes que usar un preload, consulta en la seccion de tutoriales y tips preload o precarga

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 02:00 pm
Bueno de eso va el tutorial, en vez de cargar en un nivel, lo tienes que cargar en un MovieClip(Loader), lo que te permite mucho mayor control sobre los elementos.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 03:27 pm
No está mal la idea, pero si la carga se retrasa se te puede colgar la peli.
Sin duda lo podría escribir, pero además de ser yo muy vago, estoy seguro que tu puedes.
PISTA: ahí va un preloader que no hace nada, solo trace ....

Código ActionScript :

function precarga(quien, donde){
  donde.loadMovie(quien)
  this.onEnterFrame = function(){
   if(quien.getBytesLoaded<quien.getBytesTotal() && quien.getBytesTotal()>4) trace("Cargando")
   } else {
     trace("termine de cargar")
     delete this.onEnterFrame
   }
}
//LLamo a precarga
precarga("submenu.swf", _level5)


No solo te sirve para un nivel, sino que podrías usarlo para cargar en un MovieClip

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Jun 2009 11:29 pm
Buenas Noches

Bueno. Probe el while y se me cuelga la pelicula. Alguna otra alternativa viable que me permita seguir manejando niveles y llegar a cargar una pelicula antes que la otra?

on (release) {
unloadMovieNum(7); // contenido 1
unloadMovie(8);// contenido2
if (_level5._width>0) { // si el nivel 5 tiene un valor mayor a cero
loadMovieNum("galeria.swf", 6); // [i]solo cargar el nivel 6
} else { // sino cargar ambos
loadMovieNum("submenu.swf", 5);
while(_level5._width<=0){} // [i]espera a que cargue el nivel 5 antes de cargar el nivel 6, cuelga el clip.

loadMovieNum("galeria.swf", 6);
}
}
}

Gracias!

Por flavexxx

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2009 12:23 am
Hola otra vez...

Para ser mas especifico, lo que necesito implementar es lo siguiente:

Código ActionScript :

[b]on (release) {[/b]
[b]var porcentaje:Number[/b]
[b]porcentaje = Math.round((cargado/total)*100); [/b]// hipoteticas variables para el if final.
[b]if (_level5._width>0) {[/b] // si el nivel 5 tiene un valor mayor a cero
[b]loadMovieNum("galeria.swf", 6); [/b]// [i]solo cargar el nivel 6, funciona de maravilla
[b]} else {[/b] // aca viene el update a realizar
[b]loadMovieNum("submenu.swf", 5);[/b] // hasta aca todo bien
//una vez que se haya cargado el nivel 5, cargar el nivel 6... Esto lo podria hacer declarando variables del comienzo?
if (_level5.porcentaje == 100) {
loadMovieNum("galeria.swf", 6);
}
}

Cuestion que de la manera que esta expresado arriba, directamente no me carga el nivel 6.

HELP!

Gracias
.

Por flavexxx

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jun 2009 11:13 am
Los while usualmente dan timeout porque el chequeo se debe hacer en un onEnterFrame, no en un solo frame. Dado que lleva un tiempo cargar la peli, tampoco puedes hacer un if inmediatamente pues daría cero. En síntesis, debes usar un onEnterFrame o hay también variantes con setInterval (creo que uno de los tutos de precarga que hay en este sitio se basa en eso) El ejemplo ya lo tienes.
Por cierto, ponle tag AS a tu código: http://foros.cristalab.com/mi-codigo-legible-t55926/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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