la idea es que se puedan conectar varios clientes y tener la lista de personajes en un array. Cada jugador mueve a su personaje y la posicion se va guardando y actualizando, asi se pueden ver como se mueven los otros personajes.
El problema es que todo lo que tengo en el array
Código ActionScript :
so.data.personajes[]se vuelve "undefined" despues de un tiempo
En el primer frame tengo este codigo:
Código ActionScript :
import mx.utils.Delegate; //posx y posy son las variables que cambian cuando el jugador pulsa una tecla (si pulsa derecha entonces posx se le suma un valor) //las defino: _root.personaje.posx = 10 _root.personaje.posy = 10 // crea conexion var nc:NetConnection = new NetConnection(); // conecta al server local RED5 nc.connect("rtmp://190.51.182.6/oflaDemo"); // create StoredObject - pass the name of the shared object, the netConnection URI ("rtmp://localhost/oflaDemo"), and whether or not it's persistant var so:SharedObject = SharedObject.getRemote("simpleChatDemo", nc.uri, false); // vincula el objeto con la conexion so.connect(nc); //cpersonajes = cantidad de personajes cpersonajes = so.data.personajes.length //si no existe un numero.. if (cpersonajes==undefined){ //se crea el array so.data.personajes = new Array() mipersonaje=0 } else { //si ya existe el numero (ya hay alguien jugando) el numero de mi pj es el ultimo mipersonaje = cpersonajes+1 } so.data.personajes[mipersonaje] = new Object so.data.personajes[mipersonaje].nombre = _root.nombre so.data.personajes[mipersonaje].posx = _root.personaje.posx so.data.personajes[mipersonaje].posy = _root.personaje.posy function onEnterFrame() { //guarda los datos del "cliente" al "server" if(_root.mueve){ so.data.personajes[mipersonaje].posx = _root.personaje.posx so.data.personajes[mipersonaje].posy = _root.personaje.posy } trace("a: "+so.data.personajes[mipersonaje].posy ) //carga la posicion actual del "server" en el "cliente" _root.personaje._x = so.data.personajes[mipersonaje].posx _root.personaje._y = so.data.personajes[mipersonaje].posy trace("b: "+so.data.personajes[mipersonaje].posx) }
En el moviclip del Personaje tengo este codigo:
Código ActionScript :
onClipEvent (load) { vel = 3; } onClipEvent (enterFrame) { if (Key.isDown(Key.UP)) { posy = posy - vel } else if (Key.isDown(Key.DOWN)) { posy = posy + vel } else if (Key.isDown(Key.LEFT)) { posx = posx - vel } else if (Key.isDown(Key.RIGHT)) { posx = posx + vel } } onClipEvent (keyDown) { _root.mueve = true; } onClipEvent (keyUp) { _root.mueve = false; }