Comunidad de diseño web y desarrollo en internet online

Problema con la implementacion de LoadVars en una clase

Citar            
MensajeEscrito el 18 Abr 2005 05:17 pm
Hola, soy nuevo en el foro y tengo un grave problema que me gustaria que me ayudarais a solucionar.
Soy nuevo en el actionscript, pero no en la programacion, ya q se programar en JAVA.

Mi objetivo es crear una clase que haga referencia al objeto LoadVars para cargar unas variables desde un archivo e implementarlas como un objeto en el fla.

La clase es la siguiente:

Código :

class Anuncio2 {
   private var mensaje:String;
   function Anuncio2() {
   }
   function cargar(txt:String):String {
      var carga:LoadVars = new LoadVars();
      carga.load(txt);
      carga.onLoad = function() {
         mensaje = carga.s;
      };
      return mensaje;
   }
}


Se que podia estar mejor diseñada, pero es algo rapido y ademas lo he probao todo.

Aqui el codigo de la pelicula donde se implementa:

Código :

import Anuncio2;
var p:Anuncio2 = new Anuncio2 ();
t1.text = p.cargar("archivo.txt");
stop();


Esto se encuentra en el segundo keyframe de la pelicula root, es decir, sin crear ningun clip ni nada.

Por supuesto he creado un cuadro de texto dinamico con nombre de instancia t1. Tambien el archivo de texto en la misma ruta q el fla llamado archivo.txt.
Pero no consigo que haga la asignacion, y me pone undefined.

Quizas sea porque no se pueden crear objetos de tipo LoadVars en una clase?, no lo se.
Ayudarme si podeis u ofrecerme una alternativa.

Gracias de antemano y un abrazo.

Por dextervi

3 de clabLevel



 



Ultima edición por dextervi el 18 Abr 2005 07:04 pm, editado 1 vez

firefox
Citar            
MensajeEscrito el 18 Abr 2005 05:30 pm
No estoy muy seguro, pero yo diría que el problema se centra en el comportamiento de flash con respecto a la carga de archivos externos. Si no me equivoco, lo que pasa es que la función devuelve el valor de la variable mensaje antes de que se haya podido cargar el valor en ésta, de modo que siempre sale 'undefined'.

Prueba, por ejemplo, a asignar el resultado del loadvars directamente al cuadro de texto y esperar a ver si el problema es ése.. me refiero a hacer algo del tipo:

Código :

function cargar(campo:TextField):Void{
   var carga:LoadVars = new LoadVars();
   carga.load(txt);

   carga.onLoad = function() {
      campo.text= carga.s;
   }
} 


Suerte...

Por Cyril

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Abr 2005 06:04 pm

Código :

class Anuncio2 {
private var mensaje:String;
function Anuncio2() {
}
function cargar(txt:String):String {
var carga:LoadVars = new LoadVars();
carga.load(txt);
carga.onLoad = function() {
mensaje = carga.s;
};
return mensaje;
}
} 


El problema es q la variable "mensaje" no esta disponible para retornarse (retorna undefined), ya que flash no espera a q se ejecute el evento load para continuar con la funcion.

la solucion:

Código :

class Anuncio2 {
private var mensaje:String;
function Anuncio2() {
}
function cargar(txt:String,campo):String {

var carga:LoadVars = new LoadVars();
carga.campo=campo;
carga.load(txt);
carga.onLoad = function() {
campo.text = carga.s;
};
}
}

import Anuncio2;
var p:Anuncio2 = new Anuncio2 ();
p.cargar("archivo.txt",t1);
stop(); 

 

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 18 Abr 2005 06:07 pm
Tenias razon, con el cambio que me has dixo si que consigo cargarlo desde el archivo.

Muchas gracias, y ojala no tenga mas problemas en el desarrollo de la pagina, sino ya se que puedo contar con vosotros.

un salu2!! :love:

Por dextervi

3 de clabLevel



 

firefox

 

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