Comunidad de diseño web y desarrollo en internet online

Borrar Elemento de Array cuando un usuario cierra SWF.(RED5)

Citar            
MensajeEscrito el 10 Feb 2010 07:28 pm
Hola, mi problema en breve lo dice el titulo, como borrar un elemento del array cuando un usuario cierra el swf del que se encuentra conectado a un servidor RED5 ?, pero se lo explico un poco:

Estoy haciendo un juego online. lo que hago es, primero actualizo la cantidad de conectados.
Entonces, cuando abris el swf, verifica si hay alguien conectado, fijandose si hay elementos en el array personajes, si no hay elementos o no existe, crea el array personajes con un elemento que contenga los datos del usuario(ID,nombre,etc.).
la cantidad de personajes = cantidad de elementos del array, entonces:
cuando se conecto el primer usuario => cantidad de personajes = 1

Si otro mas se conecta, se le agrega otro elemento al array, hasta ahi todo bien, lo que no se hacer es como borrar el elemento del array cuando el usuario se desconecta. no encontre la forma de saber si se desconecto, osea cuando cierra el swf.

Este es el codigo que uso:

Código ActionScript :

import  mx.utils.Delegate;
_root.personaje.posx  =  10
var  nc:NetConnection  =  new  NetConnection();
nc.connect("rtmp://localhost/oflaDemo");
var  so:SharedObject  =  SharedObject.getRemote("luco",  nc.uri,  true);
so.connect(nc);

cpersonajes  =  so.data.personajes.length
if  (cpersonajes==undefined){
    so.data.personajes  =  new  Array()
    cpersonajes=1
    mipersonaje=0
}  else  {
    mipersonaje  =  cpersonajes
    cpersonajes  =  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
so.data.cpersonajes  =  cpersonajes

function onEnterFrame()
  {
    if(_root.mueve){
        so.data.personajes[mipersonaje].posx  =  _root.personaje.posx
        so.data.personajes[mipersonaje].posy  =  _root.personaje.posy
    }

    _root.personaje._x  =  so.data.personajes[mipersonaje].posx
    _root.personaje._y  =  so.data.personajes[mipersonaje].posy
    recibe.text  =  so.data.prueba
}

espero que me puedan ayudar. gracias!

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 02 Mar 2010 06:05 pm
eso se hace desde el servidor usando tu clase applicationadapter , usando el metodo "disconnect(IConnection conn)" buscalo en la documentacion red5 y usando el argumento "conn" que recibes en ese metodo obten el id del usuario, despues obten tu so (desde el mismo server no desde el swf) 'getSharedObject("luco") ' y elimina el elemento del array que concuerde con el id de tu usuario que se desconecto (de alguna forma tendras que relacionar cada elemento con un id )

en general yo utilizo un so con esta estructura : SO -> ["uid" = xxxxx , "uid2"=yyyy , "uid3"= zzzz]

suerte

Por paranoio

75 de clabLevel



 

Mexico

firefox
Citar            
MensajeEscrito el 16 Jul 2010 07:46 pm
Hola amigo serias tan amable de colocar un ejemplo por favor

Por novita123

19 de clabLevel



 

firefox

 

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