Comunidad de diseño web y desarrollo en internet online

Cargando un mc desde la biblioteca con un boton

Citar            
MensajeEscrito el 10 Ago 2011 06:25 pm
Hola amigos les comento que estoy avanzado en mi juego que estoy creando y al parecer voy bien ahora mi duda es como puedo hacer o que debo hacer para cargar un mc desde la biblioteca pero por medio de un boton, el codigo para cargar un mc desde la biblioteca ya lo se y es con Adchild.

El dilema es como hacer para que dando clic al boton me aparesca un mc y dando otravez clic al boton se quite el mc anterior y aparezca otro mc.

Les anexo el codigo que llevo hasta ahorita

Código :

var movieArray:Array = ["circulo", "cuadrado", "penta"]; 
var aleatorio:String = movieArray[Math.round(Math.random() * movieArray.length)];
 
botoncito.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); 
 
function mouseDownHandler(event:MouseEvent):void 
{ 
   var myMovieClip:MovieClip; 
    
   if (aleatorio == "circulo") 
   { 
      myMovieClip = new circulo(); 
   } 
   else if (aleatorio == "cuadrado") 
   { 
      myMovieClip = new cuadrado(); 
   } 
   else 
   { 
      myMovieClip = new penta(); 
   } 
    
   emptyMC_mc.addChild(myMovieClip); 
   
}



Estoy usando AS3 espero me halla dado explicar y me puedan ayudar, estoy en busca de un ejemplo para que vean lo que en si quiero y de antemano gracias.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 10 Ago 2011 06:34 pm
Si sabes que emptyMC_mc solo tiene un elemento que es el que estás agregando, antes del addChild agrega esto

Código ActionScript :

try{
   emptyMC_mc.removeChildAt(0)
}catch(e:Error){}


Uso try/catch porque la primera vez te dará error, ya que no hay nada en el MC.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Ago 2011 08:22 pm
Pues no me dio algun error ¿?

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 10 Ago 2011 08:50 pm
Modifica ahora lo siguiente y mira si sale algo en el trace:

Código ActionScript :

try{ 
   emptyMC_mc.removeChildAt(0) 
}catch(e:Error){
   trace("Error "+e.message)
}


De todas formas lo importante es que funcione, no el error

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Ago 2011 09:22 pm
Orale ahora me arrojo este mensaje:

Código :

 El índice proporcionado está fuera de los límites.

Entonces eso que quiere decir o que tengo que hacer.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 10 Ago 2011 10:02 pm
Encontre un ejemplo en el cual viene el codigo pero esta en AS 2.0 entonces quisiera ver como podria pasarlo a AS 3.0. pero la idea es la que les muestro a continuacion

http://flash.astalaweb.net/Botones%202/1_Botones%202.asp

y gracias de antemano.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 10 Ago 2011 11:37 pm
Ok, parece que soy demasiado sutil. ¿Hace lo que necesitas o no? Y si no, ¿que hace?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ago 2011 02:23 am
No hace lo que necesito en si y lo que hace es solo mostrarme el mensaje que te pude anteriormente, lo que en si quiero es que me cambie la figura o el mc de mi biblioteca cuando le de clic al boton

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 11 Ago 2011 02:33 am
Mmm, la función debería quedar así:

Código ActionScript :

function mouseDownHandler(event:MouseEvent):void 
{ 
   var myMovieClip:MovieClip; 
    
   if (aleatorio == "circulo") 
   { 
      myMovieClip = new circulo(); 
   } 
   else if (aleatorio == "cuadrado") 
   { 
      myMovieClip = new cuadrado(); 
   } 
   else 
   { 
      myMovieClip = new penta(); 
   } 
    try{  
       emptyMC_mc.removeChildAt(0)   
     }catch(e:Error){ 
        trace("Error "+e.message) 
     }
   emptyMC_mc.addChild(myMovieClip); 
   
}


¿Lo tienes así y no se borra nada? En otras palabras, cuando les das varias veces a los botones los elementos se acumulan dentro de tu clip?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ago 2011 02:55 am
Exacto asi el codigo tal como lo escribiste y no se borrar el primer elemento y de ahi no pasa nada aun cuando presiono el boton hasta que vuelvo a ejecutar de nuevo cambia el mc (figura) por otra diferente que tengo en la biblioteca.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 11 Ago 2011 03:23 am
No entiendo bien tu redacción, pero vamos con la lógica. Dices que no se quita, si no se quita entonces se acumula, es decir tienes 1, luego 2, luego 3 y así sucesivamente. ¿Es esto lo que ocurre?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ago 2011 03:17 pm
No simplemente aparece solo un mc, tengo que volver a cerrar el ejecutable y volverlo abrir para que aparesca otro mc diferente y en si lo que quiero es que con el boton dandole clic aparesca un mc despues de otro clic y aparesca otro mc pero que quite el anterior y asi sucesivamente pero dandole clic al boton

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 11 Ago 2011 03:20 pm
Ok, eso es porque no vuelves a generar el aleatorio en cada click, entonces te pone siempre el mismo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ago 2011 05:22 pm
Ok disculpa la pregunta que te voy hacer pero si como hago eso ya que si copio y pego me manda el mensaje que estoy copiando la funcion o en si que estoy haciendo mal?

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 11 Ago 2011 05:39 pm
Mueve esta línea dentro de la función

var aleatorio:String = movieArray[Math.round(Math.random() * movieArray.length)];

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ago 2011 08:40 pm
Genial el resultado es bueno ya que me muestra los mc cada vez que doy clic en el boton pero me las muestras encimadas, he utilizado este fragmento de codigo pero no me da el resultado que yo ando buscando

Código :

emptyMC_mc.removeChild(myMovieClip);


Que en si lo que quiero es cuando me muestre la primer mc y doy clic de nuevo se quite y muestre otro mc.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 11 Ago 2011 08:49 pm
Esto remueve el elemento suponiendo que haya uno solo>

Código ActionScript :

try{   
       emptyMC_mc.removeChildAt(0)    
     }catch(e:Error){  
        trace("Error "+e.message)  
     } 


Pero puedes quitar todo lo que haya así

Código ActionScript :

var cant:Number = emptyMC_mc.numChildren
for(var i:int = 0; i<cant; i++) emptyMC_mc.removeChildAt(0)


En este caso no hace falta el try/catch, porque si no hay nada el loop no se ejecuta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ago 2011 09:10 pm
Genial amigo gracias ya me funciono como yo queria.

Por stynpy

47 de clabLevel



 

safari
Citar            
MensajeEscrito el 11 Ago 2011 09:30 pm

solisarg escribió:

Esto remueve el elemento suponiendo que haya uno solo>

Código ActionScript :

var cant:Number = emptyMC_mc.numChildren
for(var i:int = 0; i<cant; i++) emptyMC_mc.removeChildAt(0)



Tambien puede hacerse asi:

Código ActionScript :

while (emptyMC_mc.numChildren>0) emptyMC_mc.removeChildAt(0);

Saludos!

Por Camuss

498 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Lima City - Perú

firefox

 

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