Comunidad de diseño web y desarrollo en internet online

Problema con variables

Citar            
MensajeEscrito el 29 Dic 2006 07:01 pm
Hola, soi bastante nuevo en esto del actionscript y agradeceria un poco de ayuda , estoi intentando crear un tetris con flash , i me encontre con el siguiente problema ,

Código :

creaclip(); 
};

function creaclip(){
i = _root.getNextHighestDepth();
tmp = _root.attachMovie
("Lm", "Lm"+i,i);
tmp.onEnterFrame = Moveclip;
tmp._x= 240;
vely = 3;
s = 1;
tmp.Lcom.stop();
set("vely"+s , 3 )
}

en este script, creo las piezas (de momento solo de 1 tipo) a partir de otra , pero yo quiero que estas piezas posean variables diferentes , por ejemplo la pieza 1 var 1 la pieza 2 var 2 para que asi quando una variable cambiara no cambien tambien las de las demas piezas.

tambien tengo otra parte del script donde defino las acciones que hacen las piezas. kizas tmb sirva de ayuda para resolver mi problema.


Código :

function Moveclip() {
this._y+= "vely"+s
if (Key.isDown(Key.RIGHT))
{this._x= this._x + movd}
if (Key.isDown(Key.LEFT))
{ this._x = this._x - move}
if (this.hitTest(_root.dreta))
{_global.movd= 0;}
else{_global.movd = 30}
if (this.hitTest(_root.esquerra))
{_global.move= 0;}
else{_global.move = 30}
if (this.hitTest(_root.inferior))
{vely = 0
_global.movd = 0; 
_global.move = 0;
s = s+1
}}
stop();



Muchas gracias.

[zah]Agregadas etiquetas code[/zah]

Por Nathot

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Dic 2006 08:35 pm
Cual es el problema?

Por muro

13 de clabLevel



Genero:Masculino  

Medellín - Colombia

msie7
Citar            
MensajeEscrito el 29 Dic 2006 11:28 pm
El problema es que no se como hacer que cada pieza que se crea con la funcion tenga una variable diferente.

Por Nathot

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Dic 2006 12:03 am

Código :

instancia=attachMovie("bla","bla"+i,i);
instancia.variable=valor;


Y para recuperarla en un bucle,

Código :

for(i=0;i<n;i++){
trace(this["bla"+i].variable)
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 01 Ene 2007 04:32 pm
Welvo a ser yo de nuevo xD, intenté adaptar lo que me pusiste pero ahora es como si no me leiera la variable vely, os mando el script a ver si podeis decirme lo que esta mal.

Código :

onClipEvent(enterFrame){
function(){ 
creaclip(); 
};

function creaclip(){
i = _root.getNextHighestDepth();
tmp = _root.attachMovie
("Lm", "Lm"+i,i);
tmp.onEnterFrame = Moveclip;
tmp._x= 240;
tmp.vely = 3;
tmp.Lcom.stop();
}
stop();}



Código :

function Moveclip() {
this._y+= this["Lm"+ i].vely ---------------- no se si esta es la forma correcta para llamarla en este caso.
if (Key.isDown(Key.RIGHT))
{this._x= this._x + movd}
if (Key.isDown(Key.LEFT))
{ this._x = this._x - move}
if (this.hitTest(_root.dreta))
{_global.movd= 0;}
else{_global.movd = 30}
if (this.hitTest(_root.esquerra))
{_global.move= 0;}
else{_global.move = 30}
if (this.hitTest(_root.inferior))
{this["Lm"+ i].vely = 0;
_global.movd = 0; 
_global.move = 0;
s = s+1
}}
stop();



Feliz año nuevo!

Por Nathot

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Ene 2007 08:03 pm
Hola!!!

Creo a ver visto una falla

1. function creaclip(){
2. i = _root.getNextHighestDepth();
3. tmp = _root.attachMovie
4. ("Lm", "Lm"+i,i);
5. tmp.onEnterFrame = Moveclip;
6. tmp._x= 240;
7. vely = 3;
8. s = 1;
9. tmp.Lcom.stop();
10. set("vely"+s , 3 )
11. }

Según lo que lei necesitas crear unas variables dinámicamente, pero si miras en la line 4 siempre le mandas el valor de i pero el valor de i es siempre cero (se que es cero por que getNextHighestDepth, por lo general devuelve cero) No estoy muy seguro por que tendría que hacer una prueba. Pero revisa esa parte.

Revisa que i siempre le envía un número diferente, para lo cual puedes entre la 3 y 4 línea escribir

Código :

trace("este es el valor de i"+i);


Espero te ayude (y no halla dicho una babosada)

Por esutoraiki

Claber

548 de clabLevel

4 tutoriales

Genero:Masculino  

Aplicaciones para Web

opera
Citar            
MensajeEscrito el 01 Ene 2007 09:51 pm
gracias por la ayuda, lo probare! a ver si funciona ^^

Por Nathot

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 Ene 2007 11:54 am
Probé lo que me dijiste pero parece que el problema sigue persistiendo , ademas creo k te referias al primer problema que tuve , y este es otro un poco diferente xD

Gracias igualmente

Por Nathot

10 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 02 Ene 2007 01:21 pm
Esto está mal:

Código :

onClipEvent(enterFrame){
function(){ 
creaclip(); 
};

En un fotograma de la línea del tiempo pon:

Código :

this.onEnterFrame=creaclip;


Y mejor no llames a la otra función Movieclip, ya que aunque funcionaría, se confunde con la clase MovieClip

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 02 Ene 2007 01:46 pm
Gracias por la ayuda, pero al final solucione el error de la siguiente forma :

en ves de llmar a la variable vely por

Código :

   this["Lm"+ i].vely


la llame asi:

Código :

this.vely


lo demas parece funcionar correctamente , muchas gracias a todos por la ayuda!!!

Por Nathot

10 de clabLevel



Genero:Masculino  

firefox

 

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