Comunidad de diseño web y desarrollo en internet online

Cargar contenido externo en eventos del Smart Fox Server

Citar            
MensajeEscrito el 20 Jun 2008 07:32 pm
Hola amigos de Cristalab, pueden ayudarme con algo.

Estoy haciendo un juego multiusario con AS3 y Smart Fox Server, en estos dias me econtre con un pequeño problema bien, para representar los avatares de los demas jugadores, en el evento onJoinRoom del cliente smartfox recorro la lista de usuarios de la sala y por cada uno creo un avatar disponible externamente como swf, lo que pasa es que cada vez que avanza en la lista de usuariosel el objeto loader espera a cargar el contenido pero el bucle continua encontrando asi objetos nulos.

Código :

public function onJoinRoom(evt:SFSEvent):void 
      {
         var room:Room = evt.params.room as Room; //Para las propiedades de la sala
         var userList:Object = room.getUserList(); //Lista de usuarios logeados en la sala         
         var avatares = new Array(); //Reinicializar el vector de avatares
         setupMyAvatar();
         lb_connStatus.text = "Logueado en la sala " + room.getId() + " como: " + miNombre;         
         
         for (var i:String in userList) {
            //construyen la lista de los otros usuarios
            var user:User       = userList[i];
            var uName:String    = user.getName();
            var uId:Number      = user.getId();            
            
            if (uName!=miNombre) 
            {
               //se agregan los demás jugadores que ya están en la sala excepto el original
               
               var uVars:Object = user.getVariables(); //Coge las variables de usuario   
               miURL = new URLRequest("../Juegov1.0/personajes/miniaturas/personaje"+ uVars.ava +".swf");
               auxX = uVars.px;
               auxY = uVars.py;
               auxName = uName;
               ldURL2.load(miURL);
                              
            }
         }      
         
      }


cuando ingresa un usuario, a este solo le aparece el primer avatar en la lista, al segundo genera error.

El metodo que se ejecuta en el evento Complete del loader es el siguiente

Código :

public function completoOtro(evento:Event):void{
         var SWF:MovieClip = ldURL2.getChildAt(0) as MovieClip;
         var mc = new MovieClip();
         mc = SWF["avatar"];         
         mc.stop();
         mc.x = auxX;
         mc.y = auxY;
         avatares[auxName] = mc;
         avatarMC.addChild(mc);
      }   


Espero puedan ayudarme gracias

Por caserna

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Jun 2008 01:49 am
deberías tener un loader por cada user
usa:

Código :

...
ldURL2.load(miURL);               
ldURL2.contentLoaderInfo.addEventListener(Event.COMPLETE, fin);
...

además de tener q tener una función genérica para todos

Código :

function fin(e:Event):void{
   trace(e.target)
}

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

clabbrowser
Citar            
MensajeEscrito el 23 Jun 2008 04:13 pm
puedes obtener el Loader asi:

Código :

var t:Loader;
for (var i:int = 0; i<5; i++) {
   t= new Loader();
   t.name = "myLoader"+i;
   t.load( new URLRequest("img/foto"+i+".jpg") );
   t.contentLoaderInfo.addEventListener(Event.COMPLETE, fin);
}
function fin(event:Event):void {
   var loader:Loader = Loader(event.target.loader);
   var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
   trace(" url=" + info.url, loader.name);
}

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

clabbrowser

 

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