Un espacio para los entusiastas del web

Leer archivos desde Flash con loadVariables

Este tutorial trata de cómo poder leer un archivo con la función loadVariables();

Lo primero es aclarar que se
puede leer casi cualquier tipo de archivo, no solamente un archivo de texto
(.txt).

Así que esta función sirve también para leer archivos de acceso a bases de datos,
tales como PHP, ASP, JSP, etc., lo cual es especialmente útil si queremos por
ejemplo crear un sistema de login y password a través de Flash, o leer de una
base de datos.

También es muy útil para poder actualizar textos sin tener que tocar nuestros swf’s,
así con un simple cambio en el texto el Flash se actualizará automáticamente.

Para empezar creamos un archivo con un texto cualquiera y en este caso le llamaremos "archivo.txt".

El contenido de este archivo de texto será:

&parrafo=Encantado de conocerte
        Espero que sepas mi nombre
        Pero lo que te desconcierta
        es la naturaleza de mi juego
        Shympathy for the devil - Rolling Stones
        &

Siempre hemos de poner variables, que serán las que el Flash leerá.

En este caso la variable es parrafo
y el contenido de ésta es el texto después del signo de igualdad (=)

Nótese la existencia del símbolo " &".

Este sirve para separar las distintas variables.

Si quisiéramos por ejemplo poner más de una variable pondríamos algo
así:

&variable1=texto1&variable2=texto2&

Y así sucesivamente.

Ahora vayamos al Flash: para poder leer ese archivo y poder mostrarlo, primero
creamos una caja de texto y en las opciones de texto la ponemos como "texto
dinámico" o "dynamic text".

Luego en donde pone "variable" le ponemos un nombre, en este caso le ponemos
"parrafo", es decir, el mismo nombre de variable que tenemos ya en nuestro archivo
de texto.

Y por último nos situamos en el primer frame de nuestra película y le pones
el siguiente código:

stop();
        loadVariablesNum ("archivo.txt", 0);

archivo.txt
será la ruta de nuestro archivo a leer, aquí lo hemos puesto en el mismo
directorio que el Flash, pero podríamos ponerle una ruta completa, o incluso
una ruta de internet http//:

0 es el nivel en
el que se cargará.

Si quisiéramos cargarla en un movieclip o el _root, entonces tendríamos
que ponerle ahíi el "target", y nuestro código se convertiría en algo

así:

stop ();
        loadVariables ("archivo.txt", "_root");

En este caso estaríamos cargando nuestro archivo en _root, es decir, en nuestra
película principal, y si tuviéramos algún movieclip sería:

stop ();
        loadVariables ("archivo.txt", "_root.clip");

Como podemos observar loadVariablesNum
nos ha servido para cargar variables en niveles y loadVariables
para cargarlas en movieclips o en el _root.

He aquí nuestro ejemplo:

href="/editorial/util/t_8_leer_archivos.zip">Descarga
el archivo .fla de este tutorial.

Otros artículos relacionados

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (6 votos, promedio: 5 de 5)
Loading ... Loading ...
137 comentarios en total.

Comentarios

P‡ginas: « 1 [2]

  1. Alan

    Muy bueno, pero hay un pequeño problema. En tu archivo txt, se realizan una separacion de linea normal, pero el flash duplica el espacio de linea. ¿Como podemos hacer que el flash vaya a la siguiente línea sin darle el doble espacio?


  2. david

    esta muy bueno el tutorial pero… ¿como hacerle para que lea caracteres con acentos??
    Gracias


  3. no sirve

    solo sirve dentro del escenario.

    no sirve si se hace dentro de un simbolo, quisiera saber como lograr lo mismo pero trabajando en un simbolo


  4. ERIKA

    NO ENCONTRAMOS LO QUE NESECITANOS PERO HAY INFO MUY BUENA


  5. ERES SOLO MIO

    ESTA CHIDA LA INFO


  6. AMIGO MIO

    NO PUDIMOS ENCONTRAR LO QUE ESTAVANOS VUSCANDO


  7. Pilar

    Hola que tal, está muy bueno el artículo y funciona de mil maravillas, estoy de acuerdo con los comentarios de guardar con formato UTF-8 para que respete los acentos. Por mi partes tengo el siguiente problema: el archivo txt se actualiza fecuentemente (cada 15 minutos), pero estos no se reflejan en el swf aunque la página se refresque. Solo cambian cuando la página se cierra y se abre nuevamente. ¿Alguien sabe como solucionar esto? ¿se puede hacer algo desde flash o bien en html?


  8. ferry

    lo mismo, de el &, como puedo sustituirlo, para que no corte el valor de la variable? o como sustisuirlo, ya que yo obtengo la info al filtrar datos de una base, y crear con estos un asp. les agradesco


  9. javier

    hola,
    soy nuevo en Flash y action script ,escribo porque llevo unas semanas con un problemilla que no consigo solucionar…quiero obtener de un archivo txt unos texto y publicarlo en un text dinamico que suba. Consigo que el texto suba si lo defino por script pero a la hora de pillarlo por txt me da “undefined”. Os dire como lo hago:

    creo una caja de texto dinamico y en el primer frame le pongo esto…

    var Obj1 = new LoadVars();
    Obj1.load(”archivo.txt”);

    Obj1.onLoad = function() {
    noticia1 = Obj1.parrafo1;
    noticia2 = Obj1.parrafo2;
    parrafo.text = “”;
    parrafo.text = noticia1 + noticia2;};

    Stage.scaleMode = “noScale”;

    News = new Array(”noticia 1″, “noticia 2″, “noticia 3″, “noticia 4″, “noticia 5″, “noticia 6″, “noticia 7″);
    Noticias = new Array( parrafo.text,”AISLASUR\n\n-Bienvenidos a Nuestra Web.”,”3″,”4″,”5″,”6″,”7″);

    siendo archivo.txt el archivo de texto, parrafo el nombre de la var y parrafo1 - parrafo2 el nombre de las variables dentro del txt.

    Agradeceria infinito su ayuda pues por mas vueltas q le doy y tutoriales q leo no consigo ponerlo en pie :(

    GRACIAS MILE


  10. mauro

    muy buen tutorial chabon


  11. Wegb

    Me parece muy util, y quisiera saber como implementar un Login en Flash, si porfavor me pueden ayudar se los agradeceria mucho


  12. SGG

    Para cargar las variables en un clip de pelicula usar el siguientes comando:
    loadVariables (”menus.txt”,target.NOMBREDELCLIP);
    y lo cargará aunque sea en un SWF cargado sobre otro


  13. roger

    El articulo está muy bien pero no se como gestionar las variables ya que en un campo de texto dinámico me funciona bien pero no puedo operar com ells. Osea si en mi fichero .txt tengo a1=2&a2=3 luego en flash no puedo hacet a3=a1+a2 por ejemplo.


  14. MaCo

    Muchas gracías por colgar este tipo de tutoriales, sois un punto de apoyo para toda la comunidad de diseñadores web. Una vez mas gracias y a seguir con este buen trabajo.


  15. Bien, mi pregunta es: tengo una página en php con un formulario de datos. le hago clic en enviar, se habra una pagina(en flash) y muestre los datos enviados. SE PUEDE???, por que hasta ahora, todo lo recoge de un txt o un php que ya está alojado (son textos estáticos) y como le hacemos si son dinámicos…Uds. saben que si hago una consulta en PHP tiene muchas variantes… Imagínense mostrar todos los clientes con credito o algo asi….ME PODRAN AYUDAR::: Basta con un ejemplo sencillo de un formulario…



  16. i’am really impressed!!


  17. pagine piuttosto informative, piacevoli =)


  18. Luggo

    -justo lo que andaba buscando, muy clara la explicacion, me funciono a la primera..SE AGRADECE


  19. Arnau

    me encuentro con que algunos textos se actualizan y otros no… incluso una vez los he borrado del servidor!


  20. cc

    hola: mi problema es que tengo un swf,en el cual tengo tres escenas, en una de las escenas cargo una foto y mediante un mc creado con as ,me carga perfecto, pero cuando paso a otra escena sige quedando la foto,como hago para cuando pase a otra escena la foto desaparesca.
    gracias


  21. loadVariablesNum(”http://servidor/yared/index.php?idalumno=500″,0,’POST’);

    que esta mal……


  22. Laia

    Muy bueno el articulo, pero para mostrar los acentos hay que añadir la linea:
    System.useCodepage=true;
    Antes de cargar el fichero.
    Saludos!


  23. Si lo uso dentro de un MC no me and, ni con UTF-8 ni el código anteriormente mencionado :(

    Uso Flash 8, gracias


  24. Jose

    Esta muy bien esplicado todo pero se me genero un problema cuando paso una variable a flash con el simbolo &

    &txt1=Grabación multicámaras

    &d=lado proboca que no me aparesca el link en flash, directamente aparece vacio. Hay forma de solucionar esto.


  25. Cindy Ro

    Hola! Está muy chévere y muy bien explicado tu artículo, pero tengo otra duda; yo tengo el texto dinámico dentro de un movie clip, quiero saber como hago para cambiar el texto, por ejemplo al dar click en un botón? te agradezco tu ayuda.


  26. javier

    Hola, queria saber como poner un cartelito de cargand variables hasta que termine de cargarlas ya que uso un sistema de validacion de usuarios y tardan en llegarme los datos. Uso flash 5 no puedo usar loadvars


  27. Milton

    Leí todo y probé todo, pude cargar archivo de texto txt con acentos salvandolo como UTF-8 pero, pero no se ven los siguiente signos % porcentage & amprestand, alguien tiene alguna idea, Muchas Gracias


  28. dianis

    por favor me pueden contestar esta pregunta ¿¿¿que tipos de archivos se pueden hacer en “flash”???
    y ¿¿cuantas versiones hay de flash??
    es que me la dejaron de tarea porfas me la contestan concretamente…..
    :S GRACIAS :P


  29. andres felipe

    Muy bueno pero como puedo hacer que al texto que importo desde un .txt pueda colocarle un scroll, ya que tengo mucho texto y no quiero tener un espacio grande usado para eso.

    he tratado de colocarle al cuadro de texto (parrafo) un UIscrollbar pero no me funciona… que puedo hacer?


  30. pues esta muy bien pero no explicas como interactuar con PHP y bases de datos eso estaria bien, de hecho esta informacion que pusiste viene en la ayuda del flash…


  31. Zuli

    Muy buen tuto, tengo una pregunta, si uno quiere cargar el texto en niveles no funciona. Sólo lee el txt si lo cargo en nivel 0, alguien sabe qué pasa?




  32. SOLO FUNCIONA EN MI PC NO EN MUNDO INTERNET :(


  33. japi

    :/ raro pues, a mi no me funcionan las Ñ ni los acentos con el codigo este:

    System.useCodePage = true;

    …es más: cuando guardo el archivo como UTF-8 no me aparece nada en el flash, por el contrario: si lo guardo en ANSI si me aparece el texto. Además al exportalo con el código anterior, me aperece:

    **Error** Escena=MiEscena, capa=MiCapa.txt, fotograma=1:Línea 1: No hay ninguna propiedad que lleve por nombre ‘useCodePage’.
    System.useCodePage = true;

    Total de errores de ActionScript: 1 Errores comunicados: 1


  34. holas , vi algunos comentarios sobre la carga del texto dentro de un movieclip o en otro nivel, es cierto con el codigo que postearon aca no se ve resultados y encontre la solucion:
    Si deseas cargar variables en un nivel específico, utiliza loadVariables() en lugar de loadVariablesNum(). y el resultado seria asi:
    stop();
    loadVariables (”archivo.txt”, “_root.bot”);

    lo probe y funciona, saludos espero q este pequeño aporte les ayude.
    saludos LIZZMAR.


Deja tu Comentario

Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.


Sobre el Autor

Ricardo Salazar
Administrador del sitio Nomaster.com

Más artículos de Ricardo Salazar
Escrito el:
04.06.2002

Archivado en:

Lecturas:
126,136

Anuncios por Q

Las Notas en tu correo


Acerca de

Maestros del Web nace cuando intentamos traducir Webmaster al Español. Nacimos orientados al diseño y desarrollo web. Hoy somos un espacio de apoyo para los entusiastas que participan en proyectos en la red.
Leer más de Maestros del Web