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

Pq? no puedo sacar la variable de la funcion... donde me equivoco...

Estas en el tema de Pq? no puedo sacar la variable de la funcion... donde me equivoco... en el foro de Flash y Actionscript en Foros del Web. Código PHP: var  cargador_lv : LoadVars  = new  LoadVars (); cargador_lv . onLoad  = function( exito ) {     if ( exito ) {          numero_images  =  this . numero_images ; ...
  #1 (permalink)  
Antiguo 21/10/2006, 16:44
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
Pq? no puedo sacar la variable de la funcion... donde me equivoco...

Código PHP:
var cargador_lv:LoadVars = new LoadVars();
cargador_lv.onLoad = function(exito) {
    if (
exito) {
        
numero_images this.numero_images;
    } else {
        
numero_images.text "Error!! :(";
    }
    return 
numero_images;
};
cargador_lv.load("images/novedades.txt");

numero_images //aqui que tengo q poner para que pille el return de la funcion;

valorAleatorio 0+Math.round(Math.random()*numero_images);//aqui no llega la variable, porq?
this.createEmptyMovieClip("img_mc", ++nivel);
img_mc._x 0;
img_mc._y 0;
img_mc.loadMovie("images/novedades/foto_novedades/0"+valorAleatorio+".jpg");
this.createEmptyMovieClip("bucle_mc", ++nivel);
bucle_mc.onEnterFrame = function() {
    if (
por != 100) {
        
loading_txt.text "Cargando";
        
por Math.round((img_mc.getBytesLoaded()/img_mc.getBytesTotal())*100);
        
por_txt.text = (Math.round(img_mc.getBytesLoaded()/1024))+"Kb de "+(Math.round(img_mc.getBytesTotal()/1024))+"Kb "+por+"%";
    } else {
        
this.unloadMovie();
        
img_mc._width 98;
        
img_mc._height 98;
        
nextFrame();
    }
};
stop(); 
como puedo sacar esa variable que me dara un numero, de la funcion, para poderla usar luego mas tarde desde afuera, he usado el return dentro de la funcion... pero no se mas...

Última edición por nuevo; 21/10/2006 a las 17:03
  #2 (permalink)  
Antiguo 21/10/2006, 18:10
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
var numero_images:Number = 0;
var cargador_lv:LoadVars = new LoadVars();
cargador_lv.onLoad = function(exito) {
if (exito) {
_root.numero_images = this.numero_images;
} else {
numero_images.text = "Error!! :(";
}
};
cargador_lv.load("images/novedades.txt");

valorAleatorio = 0+Math.round(Math.random()*_root.numero_images);//.... el resto del code
__________________
http://www.flotdesign.dk/
  #3 (permalink)  
Antiguo 21/10/2006, 18:17
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
no quiere no, la variable llega vacia

var numero_images:Number = 0;
var cargador_lv:LoadVars = new LoadVars();
cargador_lv.onLoad = function(exito) {
if (exito) {
_root.numero_images = this.numero_images;
} else {
numero_images.text = "Error!! :(";
}
};

cargador_lv.load("images/novedades.txt");

valorAleatorio = 0+Math.round(Math.random()*_root.numero_images);//aqui no llega la variable, porq?
  #4 (permalink)  
Antiguo 21/10/2006, 18:29
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
aqui te dejo el fla con la estructura de las carpetas y algunas img para q lo mires completo gracias....

images.exe

Última edición por nuevo; 21/10/2006 a las 18:46
  #5 (permalink)  
Antiguo 21/10/2006, 18:33
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
..seguro ke el php te manda un valor??
hacele un trace a las dos opciones para ver si manda algo..


if (exito) {
trace( this.numero_images);

} else {
trace( this.numero_images);

}
__________________
http://www.flotdesign.dk/
  #6 (permalink)  
Antiguo 21/10/2006, 18:35
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
no hay php es un txt y dentro lleva la variable=a_valor_30
  #7 (permalink)  
Antiguo 21/10/2006, 18:36
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
dentro de la funcion si que va la variable pero desde fuera no
  #8 (permalink)  
Antiguo 21/10/2006, 18:42
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
tengo drama con el rar.. pon lo ke tienes en el txt para verlo en el post
__________________
http://www.flotdesign.dk/
  #9 (permalink)  
Antiguo 21/10/2006, 18:43
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
esto numero_images=30

te lo pase a exe para q lo puedas descomprimir automaticamente

images.exe
  #10 (permalink)  
Antiguo 21/10/2006, 18:55
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
deberia tomar el valor...
y como no puedo habrir tu rar.. te pongo todo el code:

Código PHP:

var numero_images:Number 0;
var 
valorAleatorio:Number   0;
var 
cargador_lv:LoadVars = new LoadVars();
cargador_lv.onLoad = function(exito) {
    if (
exito) {
        
_root.numero_images this.numero_images;
    } else {
        
numero_images.text "Error!! :(";
    }
};
cargador_lv.load("images/novedades.txt");
_root.valorAleatorio Math.round(Math.random()*_root.numero_images);
this.createEmptyMovieClip("img_mc", ++nivel);
img_mc._x 0;
img_mc._y 0;
img_mc.loadMovie("images/novedades/foto_novedades/0"+_root.valorAleatorio+".jpg");
this.createEmptyMovieClip("bucle_mc", ++nivel);
bucle_mc.onEnterFrame = function() {
    if (
por != 100) {
        
loading_txt.text "Cargando";
        
por Math.round((img_mc.getBytesLoaded()/img_mc.getBytesTotal())*100);
        
por_txt.text = (Math.round(img_mc.getBytesLoaded()/1024))+"Kb de "+(Math.round(img_mc.getBytesTotal()/1024))+"Kb "+por+"%";
    } else {
        
this.unloadMovie();
        
img_mc._width 98;
        
img_mc._height 98;
        
nextFrame();
    }
};
stop(); 
prueba.

Salu2
__________________
http://www.flotdesign.dk/
  #11 (permalink)  
Antiguo 21/10/2006, 18:58
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
no lo hace no, fijate arriba te puse un exe para q lo puedas descomprimir... y no, no llega ningun valor siempre vacio, comprobe nombres de ficheros, nombres de variables y de todo,.., y el caso esq no veo el error en ningun lado
  #12 (permalink)  
Antiguo 21/10/2006, 20:07
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
el problema: el txt no se carga antes de iniciar la funcion de aleatorio... con lo cual imposible que sepa el valor, hay que iniciar una funcion que lo controle si cargo o no...

Código PHP:
var numero_images:Number;
var 
valorAleatorio:Number;
//--------------------->
var cargador_lv:LoadVars = new LoadVars();
cargador_lv.onLoad = function(exito){
    if(
exito){
        
comenzar();
    }else{
        
trace("Error!! No se puede abrir el txt");
    }
};
//--------------------->
var comenzar:Function = function():Void{
    
numero_images Number(cargador_lv.numero_images);
    
valorAleatorio 0+Math.round(Math.random()*numero_images);
    
trace('numero_images -> '+numero_images);//muestra si funciona
    
trace('valorAleatorio -> '+valorAleatorio);//muestra si funciona
    
this.createEmptyMovieClip("img_mc", ++nivel);
    
img_mc._x 0;
    
img_mc._y 0;
    
img_mc.loadMovie("images/novedades/foto_novedades/0"+valorAleatorio+".jpg");
}
//--------------------->
cargador_lv.load("images/novedades.txt"); 
//--------------------->
this.createEmptyMovieClip("bucle_mc", ++nivel);
bucle_mc.onEnterFrame = function() {
    if (
por != 100) {
        
loading_txt.text "Cargando";
        
por Math.round((img_mc.getBytesLoaded()/img_mc.getBytesTotal())*100);
        
por_txt.text = (Math.round(img_mc.getBytesLoaded()/1024))+"Kb de "+(Math.round(img_mc.getBytesTotal()/1024))+"Kb "+por+"%";
    } else {
        
this.unloadMovie();
        
img_mc._width 98;
        
img_mc._height 98;
        
nextFrame();
    }
};
stop(); 
ya funciona, gracias leo
  #13 (permalink)  
Antiguo 21/10/2006, 20:08
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
ok.. ahora funciona, lo ke pasa es ke la variable no tiene tiempo de ser cargada antes de la llamada.

Pon este code en el frame 1:
Código PHP:
_global.numero_images;
_global.valorAleatorio;
myData = new LoadVars() 
    
myData.load("images/novedades.txt"
    
myData.onLoad = function(succes){ 
      if(
succes){ 
         
numero_images this.numero_images;
      } else 
trace ("Error loading data");
    } 
y pon este code en el frame 3 OJO frame 3
Código PHP:
this.createEmptyMovieClip("img_mc", ++nivel);
img_mc._x 0;
img_mc._y 0;
img_mc.loadMovie("images/novedades/foto_novedades/0"+Math.round(Math.random()* numero_images)+".jpg");
this.createEmptyMovieClip("bucle_mc", ++nivel);
bucle_mc.onEnterFrame = function() {
    if (
por != 100) {
        
loading_txt.text "Cargando";
        
por Math.round((img_mc.getBytesLoaded()/img_mc.getBytesTotal())*100);
        
por_txt.text = (Math.round(img_mc.getBytesLoaded()/1024))+"Kb de "+(Math.round(img_mc.getBytesTotal()/1024))+"Kb "+por+"%";
    } else {
        
this.unloadMovie();
        
img_mc._width  98;
        
img_mc._height 98;
        
nextFrame();
    }
};
stop(); 
le cambie los nombres a algunas var..pero eso tu lo puedes arreglar a tu gusto

Salu2

.
__________________
http://www.flotdesign.dk/
  #14 (permalink)  
Antiguo 21/10/2006, 20:10
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 21 años, 5 meses
Puntos: 1
... y yo ke me cabezie para solucionarlo y tu te me adelantas ..

bueno ..veo ke llegamos a la misma conclucion..

Salu2


.
__________________
http://www.flotdesign.dk/
  #15 (permalink)  
Antiguo 21/10/2006, 21:26
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
si pero aun hay un problema, ahora no realiza la precarga de la foto, osea no sale el contador numerico... simpremente carga y muestra.... y eso pq?
  #16 (permalink)  
Antiguo 22/10/2006, 14:33
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 1 mes
Puntos: 0
veo que aún no solucionas tu problema... te propongo estos procedimientos (Flash7 AS2)
Código:
//los objetos que vamos a usar
var numero_images:Number;
var valorAleatorio:Number;
var img_mc:MovieClip = this.createEmptyMovieClip('img_mc',this.getNextHighestDepth());
var control_mc:MovieClip = this.createEmptyMovieClip('control_mc',this.getNextHighestDepth()); //en ves de bucle_mc
var cargador_lv:LoadVars = new LoadVars(); 
//---------------------> 
cargador_lv.onLoad = function(exito):Void{
	if(exito){
		//actualizamos el valor de la variable
		numero_images = Number(cargador_lv.numero_images);
		//y llamamos a la función que muestra la imagen
		muestra_imagen();
	}else{
		trace("Error!! No se puede abrir el txt");
	}
}
//---------------------> 
var muestra_imagen:Function = function():Void{
	//obtenemos un valorAleatorio
	valorAleatorio = 0+Math.round(Math.random()*numero_images); 
	//y lo cargamos
	img_mc.loadMovie("images/novedades/foto_novedades/0"+valorAleatorio+".jpg"); 
	//ahora que control_mc comience a verificar la carga
	control_mc.onEnterFrame = function():Void{
		var cargado:Number = img_mc.getBytesLoaded();
		var total:Number = img_mc.getBytesTotal();
		var porcentaje:Number = Math.round(100*(cargado/total));
		if (cargado<total) {
			loading_txt.text = "Cargando";
			por_txt.text = porcentaje+"%";
		} else if(cargado>4) {
			this.removeMovieClip();
		}
	};
} 
//---------------------> 
cargador_lv.load("images/novedades.txt"); 

stop();
__________________
Si digo que soy mentiroso. ¿Lo soy?
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 02:55.