Comunidad de diseño web y desarrollo en internet online

Multiples Variables

Citar            
MensajeEscrito el 31 Jul 2007 12:04 am
Hola.. Les cuento lo que quiero hacer.

Tengo muchas variables y muchas acciones.. Pero la cantidad de variables y acciones esta definida según cuantos elementos tenga en escena.. Mi idea es hace que estas variables y acciones se creen tan solo con indicarles el numero de objetos que tenga en la escena y no tener que hacer un script largísimo escribiendo las variables q a lo mejor algunas ni las use (es que los elementos en escena van cambiando nunca se sabe si hay mas o menos).. Les pongo un ejemplo

Código :

/* Acciones */
Elemento_1.accion(Array [0]);
Elemento_2. accion(Array [1]);
...etc...
Elemento_50. accion(Array [2]);
Elemento_51. accion(Array [3]);

/* Variables */
Variable_1 = Array [0];
Variable_2= Array [1];
...etc...
Variable_50= Array [2];
Variable_51= Array [3];


Lo que yo quisiera hacer es un campo de texto donde yo indique la cantidad de elementos que va a haber y que genere las variables y acciones sin tener que modificar el script cada ves que el escenario cambie... se me ocurrió hacer esto

Código :

for (I=0; I<Elementos; I++) {
   ¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?
}


El problema es que no sabría como definir las instrucciones :lol:

Alguna ayudita ¿?


Salu2

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 31 Jul 2007 01:20 am
hola que tal zis!! bueno mira no tienes que crear las variables, si estas trabajando con AS2 las variables ya estan creadas, esto es usando un "in"

for(i in this){
trace("MC nombre:"+i);
}

si lo que admeas buscas es agreagar acciones, entonces puedes incluirlas dentro del loop
saludos!!!

Por andres_santos

236 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 Jul 2007 01:39 am
Hola andres.. gracias por responder..
entendi lo del trace pero no entendi lo del "in" :lol:

si me pudieras dejar el ejemplo completo se te agradec de corazon jaja

a otra cosita... se que en AS2 las variables ya estan creadas e tema es que el problema no es son las variables sino el contenido... lo que yo quiero que tengan el contenido automáticamente...
y lo del loop tmapoco lo entendi... :lol:

igual se te agradec la respuesta!!

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 31 Jul 2007 01:48 am
hola que tal zis! bueno mira el "in" significa en pocas palabras "regresa todo lo que haya dentro de lo q tu quieras" desde un objeto hasta una cadena....y como los niveles estan hechos por objetos donde se almacenan sus nombres, entonces te regresa los nombres de los MC que haya en el nivel q especificaste, en el caso de una cadena regresa los indices....para agrerles por ejemplo una accion o una variable dentro de si entonces puedes hacer algo asi:

for(i in this){
this[i].foo="jo aqui andres saludando"
}

Por andres_santos

236 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 Jul 2007 02:18 am
Andrés... gracias por tus respuestas pero sigo sin comprender.. o a lo mejor estoy entendiendo otra cosa..

lo que no entiendo es eso de
for(i in this)

"i" se que es la variable, in ¿? (me mataste jaja) y this porque ahí? no debería ir el "i++" perdón pero no comprendí..

ahora si yo quisiera que como resultado me diera esto exactamente:

Código :

hex_X.aplicarColorMC(Variable_Cont[X]);
save_X = Variable_Cont[X];

/* X seria el valor que debe darle la variable “i” */


Como deberia hacerlo.. te muestro q es lo que tengo:

Código :

for (I=0; I<Elementos; I++) {
hex_[i].aplicarColorMC(Variable_Cont[i]);
   save_[i] = Variable_Cont[i];
}


Pero esta mal bah no me funciona… :cool:

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 31 Jul 2007 02:33 am
hola zis! bueno mira "in" es como un comodín, por ejemplo si usaras length tendrias q conocer la longitud exacta no? por ejemplo:
var cadena:Array=new Array(5);
//en ese caso sí conozco la longitud de la cadena q es 5 pero que tal si no? para eso es "in" da vueltas hasta encontrar el útlimo elemento....como se puede aplicar a tu ejercicio, simple "in" busca el nombre de todos los MC del nivel que quieres, claro que encontraras basura de flash que no sabias q existia, e incluso te da el nombre de todas las variables (del nivel que estas especificando) asi pues una vez conocidos los MC que tienes en ese nivel deseado procedes a meterles las variables "a la fuerza" otro ejemplo

for(MCs in _root.mc_interior){
if(typeof(MCs)=="movieClip"){
trace("movieclip encontrado con nombre"+MCs);
}
}

saludos!!!

Por andres_santos

236 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 Jul 2007 02:14 pm
El problema de usar in es que al revisar todas las propiedades e instancias del _root el player pierde tiempo.

Lo mejor es almacenar las referencias a todo lo que haga falta en un Array.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 31 Jul 2007 04:18 pm
Gracias por responder.. = ya habia encontrado la solucion.. se las dejo por si la necesitan:

Código :

var Elemento_Nro:Number = 5; // Cantidad de elementos

for (var I:Number=0; I<Elemento_Nro; I++) {
   eval("elemnto_"+I).Acción(Contenido);
   set("variable_"+I, Contenido);
}


Gracias y saludos

A por cierto alguien sabe porque no puedo ver los mensajes de Trace en el panel de salida?

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 01 Ago 2007 02:40 pm
Solo los podés ver en el .fla

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox

 

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