Comunidad de diseño web y desarrollo en internet online

problema con precarga dinamica, se duplica.

Citar            
MensajeEscrito el 08 Ene 2009 08:36 pm
hola tengo un problema con este accion....todo anda perfecto, es una precarga que se activa cada vez que se llama a un moviclip externo. Lo que hace es llamar la precarga de la libreria y activarla cuando se llama a un SWF externo.
El principial problema es que cada vez que hago onPress en un boton esta llama al SWF externo y se va cargando. Si en medio de la carga quiero ir a otro SWF cliqueando otro boton (esto pasa mucho cuando las cargas son pesadas y el usuario quiere seguir viendo la pagina) me aparece un precargador en el 0.0 mientras otro carga la pelicula..O sea hay dos cargadores, uno donde deberia estar y otro en el 0.0 de la pelicula (el indeseable). No se bien que hacer, pero tal vez sea un problema de codigo asique..se los dejo para que me ayuden. Gracias y me han salvado de muchas!

Código ActionScript :

var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();


listener.onLoadStart = function(target_mc) {// cuando se comienza a cargar la pelicula...
   _root.attachMovie("precarga", "precarga",_root.getNextHighestDepth())
      _root.precarga._x= 1000/2 //indico las coordenadas del elemento llamado
      _root.precarga._y= 675/2
      _root.precarga._yscale = 150
      _root.precarga._xscale = 150
};


listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {// esto pasa durante el progreso del cargador

   var porcentaje:Number;
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   _root.precarga.gotoAndStop(porcentaje);
   _root.precarga.porcentaje_txt = porcentaje;
   trace(porcentaje);
   
};


listener.onLoadComplete = function(target_mc) {// esto pasa cuando termina el cargador

   _root.precarga._alpha=0
   _root.precarga.removeMovieClip()
   
   
};


precargador_mcl.addListener(listener);// "escucho" al listener


[BOFH]Cuando escribas código AS usa las etiquetas [*as] [*/as] (sin los asteriscos)[/BOFH]
Editado por The Fricky!.

Por charleslingon

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ene 2009 07:36 am
Tu error esta en el evento onLoadStart y en general en la logica, pero con esto debe bastar para que funcione:

Código ActionScript :

listener.onLoadStart = function(target_mc) {// cuando se comienza a cargar la pelicula... 
if( _root.precarga == undefined ) 
{
     _root.attachMovie("precarga", "precarga",_root.getNextHighestDepth()) 
}
else
{
     _root.precarga.gotoAndStop(1); 
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 09 Ene 2009 12:19 pm
Gracias man se soluciono, pero lo que no entiendo es porque estaba mal la logica siempre pense que estabamos pensandolo bien. Pero con este error me descoloco.
Gracias y sos un capo!

Por charleslingon

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ene 2009 07:42 pm
bueno, a lo que me referia era a un error en la logica del funcionamiento, la logia de tu codigo estaba diseñada para una carga, no para multiples cargas, ¿me entiendes? osea, es algo que ya sabias. :P

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 30 Ene 2009 01:54 pm
aaah mira vos...entonces como seria un codigo para cargas multiples...porque...lo que entiendo es que con este codigo no es el indicado, y hay otra forma que desconosco. Que me sirvio me sirvio, pero si hay algo mas ideoneo sera bien recibido.
Gracias!

Por charleslingon

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Ene 2009 06:01 pm
:P ok ok, no te apresures, mira a lo que me refiero es que pensaste el codigo para que se hiciera la primer carga correctamente, osea es un error de logica, porque? porque te falto la logica en la que onLoadStart se presiona 2 o mas veces, eso para mi es un error de logica, mira a las personas a las que les enseño aveces, les digo que hay 2 tipos de errores, los de sintaxis y los de logica, los primeros, te los indica flash, los segundos se derivan de un mal entendimiento del problema y una mala planificacion del futuro inmediato de la aplicacion, en otras palabras, no has creado un codigo que valide sí "precarga" ya existia antes de ser creada, si es asi, no deberia ser creada de nuevo, es un error de logica, porque es logico que onLoadStart, en una "carga multiple" sera ejecutado mas de 1 vez, logica que ahora ya esta arreglada. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 14 Feb 2009 03:01 am

LongeVie escribió:

Tu error esta en el evento onLoadStart y en general en la logica, pero con esto debe bastar para que funcione:

Código ActionScript :

listener.onLoadStart = function(target_mc) {// cuando se comienza a cargar la pelicula... 
if( _root.precarga == undefined ) 
{
     _root.attachMovie("precarga", "precarga",_root.getNextHighestDepth()) 
}
else
{
     _root.precarga.gotoAndStop(1); 
}



mis disculpas, pero como quedaria el script, por que modifico las lineas pero nada, o desaparece la barra o me da el mismo error

Código :

stop();
//media.loadMovie("home.swf");
//DECLARACIÓN DE VARIABLES
var precargador_mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
//Esto escondera el menu del click derecho
Stage.showMenu = false;

//CREADOR DEL LISTENER
//Las funciones de los MovieClips son tres esenciales;
/*    onLoadStart (Ejecutada cuando inicia la precarga)
      onLoadProgress (Ejecutada cada vez que avanza la descarga)
     onLoadComplete (Ejecutada cuando la precarga termina)
*/

//Función onLoadStart, asignada al objeto Listener que luego agregaremos a
//nuestro MovieClipLoader El parametro "target_mc" es una referencia al 
//MovieClip de destino
listener.onLoadStart = function(target_mc) {
   trace("Iniciando");
   //Colocamos la barra de precarga en el escenario con el nombre "barra_mc"
   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   //Ubicamos la barra en la mitad del escenario
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;
   //Y nuestra barra esta lista para moverse en el evento onLoadProgress
};

//Función onLoadProgress, es la función clave, tiene tres parametros
//target_mc, quees igual que el anterior, loadedBytes, que nos dice la 
//cantidad de bytes cargados y totalBytes que nos dice la cantidad total
//de bytes de la pelicula en proceso de descarga
listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   trace("En progreso");
   //Declaramos la variable de calculo de porcentaje
   var porcentaje:Number;
   //Calculamos el porcentaje con las variables que le llegan por parametro a la función
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   //Vamos al frame del porcentaje en nuestra barra de carga
   _root.barra_mc.gotoAndStop(porcentaje);
   //Ahora escondemos el objeto de la precarga y lo frenamos
   target_mc._visible = false;
   target_mc.stop();
};

//Función onLoadComplete
listener.onLoadComplete = function(target_mc) {
   trace("ya");
   //Como ya cargo completo, entonces quitamos la barra
   _root.barra_mc.removeMovieClip();
   //Y mostramos el objeto
   target_mc._visible = true;
   target_mc.play();
};

//ASIGNACIÓN DEL LISTENER AL MOVIECLIPLOADER
//Ahora, todas las funciones que declaramos seran asignadas a
//nuestro MovieClipLoader "precargador_mcl"
precargador_mcl.addListener(listener);

//CODIGO DEL BOTON
//Esta variable nos servira para saltarnos el cache y asi siempre
//ver el efecto de precarga, quitala o dejala en blanco si no
//lo deseas
var nochache:String;
nocache = "?nocaching="+random(65000);
precargador_mcl.loadClip("home.swf"+nocache, caja_mc);
//En el evento onRelease del boton . . . 
cargar_btn.onPress = function() {
   nocache = "?nocaching="+random(65000);
   //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo
   //"pelicula.swf" y que lo muestre en "carga_mc" :D
   precargador_mcl.loadClip("home.swf"+nocache, caja_mc);
};
b1.onPress = function() {
   nocache = "?nocaching="+random(65000);
   //Aqui le decimos a nuestro MovieClipLoader que cargue el archivo
   //"pelicula.swf" y que lo muestre en "carga_mc" :D
   precargador_mcl.loadClip("servicios.swf"+nocache, caja_mc);
};
;

Por Impalss

9 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Feb 2009 01:07 pm

Código ActionScript :

//Función onLoadStart, asignada al objeto Listener que luego agregaremos a
//nuestro MovieClipLoader El parametro "target_mc" es una referencia al 
//MovieClip de destino
listener.onLoadStart = function(target_mc) {
   trace("Iniciando");
   if( _root.barra_mc == undefined ) 
   {
        _root.attachMovie("barra", "barra_mc",_root.getNextHighestDepth()) 
   }
   else
   {
        _root.barra_mc.gotoAndStop(1); 
   }
   //Colocamos la barra de precarga en el escenario con el nombre "barra_mc"
   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   //Ubicamos la barra en la mitad del escenario
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;
   //Y nuestra barra esta lista para moverse en el evento onLoadProgress
};


La unica diferencia es que ahora se llama barra_mc. Suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 14 Feb 2009 02:21 pm
:P se me paso borrar la linea del attachMovie.

Código ActionScript :

//Función onLoadStart, asignada al objeto Listener que luego agregaremos a 
//nuestro MovieClipLoader El parametro "target_mc" es una referencia al  
//MovieClip de destino 
listener.onLoadStart = function(target_mc) { 
   trace("Iniciando"); 
   if( _root.barra_mc == undefined )  
   { 
        //Colocamos la barra de precarga en el escenario con el nombre "barra_mc" 
        _root.attachMovie("barra", "barra_mc",_root.getNextHighestDepth())  
   } 
   else 
   { 
        _root.barra_mc.gotoAndStop(1);  
   }    
   //Ubicamos la barra en la mitad del escenario 
   _root.barra_mc._y = Stage.height/2; 
   _root.barra_mc._x = Stage.width/2; 
   //Y nuestra barra esta lista para moverse en el evento onLoadProgress 
}; 

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 15 Feb 2009 02:02 am
muchas grcias LongeVie, lo pruebo altiro!!!!!!!!!!!!!

Por Impalss

9 de clabLevel



 

firefox

 

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