Comunidad de diseño web y desarrollo en internet online

programar función general para aplicarla a todos los clips

Citar            
MensajeEscrito el 21 Nov 2009 05:41 pm
Buenas tardes!
Les escribo para pedir ayuda sobre un tema que no sé cómo resolver... les explico.
Tengo un archivo preparado para ayudar a un niño autista a interiorizar el concepto arriba/abajo. Ya tengo la programación hecha y funciona, pero quiero mejorarlo y ahí es dónde me encuentro con un problema.
Creo una función [crearPartida()]. Dentro de esta función está la programación de una "botonera" donde se muestran una serie de clips. Para adelantar trabajo, la botonera la he vinculado desde la biblioteca pero los clips que hay dentro de la botonera también están colocados e instanciados dentro de la botonera. Como veréis más adelante, para presionar sobre un clip tengo que llamarla con sintaxis de puntos (botonera.mini1.onPress {}).
A continuación creo una función aleatoria que dé como resultado 1 ó 2. Si da uno le pido que deje el objeto arriba, si no se realiza la operación contraria.
Para agilizar el trabajo, he desarrollado la programación de manera general para poder usarla con todos los clips de la botonera cambiando sólo la "var n:Number = X" que hay dentro de cada "botonera.mini". Si trabajo con "botonera.mini1" la variable es 1, si trabajo con "botonera.mini2" la variable es 2... y así sucesivamente.
Lo que pasa es que de esta manera las líneas de programación se harán muy largas, puesto que tengo que importar muchos clips desde la botonera y tengo que usar todas la programación para todos los clips.
¿Cómo puedo hacer que estas líneas de programación fucnionen para todos los clips a partir de una variable? Lo he intentado con un for(n=0; n<=5, n++){} que tiene como límite el total de clips para que los instancie todos, pero no puedo. No puedo, por ejemplo, adjudicar una variable a las instancias de botonera. Por ejemplo, la expresion this["botonera.mini"+n].onPress no funciona.
Espero no haberme hecho pesado. Ojalá me puedan ayudar porque no sé cómo salir del atolladero... ¡MUCHAS GRACIAS POR SU ATENCIÓN!
Atentamente
--
Digid

Código ActionScript :

botonera.mini1.onPress = function() {
         attachMovie("clip"+n,"clip"+n,10000);
         _root["clip"+n]._x = esquerraX;
         _root["clip"+n]._y = posY;
//onPress=====================================================================================
         _root["clip"+n].onPress = function() {
                        //asignación de variable a la función                         
                         var n:Number = 1;
            var n_aleatorio:Number = randRang(1, 2);
            function randRang(min:Number, max:Number):Number {
               var n_aleatorio:Number = Math.floor(Math.random()*(max-min+1))+min;
               return n_aleatorio;
               trace(n_aleatorio);
            }
            if (n_aleatorio == 1) {
               audio_arriba.start();
            }
            if (n_aleatori == 2) {
               audio_abajo.start();
            }
            startDrag(this)
//onRelease==================================================================================
            _root["clip"+n].onRelease = function() {
//1r condicional===============================================================================
               if (n_aleatorio == 1) {
                  //resultado de la acción correcta
                     };
                  } else {
                     //resultado de la acción incorrecta
                  }
               }               //2ºcondicional========================================================================
               if (n_aleatori == 2) {
                  //resultado de la acción correcta
                  } else {
                  //resultado de la acción incorrecta
                  }
               }
               stopDrag();
            };
         };
      };
   }
}

Por digid

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Nov 2009 09:23 pm
bueno al final no entendi bien tu problema xD
sin embargo tu dices que si tratas de poner esto

Código ActionScript :

this["botonera.mini"+n].onPress

no funciona.. y si asi es no puedes poner las dos instancias.. sim embargo "botonera" no va a cambiar no??
si es asi.. entonces te peudes referiri a mini1, mini2 etc de la siegueitne forma

Código ActionScript :

this.botonera["mini"+n].onPress
//O ASI TAMBIEN:
this["botonera"]["mini"+n].onPress


esperemso te sirva, digo ese codigo si sirve... xD
suerte! ^^

Por darkskullDA

56 de clabLevel



Genero:Masculino  

Desarrollador Web Profesional

firefox
Citar            
MensajeEscrito el 21 Nov 2009 11:47 pm
Muchas gracias por tu respuesta, probaré si funciona. He vuelto a leer el post que mandé y ciertamente no me explico mucho. En realidad lo que quiero conseguir es crear una sola función que valga para todos los clips. Es decir, que todas las instancias sean globales. De esta manera poder acortar la carga de programación.
Seguiré intentándolo. Si ahora me expliqué mejor y me pueden echar un cable estaré muy agradecido. Muchas gracias de nuevo por vuestra atención!
--
Digid

Por digid

15 de clabLevel



 

firefox

 

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