Comunidad de diseño web y desarrollo en internet online

cargar Movieclips dinamicos

Citar            
MensajeEscrito el 13 Sep 2011 12:24 pm
Hola Foro, si fuera posible y me dieran una mano con este inconveniente:
Bien tengo en la libreria 4 mc (Fig1,Fig2,Fig3,Fig4) con sus respectivos nombres de instancia, en el escenario tengo 4 mc vacios (mc1,mc2,mc3,mc4) que los quiero usar para ir cargando las figuras, y por ultimo tengo un boton que cuando lo presione necesito que en cada uno de los mc del escenario se vayan cargando las "fig" por un determinado tiempo, de modo que al final queden cargadas las Fig en los mc del escenario.
El codigo (que muestro a continuacion) funciona solo para UNO, es decir me intercala las Fig pero solo en el 1er mc, como puedo hacer, de modo que lo use en los 4?

mi codigo:

Código ActionScript :

//aqui cargo la cantidad de iteraciones para cada mc del escenario
var vecNroItera:Array = new Array(); 
var velocidad:Number = 80;

//funcion para llenar el vector con el nro de iteraciones para los 4 mc del escenario
function creaAleatorios(){
   for (var i = 0; i < 4; i++) {
      var x:Number = Aleatorio(5, 50)
      vecNroItera[i] = x;
   }
}

//funcion para crear aleatorios entre 2 rangos
function Aleatorio(min:Number, max:Number):Number {
    var nroRandom:Number = Math.floor(Math.random() * (max - min + 1)) + min;
    return nroRandom;
}

//esto se realiza cuando se hace clic en el boton q inicia las sobreposiciones de fig
btnMezcla.onRelease=function(){
   creaAleatorios();
   Mezcla(vecNroItera[0]);
} 

function Mezcla(nroItera,movie){
   numeros = 0;
   casino = function () {
      numeros += 1;
      if((numeros%4==0)){
         mc1.attachMovie("Fig1","figurax",1);
      }
      if((numeros%4==1)){
         mc1.attachMovie("Fig2","figurax",1);
      }
      if((numeros%4==2)){
         mc1.attachMovie("Fig3","figurax",1);
      }
      if((numeros%4==3)){
         mc1.attachMovie("Fig4","figurax",1);
      }
                  
      mc1.removeMovieClip();
      t.text = numeros;
      // Esto controla cuantas veces se van hacer las iteraciones
      if (numeros>=nroItera) {
         clearInterval(casino2);
      }
   }
   /// Aqui llamamos a la funcion
   casino2 = setInterval(casino, velocidad);
}

intente poner un For de esta manera 
for (i=0; i<10; i++){
   "mc"+i.attachMovie("Fig"+i,"figurax",1);
}

para que "mc"+i genere mc1, mc2,... y "Fig"+i genere Fig1,Fi2,.. pero no resulta
tb le puse: eval("mc"+i).attachMovie(eval("Fig"+i),"figurax",1);
y probe con : this["mc"+i].attachMovie(this["Fig"+i],"figurax",1);

pero sin éxito

espero puedan darme luces para lograr el cometido
gracias anticipadas por su predisposicion
Rafa

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 13 Sep 2011 01:44 pm
Hay un segundo argumento que no usas al que le llamas movie, que debería ser adone quieres attachar, entonces si lo llamo así por ejemplo>

Mezcla(nroItera,mc4)

Y la función usa movie

Código ActionScript :

function Mezcla(nroItera,movie){ 
   numeros = 0; 
   casino = function () { 
      numeros += 1; 
      if((numeros%4==0)){ 
         movie.attachMovie("Fig1","figurax",1); 
      } else if((numeros%4==1)){ 
         movie.attachMovie("Fig2","figurax",1); 
      } ....


Lograrás que lo haga sobre distintos contenedores. La forma de llamar dinámicamente al contenedor desde un loop sería

var i:Number = 4
this["mc"+i]

As{i podr{ias llamarla desde un loop o similar, es un poco rebuscado como lo tienes, pero si entiendes la lógica lo puedes aplicar

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Sep 2011 09:17 pm
Estimado Jorge, tienes razon en lo del "movie" justamente era para llamar la mc (1,2,3 o4) estaba haciendo pruebas pero no funciona. sobre:
var i:Number = 4
this["mc"+i]

como leeras intente usar eso pero.. no funciona, en tu ejemplo deberia salir mc4 pero ... nada
otra cosa en la instrucción
movie.attachMovie("Fig2","figurax",1);
"fig2" que es un mc esta entre comillas y si hago this["Fig"+1], pues supongo que se pega solo como Fig1 ...sin comillas, com deberia hacerlo???
agradezco tu ayuda
Rafael

Por rafex

6 de clabLevel



 

msie8
Citar            
MensajeEscrito el 13 Sep 2011 09:37 pm
Usando tu loop sería

Código ActionScript :

for (i=0; i<10; i++){ 
   for(var z:Number =1; z<=4; z++)
         this["mc"+i].attachMovie("Fig"+z,"figurax",z); 
} 


Jorge

Eso supone que hay mc1 a mc10 en el escenario, si a todos

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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