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

problema NaN con preload

Estas en el tema de problema NaN con preload en el foro de Flash y Actionscript en Foros del Web. Hola a tod@s!! bueno mi problema es que he hecho un preload para una página, y donde me tiene que salir el tanto por ciento ...
  #1 (permalink)  
Antiguo 11/06/2007, 11:40
 
Fecha de Ingreso: octubre-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 0
problema NaN con preload

Hola a tod@s!! bueno mi problema es que he hecho un preload para una página, y donde me tiene que salir el tanto por ciento que va cargado me aparece NaN y la barra llena, hay veces que sale NaN un rato y luego sale el porcentaje que se va cargando, pero otras veces sólo aparece el NaN, ¿sabe alguien por qué puede ser y a qué se debe?

Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 11/06/2007, 11:45
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 18 años, 1 mes
Puntos: 30
Re: problema NaN con preload

si pusieras el codigo se te podria ayudar.
  #3 (permalink)  
Antiguo 11/06/2007, 12:07
 
Fecha de Ingreso: octubre-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: problema NaN con preload

Hola Rizzo, pues el código es el siguiente:

_root.contenedor.loadMovie("tumovie.swf")
precargador._visible=false
precargador.onEnterFrame=function(){
bl=contenedor.getBytesLoaded();
bt=contenedor.getBytesTotal();
if (bl>=bt && bl>4){
this._visible=false;
}else{
this._visible=true;
this.barra._xscale=100*bl/bt;
this.porciento.text=Math.floor(bl*100/bt)+"%"; } }

Donde "barra" y "porciento" son dos mc que estan dentro del mc "precargador", y son la barrita que se va incrementando y el campo de texto dinámico que muestra el porcentaje respectivamente.

Muchas gracias. Salu2!
  #4 (permalink)  
Antiguo 11/06/2007, 13:22
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 18 años, 1 mes
Puntos: 30
Re: problema NaN con preload

ok amigo, disculpa no era necesario poner el codigo recorde que el problema es que cuando empieza flash a buscar la ruta el controlador onEnterFrame empieza a trabajar a el no le importa si encontro o no el archivo entonces al estar buscando la ruta, esto:

Código:
bl=contenedor.getBytesLoaded();
bt=contenedor.getBytesTotal();
tiene un valor de cero cada uno por que te repito aun no existe en esos segundos o milisegundos en que tarda en buscar el archivo y al estar en ceros en la formula de porcentaje al dividir 0/0 (cero entre cero) da el resultado de NaN y se quita hasta que que esos valores sean diferentes a cero, pero sino quieres ver ese nan usa un if condicionando "si sale ese NaN haz esto" o con la funcion isNaN eso seria lo mejor no es muy complicado.
  #5 (permalink)  
Antiguo 11/06/2007, 14:06
 
Fecha de Ingreso: octubre-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: problema NaN con preload

uff, pues eso de la función isNaN no tengo ni idea de qué es, si me lo puedes explicar te lo agradeceria.

Muchas gracias por tu ayuda.
Salu2!
  #6 (permalink)  
Antiguo 11/06/2007, 14:23
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 18 años, 1 mes
Puntos: 30
Re: problema NaN con preload

Aprieta F1 y checa en la ayuda de flash, si tienes aun dudas vienes y preguntas y tambien te sugiero que si usas onEnterFrame lo termines cuando no lo uses, por que consume muchos recursos sino lo haces, y si usas AS 2.0 declares tus variables asi:

Código:
var mivariable:Number;
y NaN como tal significa No es un Numero.(not a number)

isNAN es esto lee:

Código:
isNaN function
isNaN(expression:Object) : Boolean

Evaluates the parameter and returns true if the value is NaN(not a number). This function is useful for checking whether a mathematical expression evaluates successfully to a number. 

Availability: ActionScript 1.0; Flash Player 5

Parameters
expression:Object - A Boolean, variable, or other expression to be evaluated.

Returns
Boolean - A Boolean value.

Example
The following code illustrates return values for the isNaN() function:

trace( isNaN("Tree") );
// returns true

trace( isNaN(56) );
// returns false

trace( isNaN(Number.POSITIVE_INFINITY) )
// returns false
  #7 (permalink)  
Antiguo 12/06/2007, 13:24
 
Fecha de Ingreso: octubre-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: problema NaN con preload

Ok, ya lo he visto, no sabía que era una función de Flash, no la conocía. Muchas gracias!
  #8 (permalink)  
Antiguo 12/06/2007, 13:34
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 18 años, 1 mes
Puntos: 30
Re: problema NaN con preload

si lo soluciona espero, nos cuente hizo.
  #9 (permalink)  
Antiguo 12/06/2007, 16:31
 
Fecha de Ingreso: octubre-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: problema NaN con preload

Hola Rizzo, pues creo que si lo he solucionado, así cuando tendría que salir NaN le he puesto para que salga 0% y la barrita vacía. Para ello he añadido una variable y un if en el codigo:

na = isNaN(Math.floor(bl*100/bt));
if (na==true){
this.barra._xscale=0;
this.porciento.text="0%"; }
else {
this.barra._xscale=100*bl/bt;
this.porciento.text=Math.floor(bl*100/bt)+"%";
}

¿Qué te parece esta forma de hacerlo? ¿Sería mejor de alguna otra manera?
Salu2!
  #10 (permalink)  
Antiguo 12/06/2007, 17:12
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 18 años, 1 mes
Puntos: 30
Re: problema NaN con preload

lo probe pero sabes que al principio en lugar del 0% me da 100% osea ahora en lugar de NaN da 100% y luego ya sigue 1 2 3% etc.. a ti no?
  #11 (permalink)  
Antiguo 13/06/2007, 14:21
 
Fecha de Ingreso: octubre-2006
Mensajes: 131
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: problema NaN con preload

Pues a mi me sale bien, sale 0% al principio y sin barrita, y luego lo cuenta bien y la barrita va aumentando, a lo mejor has puesto el if en otro lugar, no?
  #12 (permalink)  
Antiguo 19/06/2007, 17:03
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1.193
Antigüedad: 18 años, 1 mes
Puntos: 30
Re: problema NaN con preload

no a mi no, pero lo importante es que te funcione a ti, te felicito que lo hicieras solo.
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 16:05.