Comunidad de diseño web y desarrollo en internet online

[AYUDA] Variable dinamica con igualdades(usar la logica)

Citar            
MensajeEscrito el 21 Abr 2011 06:58 pm
Mirad, voy a hacer un juego online isometrico con tiles, bién pues aprendi un poco de tiles, y he hecho el juego offline, ahora pasarlo online, (yo ya trabaje con este tema de online y se como hacerlo).

Necesito definir una variable DINAMICA, para que haga sus funcionalidades. Por ejemplo;

Código ActionScript :

char = {xtile:2, ytile:1, speed:2, moving:false, width:16, height:16};


Eso seria para offline, un jugador, pero yo quiero hacer esto;

Código ActionScript :

["char"+persona] = {xtile:2, ytile:1, speed:2, moving:false, width:16, height:16};

Que defina eso como un, char y la persona definida anteriormente, por ejemplo; charJavi, entonces asi en todos, que se cree un charJavi, debo cambiar todo donde pone char y poner ["char"+persona], bien pues lo pongo, pero justo en esta linea me da error;

Código ActionScript :

[as]["char"+persona] = {xtile:2, ytile:1, speed:2, moving:false, width:16, height:16};
[/as]


El error dice; "Se ha detectado un '=' inesperado", en cambio si pongo solo char, todo va bien, necesito ayuda.

Gracias de antemano, pff, mil gracias si alguien consigue ayudarme con esto... ojala que si... :), espero tu respuesta, si tú, el que esta mirando el tema.

Por seyder

50 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Abr 2011 11:38 am
Si lo que quieres es variar dinámicamente el nombre del objeto usando notación de Array, usa esto:

this["char"+persona] = {.......}

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2011 12:28 pm
No, para comprobar que estoy seguro que me dice charJavier { }, pues he hecho esto;

Código ActionScript :

lsls.text=this["char"+persona];


Y sale undefined, eso quiere decir que no, no va, :S, porfavor resuelvemelo :P

Por seyder

50 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Abr 2011 12:42 pm
En una peli nueva pon esto

Código ActionScript :

var persona:String = "pepe"
this["char"+persona] = {nombre:"Pepe", puntaje:15}
lsls.text=this["char"+persona]; //esto no tiene sentido, sale Object
lsls.text=this["char"+persona].nombre //esto va mejor, dice Pepe


En el escenario un campo de texto con nombre de instancia lsls
Una vez que hayas comprobado que funciona, vuelve a tu peli y mira alrededor, el error viene del contexto.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2011 01:02 pm
Me dices que no tiene sentido eso, entonces me dices que no tiene sentido LO IMPORTANTE, porque si no tiene sentido una linea que da paso a todo, aver;

Si

Código ActionScript :

lsls.text=this["char"+persona]; //esto no tiene sentido, sale Object 


Me dices que no tiene sentido
Pues esto;

Código ActionScript :

this["char"+persona] = {nombre:"Pepe", xtile:2, ytile:1, speed:2, moving:false, width:16, height:16} 


Tampoco tendra sentido, dira, undefined= lala.

yo quiero que diga solamente esto
charJavier={xtile:2, ytile:1 etc.}

Pero, el Javier se le añade a char, el Javier o Manuel o David, es dinamico, solo quiero que lo represente como un charJavier o charDavid...

Ojalá lo entiendas y me lo resuelvas, si no te queda claro lo que dije, agrega a [email protected] para que te presente mejor la duda, un saludo ;)

Por seyder

50 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Abr 2011 01:08 pm
No me gusta que me pidan que lo resuelva, no me gusta que me quieran agregar al MSN (de hecho ya pusiste otro post pidiendo eso), no lo hagas mas ¿está claro?
Luego cuando pones algo en un campo de texto llamas a su método toString(), estás creando un objeto con propiedades, entonces un campo de texto mostrará [Object object], que es toString sobre un objeto, la cadena que muestras es la forma en que lo escribes en código, y jamás aparecerá en un campo de texto a menos que la armes concatenando caracteres especiales

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2011 02:19 pm
Entiendo, pero me estas diciendo como mostrar un texto, yo no quiero eso, yo quiero asignar unos valores a una variable dinamica...

Pero veo que no hay solucion, entonces mi juego online ya no podrá ser isometrico, seria una pena...
Si tienes alguna idea de como resolver eso...
Gracias

Por seyder

50 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Abr 2011 07:21 pm
Seyder, ¿Si quiera has probado lo que te dice solisarg? Tengo la impresión de que estás aquí discutiendo sobre una teoría de la que no tienes confirmación siquiera.
Lo que dice Solisarg no podría ser más cierto. La forma de crear dinámicamente el objeto que quieres es:

Código ActionScript :

this['char'+persona] = {las propiedades que correspondan}

No veo por qué dices que no tiene sentido, si lo hubieses probado, te habrías dado cuenta de que lo que te dicen es correcto.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 22 Abr 2011 08:12 pm
No, porque para probar si no dice undefined = {, he hecho esto;

Código ActionScript :

lsls.text=this['char'+persona];


Y al probar la pelicula en lsls sale undefined, entonces si hago lo que me dice el, seria undefined = { lala }
Por eso.

Por seyder

50 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Abr 2011 08:37 pm
Vale, al parecer creo que me va, lo siento por no intentarlo, creia que por poner eso no funcionaria, mil gracias a los dos, sobre todo al que me ayudo solisarg.
Perooooo no tan deprisa, en mi juego no tengo que cambiar solo eso, tengo que cambiar todo donde pone char por char+persona y eso, pues bien he empezado a cambiarlo por el buscador y reemplazar, pues me salen 2 errores... mirad;
Esta era ANTERIORMENTE la linea de código;

Código ActionScript :

ob.clip = game.clip.char;


Ahora al reemplazarlo, es asi;

Código ActionScript :

ob.clip = game.clip.this['char'+persona];


Y me da este error; Se espera un nombre de campo después del operador '.'.

Luego en esta linea ANTERIORMENTE era;

Código ActionScript :

ob.clip.char.gotoAndStop(1);


Al reemplazarlo es;

Código ActionScript :

ob.clip.this['char'+persona].gotoAndStop(1);


Y me da el mismo error; Se espera un nombre de campo después del operador '.'.

Espero que alguien sepa solucionarlo, entonces ya tendria todo el juego con nombre dinamico, y si es dinamico, yo ya me las apaño para crearlo online.
He creado varios juegos online SIN TILES, con tiles me surgen mas problemas y errores y ahora que estoy con tiles pues necesito preguntar, espero que alguien me vuelva a resolver la duda, mil gracias de antemano.

Por seyder

50 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Abr 2011 11:07 pm
Quita el "this" y deja "clip". Asumiendo que que "clip" es el nombre del objeto que guarda tus variables dinámicas, si no es ése, usa el nombre correspondiente. El valor de "this" cambia de acuerdo al contexto, así que si las variables estás guarándolas dentro de un Movieclip (u otro objeto) llamado "clip", la sintaxis cambiaría a:

Código ActionScript :

ob.clip = game.clip['char'+persona];


Si no entiendes cómo funciona "this" puedes leer éste artículo de Zah: Ámbito de variables en ActionScript, scope, this o este artículo en mi blog: What the Hell is “This”?

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 23 Abr 2011 01:31 pm
Mil gracias, sois los mejores, los dos. Os daria como puntos pero en cristalab no existen xD, muchisimas gracias :)

Por seyder

50 de clabLevel



 

chrome

 

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