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

Ayuda preload?

Estas en el tema de Ayuda preload? en el foro de Flash y Actionscript en Foros del Web. estoy haciendo un preload con una barra que se va llenando y a la vez sale el % cargado aqui esta la aniamción http://demo.andamio.com.ve/clientes/lyquix/prueba4.htm el ...
  #1 (permalink)  
Antiguo 04/04/2008, 13:26
 
Fecha de Ingreso: marzo-2005
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 0
De acuerdo Ayuda preload?

estoy haciendo un preload con una barra que se va llenando y a la vez sale el % cargado aqui esta la aniamción http://demo.andamio.com.ve/clientes/lyquix/prueba4.htm el problema es que en el preload la barra se reinicia al llegar al final, y lo que quiero es que al llegar al 100% la barra este completamente llena, sin que se reinicie.

este es el codigo que estoy usando no se que me falta agregar para que funcione correctamente.? Gracias

/* Declaro la función de precarga "cargando", esta función se ejecutara
todo el tiempo hasta que haya cargado totalmente la pelicula */
function cargando() {
// Declaración de variables
var total, cargados, porcentaje;
// A la variable "total" se le asigna el tamaño de la pelicula en bytes
total = _root.getBytesTotal();
// A la variable "cargados" se le asignan el total de bytes hasta el
//momento descargados de la web
cargados = _root.getBytesLoaded();
//Por medio de una regla de tres obtiene el porcentaje cargado y redondea el valor con la función
//"Math.floor"
porcentaje = Math.floor((cargados*100)/total);
//Asigna al campo de texto porcentaje_txt el porcentaje cargado
porcentaje_txt.text = porcentaje + " %";
//Mueve la barra de carga al frame correspondiente al porcentaje
barra_mc.gotoAndStop(porcentaje);
//Si la cantidad de bytes cargados es igual a la cantidad total de bytes
if (cargados == total) {
//Hacer que se deje de ejeuctar esta función
clearInterval(hiloPrecarga);
//Iniciar la pelicula
play();
}
}

// setInterval nos servira para que la función "cargando" se ejecute cada 1 milisegundo
// Asi, nuestra función revisara constantemente la cantidad de bytes descargados
// y solo iniciara la pelicula hasta que la descarga termine
// la variable "hiloPrecarga" nos servira para saber que esta corriendo nuestra función
// y frenar su ejecución cada milisegundo por medio de "clearInterval"
var hiloPrecarga = setInterval(cargando, 1);

//Evita que inicie la pelicula
stop();
  #2 (permalink)  
Antiguo 04/04/2008, 13:51
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Re: Ayuda preload?

Hola,

Lo que tienes que hacer es colocar la barra con su ancho completo y quitar la animación, o sea el clip de la barra que sólo tenga un fotograma.

Entonces:

al principio del código:

Código PHP:
//guardamos el ancho total de la barra en una variable que usaremos en la regla de tres
ancho_barra=barra_mc._width;
//ponemos la barra con ancho 0%
barra_mc._width=0
dentro de cargando, cambias la línea del gotoAndStop()

Código PHP:
function cargando() {
//reescalamos la barra según el % de carga
barra_mc._width=(porcentaje*ancho_barra)/100
Un saludo.
__________________
[+]
[+]
  #3 (permalink)  
Antiguo 04/04/2008, 14:44
 
Fecha de Ingreso: marzo-2005
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Ayuda preload?

Cita:
Iniciado por yoseman Ver Mensaje
Hola,

Lo que tienes que hacer es colocar la barra con su ancho completo y quitar la animación, o sea el clip de la barra que sólo tenga un fotograma.

Entonces:

al principio del código:

Código PHP:
//guardamos el ancho total de la barra en una variable que usaremos en la regla de tres
ancho_barra=barra_mc._width;
//ponemos la barra con ancho 0%
barra_mc._width=0
dentro de cargando, cambias la línea del gotoAndStop()

Código PHP:
function cargando() {
//reescalamos la barra según el % de carga
barra_mc._width=(porcentaje*ancho_barra)/100
Un saludo.
ya lo hise pero ahora la barra queda sin moverse sale completa y no crece?
  #4 (permalink)  
Antiguo 04/04/2008, 14:55
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Re: Ayuda preload?

Es que no sé exactamente como lo tienes hecho, debería de funcionar...

Prueba de hacerlo dentro de la función...

Código PHP:
function cargando()
{    
    if(
entrada==undefined)
    {
        
ancho_barra=barra_mc._width;
        
barra_mc._width=0
        
entrada=true;
    }
    var 
totalcargadosporcentaje;    
    
total _root.getBytesTotal();    
    
cargados _root.getBytesLoaded();    
    
porcentaje Math.floor((cargados*100)/total);    
    
porcentaje_txt.text porcentaje " %";    
    
barra_mc._width=(porcentaje*ancho_barra)/100;      
    if (
cargados == total
    {    
        
clearInterval(hiloPrecarga);    
        
play();
    }
}
var 
hiloPrecarga setInterval(cargando1);
stop(); 
Debería de funcionar, lo que pasa es que yo lo uso con MovieClipLoader y un listener...

Tb puedes probar sino de agregar esto:
Código PHP:
this.onLoad=function()
{
        
ancho_barra=barra_mc._width;
        
barra_mc._width=0

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 04/04/2008 a las 15:01
  #5 (permalink)  
Antiguo 04/04/2008, 16:05
 
Fecha de Ingreso: marzo-2005
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Ayuda preload?

no me va no sé como agregarlo me sigue saliendo la barra solida sin moviento. Igual gracias por la ayuda
  #6 (permalink)  
Antiguo 04/04/2008, 17:20
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 14 años, 5 meses
Puntos: 406
Re: Ayuda preload?

Hola Ibrm:
Aquí un ejemplo de un preloader:
Creamos un MC que lo llamaremos loader, en la capa 1 frame 1 colocamos un campo de texto dinámico con var: per_out.
En la capa 2 frame 1 dibujamos un rectángulo de 100 x 10, lo conviertimos en MC y le pones como nombre de instancia: barra, éste rectángulo debe de estar en las coordenas x = 0 e y = -5.
En el escenario capa 1 frame 1 colocamos el MC loader y le escribimos éste código:
onClipEvent(load){
barw=barra._width/100;
}
onClipEvent(enterFrame){
movieClip_a_cargar=_parent;
bl=movieClip_a_cargar.getBytesLoaded();
bt=movieClip_a_cargar.getBytesTotal();
per=int((bl/bt)*100);
barra._width=per*barw;
if(per==100){_parent.gotoAndStop(2);}
per_out=per+"%";
}

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #7 (permalink)  
Antiguo 04/04/2008, 23:15
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Re: Ayuda preload?

Te paso un ejemplo en el que este código funciona,

Simplemente tenemos en el primer fotograma el clip de película de la barra del preloader barra_mc y un campo de texto dónde se sitúa el porcentaje.

El clip tiene este código y esta compilado en flash 8:
Código PHP:
function cargando()
{    
    if(
entrada==undefined)
    {
        
ancho_barra=barra_mc._width;
        
barra_mc._width=0
        
entrada=true;
    }
    var 
totalcargadosporcentaje;    
    
total _root.getBytesTotal();    
    
cargados _root.getBytesLoaded();    
    
porcentaje Math.floor((cargados*100)/total);    
    
porcentaje_txt.text porcentaje " %";    
    
barra_mc._width=(porcentaje*ancho_barra)/100;      
    if (
cargados == total
    {    
        
clearInterval(hiloPrecarga);    
        
play();
    }
}
var 
hiloPrecarga setInterval(cargando1);
stop(); 
En el segundo fotograma tenemos una image 'pesada' y un stop();

archivos:
http://www.3wservicios.com/ejemplos/.../preloader.rar

dirección:
http://www.3wservicios.com/ejemplos/preloader/

Por alguna razón no te funciona a tí pero he cogido el código como ves el mismo código y he probado la película y funciona a la perfección.

De hecho tiene que funcionar si no hay nada raro.

Se puede utilizar muchas formas, un intervalo, como tu sugeriste al principio, o desde un clip jerarquicamente superior con moviecliploader, o sin preloadewr directamente onLoad de la película.

De todas formas he usado el código que te pasé para tu intervalo y funciona.

Un saludo.

PD: esperemos que lo consigas :), tienes la alternativa de bandit o tu intervalo, pero ambos deben de funcionar.
__________________
[+]
[+]

Última edición por yoseman; 04/04/2008 a las 23:25
  #8 (permalink)  
Antiguo 06/04/2008, 15:40
 
Fecha de Ingreso: marzo-2005
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Ayuda preload?

Cita:
Iniciado por yoseman Ver Mensaje
Te paso un ejemplo en el que este código funciona,

Simplemente tenemos en el primer fotograma el clip de película de la barra del preloader barra_mc y un campo de texto dónde se sitúa el porcentaje.

El clip tiene este código y esta compilado en flash 8:
Código PHP:
function cargando()
{    
    if(
entrada==undefined)
    {
        
ancho_barra=barra_mc._width;
        
barra_mc._width=0
        
entrada=true;
    }
    var 
totalcargadosporcentaje;    
    
total _root.getBytesTotal();    
    
cargados _root.getBytesLoaded();    
    
porcentaje Math.floor((cargados*100)/total);    
    
porcentaje_txt.text porcentaje " %";    
    
barra_mc._width=(porcentaje*ancho_barra)/100;      
    if (
cargados == total
    {    
        
clearInterval(hiloPrecarga);    
        
play();
    }
}
var 
hiloPrecarga setInterval(cargando1);
stop(); 
En el segundo fotograma tenemos una image 'pesada' y un stop();

archivos:
http://www.3wservicios.com/ejemplos/.../preloader.rar

dirección:
http://www.3wservicios.com/ejemplos/preloader/

Por alguna razón no te funciona a tí pero he cogido el código como ves el mismo código y he probado la película y funciona a la perfección.

De hecho tiene que funcionar si no hay nada raro.

Se puede utilizar muchas formas, un intervalo, como tu sugeriste al principio, o desde un clip jerarquicamente superior con moviecliploader, o sin preloadewr directamente onLoad de la película.

De todas formas he usado el código que te pasé para tu intervalo y funciona.

Un saludo.

PD: esperemos que lo consigas :), tienes la alternativa de bandit o tu intervalo, pero ambos deben de funcionar.
1000 gracias, ahora si que funcionó el problema no es el código sino yo que no eestaba haciendo algo mal, me baje el archivo y trabaje en base a él, intentaba hacerlo con el código paso a paso como me explicastes pero no me iba, me baje el archivo y todo bien Gracias.
  #9 (permalink)  
Antiguo 06/04/2008, 15:45
 
Fecha de Ingreso: marzo-2005
Mensajes: 145
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Ayuda preload?

Cita:
Iniciado por Bandit Ver Mensaje
Hola Ibrm:
Aquí un ejemplo de un preloader:
Creamos un MC que lo llamaremos loader, en la capa 1 frame 1 colocamos un campo de texto dinámico con var: per_out.
En la capa 2 frame 1 dibujamos un rectángulo de 100 x 10, lo conviertimos en MC y le pones como nombre de instancia: barra, éste rectángulo debe de estar en las coordenas x = 0 e y = -5.
En el escenario capa 1 frame 1 colocamos el MC loader y le escribimos éste código:
onClipEvent(load){
barw=barra._width/100;
}
onClipEvent(enterFrame){
movieClip_a_cargar=_parent;
bl=movieClip_a_cargar.getBytesLoaded();
bt=movieClip_a_cargar.getBytesTotal();
per=int((bl/bt)*100);
barra._width=per*barw;
if(per==100){_parent.gotoAndStop(2);}
per_out=per+"%";
}

Espero haberte sido de ayuda.
Gracias bandit, por tu ayuda, en este caso también hise la prueba pero al publicar la pelicula me daba error en esta línea onClipEvent(load){ que no podia usar esa sentencia. En fin que a mi la programación no se me da muy bien. lo unico que me funciono fue bajarme el archivo de yoseman que ya estaba listo solo agregue mi animación y listo, EL también intento explicarme y nada. El problema era yo no el codigo. pero gracias a los dos por la ayuda.
  #10 (permalink)  
Antiguo 06/04/2008, 18:05
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 14 años, 5 meses
Puntos: 406
Re: Ayuda preload?

Posiblemente el error es porque tú el código lo pusiste en el frame en vez de ponerlo en el MC que contiene el campo de texto y el MC barra.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
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 13:01.