Comunidad de diseño web y desarrollo en internet online

ClabServer: ¿instancia de 'Servidor' en una funcion?

Citar            
MensajeEscrito el 17 Ago 2005 01:06 pm
Hola! Tengo un problemilla con el ClabServer. O mas bien con su integracion. Echad un vistazo a esto:

Código :

entrar_mc.onRelease = function() {
   var sala1 = new Servidor(user,_parent.sala_seleccionada);
};
sala1.onLista=function(){
   trace("sala1.onLista ha funcionado");
}


Se conecta a la sala (mirando desde otra ventana de chat abierta), pero el evento 'onLista' no funciona porque la variable 'sala1' esta declarada dentro de la función, luego no puedo acceder desde el exterior.

Si escribo:

Código :

entrar_mc.onRelease = function() {
   _global.sala1 = new Servidor(user,_parent.sala_seleccionada);
};
sala1.onLista=function(){
   trace("sala1.onLista ha funcionado");
}


Tampoco funciona. El caso es que tenía interés en que 'sala1' se declarase dentro de la función; que se declarase en el momento en el que el ratón hace click, para que un supuesto usuario escogiera el numero de sala que quiere y después apretara "entrar" y el chat se conectara a esa sala. ¿Es eso posible?

Gracias por todo! Saludos!

Por Iox

61 de clabLevel



 

latitud: 43º17'38''N longitud: 4º59'47''O

firefox
Citar            
MensajeEscrito el 17 Ago 2005 01:23 pm

Código :

entrar_mc.onRelease = function() {
  _global.sala1 = new Servidor(user,_parent.sala_seleccionada);
  sala1.onLista=function(){
        trace("sala1.onLista ha funcionado");
  }
};


asi :D

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 17 Ago 2005 01:25 pm
ah el _global no hace falta, es asi:

Código :

entrar_mc.onRelease = function() {
  sala1 = new Servidor(user,_parent.sala_seleccionada);
  sala1.onLista=function(){
        trace("sala1.onLista ha funcionado");
  }
}


PD: insisto se deberia poder editar en este foro :roll:

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 17 Ago 2005 02:16 pm
:shock: :o :D ^^ Como para darse de cabezazos contra la pared. Mas sencillo imposible. Se me habia metido en la cabeza la idea de que no podia declarar eventos dentro de la función! Muchísimas gracias, me acabas de alegrar el día!

Por si a alguien le interesa (tambien me ha costado un poquillo deducir lo siguiente, xd):

Código :

entrar_mc.onRelease = function() {
   nombre_sala= "sala"+_parent.sala_seleccionada;
   _global[nombre_sala] = new Servidor(user,_parent.sala_seleccionada);
   //comprobamos que la variable funciona
   sala1.onLista=function(){
      trace("sala1.onLista");
   }
};


Lo que he hecho ha sido cambiar el nombre de la variable del servidor segun la opcion que escoja el usuario, al igual que he hecho con el numero de sala. La unica duda que me queda es si existe alguna opcion para no tener que crear una variable _global, ya que no se que sintaxis usar para hacer lo mismo con var.

^^ Muchas Gracias y Saludos!

Por Iox

61 de clabLevel



 

latitud: 43º17'38''N longitud: 4º59'47''O

firefox
Citar            
MensajeEscrito el 17 Ago 2005 02:29 pm
what? :? que? :? como que no sabes que sintaxis usar y para que, que pretendes hacer con la variable, en serio no entendi nada de tu nueva duda :?

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 17 Ago 2005 09:12 pm
Una cosa
NO declares variables dentro de funciones, o SOLO tendran alcance mientras la función viva; un evento "onRelease" es una función.

Tu programación como tal esta muy desordenada, deberias replanteartela, no metas tanto codigo interno dentro de un boton, es mejor que cambies de frame y en el frame hagas toda la inicialización del "Servidor"

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 18 Ago 2005 05:55 am
En primer lugar gracias por todas las respuestas ^^

Contestando a Maikel:

Código :

nombre_sala= "sala"+_parent.sala_seleccionada;
_global[nombre_sala] = new Servidor(user,_parent.sala_seleccionada); 


En esas dos lineas creo una variable global con un nombre de variable "dinamico", es decir, cambia segun la seleccion del usuario; Si escribiese:

Código :

nombre_sala= "sala"+_parent.sala_seleccionada;
var [nombre_sala] = new Servidor(user,_parent.sala_seleccionada); 


Me daría error se sintaxis; no se como crear una variable local o de linea de tiempo (no global) con un nombre dinamico (espero haberme explicado):P


A Freddie:
Tienes toda la razón :crap:. Mi código es una chapuza y creo que voy a cambiar esa parte para que el boton provoque un cambio de frame en vez de crear funciones dentro de funciones.

De nuevo, gracias por la ayuda! Saludos!

Por Iox

61 de clabLevel



 

latitud: 43º17'38''N longitud: 4º59'47''O

firefox

 

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