Como grabar y cargar datos con flash

Tengo el flash mx 2004 y estoy haciendo un juego de rpg en los que uso variables como nivel, oro, experiencia, etc. Lo que necesito hacer es que el Usuario Pueda guardar el estado del juego. Se me ocurrió utilizar la función #include con la que cargaba un archivo .txt con programación en el indicando valores para cada variable del juego. Como si fuera un archivo de guardado. Pero el .fla o el .exe del juego carga este archivo de texto cuando es compilado y luego no lo carga más, se queda con lo que cargo al principio. Así que el include no funciona. Yo he visto juegos en flash en los que uno puede jugar, cerrar el juego y luego al abrirlo puede continuarlo. ¿Cómo se hace eso? Desde ya muchas gracias

1 respuesta

Respuesta
1
Jugo RPG, cool,
Que bien que estas invirtiendo tiempo en algo así. Mi recomendación SIGUE en tu proyecto y no te desvíes a otro juego .
Bien, lo del #include no esta mal, pero serie mejor que lo manejaras con un LoadVars, eso si solo podrías leer las variables pero no escribir en ellas
Lo mejor que puedes hacer (lo más recomendable) es usar el Share Object de Flash .
Los shared objects son las "cookies" del Flash, vale decir que sirven para almacenar información acerca de la maquina donde esta corriendo el player, obviamente será información que nosotros queramos obtener y previamente definir.
Para poder manejar los shared objects (una clase propia de flash) cuenta con
4 métodos: SharedObject. Clear, SharedObject. Flush(), SharedObject. GetLocal() y SharedObject. GetSize().
1 Propiedad: SharedObject.data.
Y 1 controlador de eventos: SharedObject. OnStatus.
¿Qué ventajas podemos obtener de los Shared Objects?
-Son de fácil manejo.
-Pueden alojar diversos tipos de datos: number , string , boolean , undefined , null , array , and object (clases propias de XML y Date ). Otras clases built-in y objetos como MovieClip y Function NO pueden ser alojadas en un SharedObject .
-La capacidad de almacenaje puede ser configurable.
-El acceso desde Flash se hace de manera directa.
-Pueden ser usadas en aplicaciones que no corran en el navegador.
Las desventajas están referidas a que solo flash puede leerlas.
Una vez tomando en cuenta todo esto podemos empezar a jugar con nuestro primer ShO. Para crear un ShO se usa el método:
mi_so=SharedObjetc.getLocal(nombre_archivo,ruta)//donde ruta es la ruta a la cual queremos acceder.
Para poder ESCRIBIR en el ShO se usa SharedObject.data.algo, donde "algo" es la variable que queremos alojar.
_so es el sufijo oficial para activar los codes hints de macromedia (esto quiere decir que cualquier objeto con el sufijo _so hará salir los métodos de los ShO en el panel de acciones).
EJ:
Tomar el nombre de usuario desde un campo de texto y mostrarlo en un cuadro de texto.
mi_so=SharedObject.getLocal("file_usuario");
Con esto hemos creado el archivo "file_usuario.sol" (. Sol es la terminación de los archivos ShO) PERO hay un detalle con el método getLocal, cuando se usa verifica si es que ya existe el archivo, si es que no existe entonces lo crea. Entonces como el ShO está pensado para ver si es que el usuario ya existe lo que hará a continuación es ver si es que ya existe el archivo, si no entonces se escriben las variables.
Como primer paso creamos un keyframe vacío en el primer frame de la película. Sobre él la etiqueta "reloaded". En el segundo keyframe colocamos un botón con nombre de instancia "boton" y el campo de texto, con nombre de instancia "nombre", el tercer keyframe tiene el campo de texto llamado "n_usuario", en este tercer keyframe colocamos las siguientes acciones:
n_usuario.text="Bienvenido: "+user
Ahora las acciones importantes van en el frame 2, donde esta el botón. Empezamos con las acciones:
//Creamos la instancia del ShO:
mi_so = SharedObject.getLocal("usuario130");
if(mi_so.data.nombre_usuario == undefined){//si es que la variable "nombre_usuario" aún NO existe o no está definida...
//El botón tiene su labor..
boton.onRelease=function(){
//alojando en la variable "nombre_usuario" del ShO el contenido del campo de texto
mi_so.data.nombre_usuario=_root.nombre.text;
//por si las dudas obligamos al swf a GRABAR los datos
mi_so.flush();
//... Luego, para no tener que cerrar el swf y leer de manera correcta el contenido del ShO, nos vamos al keyframe "reloaded"
GotoAndPlay("reloaded")
}
//Mientras no se haga click en el botón permanecemos parados
Stop()
}else{
//Si es que el ShO ya contiene su variable "nombre_usuario" podemos ir al keyFrame "saludo"
GotoAndStop("saludo")
//alojamos el contenido del ShO en una variable
var user=mi_so.data.nombre_usuario;
trace("ya esta")
}
______________
http://www.x-flash.org/as/docs/shared_object1.htm

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas