Comunidad de diseño web y desarrollo en internet online

Problema con carga con loadVars basico

Citar            
MensajeEscrito el 19 Jul 2008 09:57 pm
Estoy siguiendo este tutorial el primero de todos ellos "Nivel basico. Cargando variables de un archivo de texto con LoadVars"
http://www.cristalab.com/tutoriales/6/tutorial-de-loadvars-en-flash.html
En el ejemplo al que lo traslado en la pelicula principal tengo un attacMovie que attachea "Seccion01" en nivel 1. A su vez "Seccion01" anida otro clip "ClipS01" que tiene tres fotogramas y anidada tiene otro clip "Botonera".
A cada uno de los fotogramas de "ClipS01" le pongo esto:

Código :

//Crea una objeto de la clase "LoadVars" llamado "cargdor_lv"
var cargador_lv:LoadVars = new LoadVars();

cargador_lv.onLoad = function(exito) {
   if (exito) {
      /* Coloque en "nombre_txt" el valor de la variable "nombre" del archivo de
        texto que cargo el objeto LoadVars, como estamos dentro de uno de sus
        metodos (onLoad) podemos llamar al objeto desde su apuntador "this" y
        esto sera igual que si escribieramos "cargador_lv" */
      S01ScrollBar_01.txtS01_01.nombre_txt.text = this.nombre;
      //Igual que el anterior, coloca la edad
      edad_txt.text = this.edad;
   //En caso de que haya un error
   } else {
      //Mostrar mensaje de error en el campo de texto
      nombre_txt.text = "Error!! :(";
   }
};
//Frena la linea de tiempo principal
stop();

y a cada uno de los botones:

Código :

on (release) {
   _parent._parent.ClipS01.gotoAndStop(3);
   _parent._parent.ClipS01.S01ScrollBar_01.txtS01_01.cargador_lv.load("txt/variables.txt");
}

esto ultimo segun a que fotograma vaya. Notese que en este caso (que es el que me esta fallando) estoy intentado hacer cargar el texto dentro de de un scroll por lo que le estoy poniendo toda la ruta desde "ClipS01". Pero algo esta fallando, no se el que. Estoy nombrando bien todos los "nombres de instancia" y los identificadores por si fuera algun error te tipeo pero nada.
¿alguien ve donde esta el error?

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Jul 2008 07:36 pm
Veo que la variable cargador_lv la declaras dentro de "ClipS01" sin embargo cuando haces el camino a esta variable lo haces de esta manera:

Código :

_parent._parent.ClipS01.S01ScrollBar_01.txtS01_01.cargador_lv.load("txt/variables.txt");


Cuando debería ser así:

Código :

_parent._parent.ClipS01.cargador_lv.load("txt/variables.txt");


Lo que te recomiendo que hagas una función y coloques ahi el loadVars y siempre llamas a esta función pasándole el parametro de que quieres que te cargue y donde va a repercutir.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Jul 2008 08:44 pm
Hola, gracias por la respuesta, queria replantear el caso porque la forma en que lo tenia me daba bastantes problemas.
La base la sigo teniendo igual:
En la linea principal attacheo "seccion01" que a su vez contiene "ClipS01" y que este a su vez tiene un clip "botonera" y 4 frames para cada boton. En los botones pongo esto:

Código :

on (release) {
   _parent._parent.ClipS01.gotoAndStop(1);
}
//con esto iria al primer frame, el seguno boton iria al segundo frame...//

En este primer frame tengo un clip "mc_txtdinamico" que contiene el texto dinamico sobre el que se cargara el variables.txt
En el mismo frame 1 tengo esto:

Código :

//Crea una objeto de la clase "LoadVars" llamado "cargdor_lv"
var cargador_lv:LoadVars = new LoadVars();
cargador_lv.onLoad = function(exito) {
   if (exito) {
      _root.mc_txtdinamico.nombres_txt.text = this.nombres;
   } else {
      _root.mc_txtdinamico.nombres_txt.text = "Error!! :(";
   }
};
cargador_lv.load("txt/variables.txt");
stop();

De esta manera la funcion "cargador_lv" se ejecuta en el mismo lugar donde se define (asi no hay problema de rutas(¿me equivoco?)
Por ultimo el variables.txt

Código :

nombres=Este es mi texto, este es mi texto, este es mi texto

Pues, me esta mareando porque esto mismo si lo hago sin anidar el texto dinamico dentro del "mc_txtdinamico" me funciona perfectamente. Ahora que lo anido dentro de un clip (esto serviria para explicar lo del scroll de una forma mas sencilla) ya no carga o, mas bien creo que carga pero la ruta

Código :

_root.mc_txtdinamico.nombres_txt.text = this.nombres;

no la localiza (he probado de otras maneras y nada)
Alguien se le ocurre donde estara el error
Gracias de nuevo

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Jul 2008 07:58 am
Bueno, parece que era un error de tipeo finalmente, ya que buscaba donde yo pensaba

Código :

_root.mc_txtdinamico.nombres_txt.text = this.nombres;

"nombres_txt" y el Nombre de Estancia correcto era "nombre_txt".
De todas maneras sigo teniendo el problema con el scroll el cual tiene esta compuesto de:
S01ScrollBar_01/txtS01_01
(ademas de los botones) pero el "nombre_txt" (ahora bien escrito) no muestra la carga. Teniendo en cuenta que ahora la ruta es correcta ¿que podria estar dando lugar a la no muestra del .txt?

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Jul 2008 08:56 am
Bueno, no se decirte donde está el problema porque tienes tantos clips dentro de tantos clips que se forma un trabalenguas, estoy seguro de que te cuesta mucho organizar todo, lo mejor es que hagas una función para que realice esto y te olvides de frames y todo lo demás:

Código :

function loadText(path:String, variable:String, campoTexto:TextField):Void{
   
   var myLoad:LoadVars = new LoadVars();
   
   myLoad.onLoad = function(success:Boolean):Void{
      
      campoTexto.text = this[variable];
      
   }
   
   myLoad.load(path);
   
}


La función anterior le dices el path al texto, la variable que tiene que leer de este texto y el textField donde tiene que ponerlo y ya esta, la declaras en el primer frame de tu película y la llamas cuando quieras:

Código :

_root.loadText("txt/variables.txt", "nombres", _root.mc_txtdinamico.nombres_txt);

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Jul 2008 09:09 am
Gracias Elchininet por tu respuesta, seguro que va mejor esta última funcion.
El caso es que revisando, revisando me doy cuenta de que la no aparición del texto se debe a una mascara que actuaba delante del texto. Eliminando esta mascara el texto se ve perfectamente (ya me extrañaba por que la ruta estaba bien).
Solo una pregunta más, ¿como podría hacer para tener esta máscara para que se vea tan solo la parte de texto que interesa (puesto que es demasiado grande)? ¿por ser un texto dinámico no funciona la máscara? tal vez conozcas algo más de esto. Gracias de nuevo.

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Jul 2008 09:21 am
Un texto dinámico no necesita máscara, es una de sus ventajas. Si quiseras que se viera el texto con una máscara debes embeder la fuente, pero en realidad si es un texto solamente no hace falta.

Cuando te pares encima del texto verás que en la esquina inferior derecha hay un cuadrado blanco con outline negro, presionando shift dale doble click, el cuadrado se te pondrá negro, ahora puedes redimensionar el texto a la medida que quieras, solamente lo que se va a ver, lo que sobra del texto quedará oculto y solo se verá cuando su propiedad scroll se incremente o se disminuya.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Jul 2008 09:46 am
OK, muchas gracias por todo.
Un saludo.

Por celentano

Claber

123 de clabLevel



Genero:Masculino  

firefox

 

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