Comunidad de diseño web y desarrollo en internet online

Escritura y lectura de datos en flash

Citar            
MensajeEscrito el 28 Sep 2008 10:40 pm
Saludos!

Les comento: tengo un proyecto de una asignatura de la Universidad y me gustaria bastante trabajarlo en Flash (incluso ya estoy trabajando en una implementación de listas dinámicas que me van a servir!), sin embargo me he topado con un pequeño problema (será pequeño? :? ).

El asunto es que debo leer un archivo con datos generados por el .swf creado en Flash (una matriz o una lista con coordenadas que no necesariamente debe entender el usuario, con que los pueda leer de vuelta mi .swf es suficiente). Mi .swf será parte de una página web.

Leyendo por aquí y por allá aprendí que con archivos del tipo XML se arreglarían muchos de mis problemas. Aunque me han surgido algunas dudas:

    ¿Importa el nombre que lleve cada etiqueta o el orden en el que se encuentran almacenadas?
    ¿Puedo crear un archivo del tipo XML desde flash?
    Si esto se pudiera: ¿Como hacerlo? ¿Puedo almacenar este archivo en mi servidor?
    Si no pudiera almacenar mi archivo en el servidor: ¿Como lo puedo hacer para que lo almacene en la PC del usuario? ¿Como abrir un archivo ingresado por el usuario?


Bueno, también he visto por allí la existencia de Flash remoting, aunque la verdad no me ha quedado claro. ¿Me sería útil para mi proyecto? ¿Como? (Siguiendo con el tema de la lectura y escritura de datos) [Yo utilizo como servidor Lycos (es gratuito) me ofrece php y mysql --> Aunque la verdad no sé como utilizarlos asi que solo espero les sirva de algo el dato :oops: ]

He visto algunos topics en el foro, p.e. este:
Click aquí
pero considero que ya está un poquito antiguo (2006) y no mucho se adapta a lo que busco :( ni los otros que he visto!
Igual en el mismo link hay unos links hacia una explicación de lo de Flash remoting, pero no me queda claro.

En fin, solo puedo decir: F1, F1, F1!!! (help, help, help) :lol:

Que opinan: ¿Continuo en Flash o trabajo otra vez en C#?

Mil gracias por sus aportes!!!

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Sep 2008 05:31 am
Hola de nuevo!

Respondiendo a mi propia pregunta (jajaja, asi es esto... :lol: ) si es posible la escritura desde flash a un documento en el servidor.

Miren esto:
Click aquí

¿Como no haberlo pensado antes? Si ya había usado ese libro de visitas :oops:
jajaja, solo es de aplicar la técnica solo que con los datos generados desde flash :lol:

Revisen y comenten!

De igual forma creo que debiera haber otra forma si esto es posible. Quizás me ofrezcan una mejor solución, pero ustedes dirán. Saludos!

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Sep 2008 08:18 am
Te doy las soluciones que yo daría si me encontrara con estos problemas.

¿Importa el nombre que lleve cada etiqueta o el orden en el que se encuentran almacenadas?
No, la estructura xml que uses depende únicamente de tus necesidades. Una alternativa puede ser usar Json.

¿Puedo crear un archivo del tipo XML desde flash?
No, directamente desde flash no se puede, pero puedes guardar los datos en cookies usando javascript o sharedObject desde flash. Pero preferiria guardar los datos en una base de datos usando php o algún lenguaje del lado del servidor.

Si esto se pudiera: ¿Como hacerlo?
Si son datos pequeños nombre, puntajes, etc, sera mas practico usar loadVars, hay formas con mas utilidades y funciones pero eso en caso sea necesario.

¿Puedo almacenar este archivo en mi servidor?


Si no pudiera almacenar mi archivo en el servidor:
¿Como lo puedo hacer para que lo almacene en la PC del usuario?

¿Como abrir un archivo ingresado por el usuario?
Abrir dices ejecutar?? o cargar al servidor hay tips para hacer ambas cosas

http://www.cristalab.com/tutoriales/121/subir-archivos-en-flash-con-filereference.html
http://www.cristalab.com/tips/50826/cambiar-nombres-al-subir-archivos-con-actionscript-3.html

http://www.cristalab.com/tutoriales/109/ejecutar-y-abrir-archivos-externos-desde-flash.html

Bueno espero te sirva de algo.

Saludos

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

firefox
Citar            
MensajeEscrito el 30 Sep 2008 11:30 pm
Bueno, primero que nada muchas gracias al amigo Gerson por animarse a responder.
Pero aún tengo algunas dudas sobre XML y su escritura y lectura desde flash. Por lo que he entendido el XML es solo una forma de organizar datos por nodos.
En este tutorial: aquí de Cristalab me explican muy bien la teoría de XML en flash y por lo leido me parece que tiene ventajas sobre LoadBars. Me surgen algunas dudas:


    ¿Por qué no es recomedable tener más de un Nodo padre?
    Siguiendo el ejemplo del tutorial: ¿Por que nó poder utilizar

Código :

<mensaje>
    <asunto>Aviso de suspensión</asunto>
    <correo>[email protected]</correo>
    <cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
    <remitente>[email protected]</remitente>
</mensaje>
<mensaje2>
    <asunto>Aviso de suspensión</asunto>
    <correo>[email protected]</correo>
    <cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
    <remitente>[email protected]</remitente>
</mensaje2>

y leer el segundo nodo padre asi:

Código :

var valor = objXML.secondChild.childNodes[0].secondChild.nodeValue;

?
¿Es decir, es esto posible?

Por otro lado, de este tutorial surgió mi idea de escribir sobre el XML, ya que si podemos decir:

Código :

var valor = objXML.firstChild.childNodes[0].firstChild.nodeValue;

¿Por qué no asignarle un valor a ese campo asi? :

Código :

var valor = "Hola mundo";
objXML.firstChild.childNodes[0].firstChild.nodeValue = valor;

?

----------------------------

Más concretamente, debo manejar desde flash una matriz con números. La idea es que el usuario utilice el programa y si lo desea pueda almacenar los datos en el servidor y luego si lo desea lo pueda recargar y volver a utilizar. Claro yo me encargo de guardarlo y presentarselo al usuario para que lo vuelva a usar.
Supongo que la forma en que lo debería implementar sería asi (de poder almacenar la info en formato xml):

Código :

<matriz>
    <usuario>
        <nombre>DriEg0n</nombre>
        <coordenadas>1, 2, 1, 3</coordenadas>
    </usuario>
    <usuario>
        <nombre>Gerson</nombre>
        <coordenadas>1, 0, 1, 2</coordenadas>
    </usuario>
</matriz>


¿Pero como leerl el campo nombre y/o coordenadas? ¿Asi?:

Código :

var valor = objXML.firstChild.childNodes[0].childNodes.firstChild.nodeValue;


En fin, para no hacerlo más largo hasta aquí lo dejo, son solo algunas pequeñas dudas... jajaja, espero puedan ayudarme... :lol:

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Oct 2008 12:02 am
Bueno, pues con respecto a lo del nodo padre, yo lo uso un solo nodo padre porque de esa manera puedes definir el documento en general, atributos y esas cosas.

Luego con lo de leer datos, puedes usar atributos si los datos no son muy extensos seria mejor ya que puedes llamarlos por el nombre.

Código :

<matriz>
    <usuario nombre="DriEg0n" coordenadas="1, 2, 1, 3" />
    <usuario nombre="Gerson" coordenadas="1, 0, 1, 2" />
</matriz>

y lo llamas asi

Código ActionScript :

var valor = objXML.firstChild.childNodes[0].attributes.nombre;


Es un modo de trabajar, pero como sabes puedes utilizar xml libremente a tus necesidades.

Saludos.

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

firefox
Citar            
MensajeEscrito el 01 Oct 2008 12:15 am
mmm, ok. Espero a lo máximo 25 coordenadas por usuario (bueno, eso por el momento :S XD) y tal vez unos dos atributos más.
¿Crees que es viable trabajarlo como me has recomendado o mejor de la manera que he propuesto?

Código :

<matriz>
    <usuario>
        <nombre>DriEg0n</nombre>
        <coordenadas>1, 2, 1, 3</coordenadas>
    </usuario>
    <usuario>
        <nombre>Gerson</nombre>
        <coordenadas>1, 0, 1, 2</coordenadas>
    </usuario>
</matriz>

¿Y qué me puedes decir de escribir sobre el XML de la manera que he puesto?
(Sé que ya me has dicho que puedo escribir mediante PHP y de otras maneras, pero aún asi quisiera saber si es posible... :))

Código :

var valor = "Hola mundo";
objXML.firstChild.childNodes[0].firstChild.nodeValue = valor;

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Oct 2008 12:24 am
Yo creo que si es viable no seria viable si es que este fuera un texto con signos, saltos de linea y esas cosas.

Lo otro es posible pero solo funcionaria en tiempo de ejecución y siempre y cuando el nodeValue no sea un elemento xml, osea otro nodo, eso lo puedes saber con la opción nodeType (algo así, no recuerdo bien). si es texto devuelve 3 y si es un nodo devuelve 1 el nodeValue es null y de solo lectura, eso esta en la documentación de flash para que lo tengas mas preciso.

Saludos

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

firefox
Citar            
MensajeEscrito el 01 Oct 2008 12:46 am
ok! muchas gracias por tooooooooda tu ayuda Gerson.
¿Puedo preguntar una cosa más? :S :$ :)

Bueno, leyendo otro poco lo de los LoadVars...
¿Qué opinas? Es más sencillo asi o con XML o crees que es cuestión de decisión?

Muuuuuuuuuuuuchas gracias!

:D

Por driegon

36 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Oct 2008 12:57 am
Pues loadVars sirve para cargar datos no estructurados cosas sencillas y claro para enviar datos via GET o POST, como en un formulario.

Con la clase Xml es mas facil trabajar con datos estructurados un tanto mas complejos y con la clase XML de flash puedes recorrer todo el xml sin problemas.

XML es la solución que muchos, casi todos, usan al final, por ejemplo yo trabajo con web services para comunicarme con el servidor, eso lo programa otra persona con la que trabajo, pero dentro del xml que devuelve el WS usamos JSON para definiar los datos. A menos que trabajes con remoting XMl es la solución.

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

firefox
Citar            
MensajeEscrito el 01 Oct 2008 01:19 am
Muy bien Gerson, mil gracias por todos tus aportes!!! Me serán de mucha utilidad!

A los que leen, si consideran que pueden aportar algo más al tema, no duden en hacerlo! ;)

Muchisimas gracias!

Por driegon

36 de clabLevel



Genero:Masculino  

firefox

 

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