Comunidad de diseño web y desarrollo en internet online

Problemas con funciones

Citar            
MensajeEscrito el 14 Jul 2010 05:03 pm
Tengo tres botones "A","B","C" dentro de un sprite, al precionar "A", aparece un MovieClip y al precionar "B", aparece otro y no se como quitar el anterior. No puedo usar removeChild, por que tendria que poner tres removeChild para cada funcion, es decir, un removeChild para cada letra, lo que me produce error, por que si preciono de primero "B" y luego "C", la funcion de "C" posee un remove child para el boton "A" que no se ha precionado y esto me produce un error.
Creo que busco algun codigo que remueva los child existentes, sin escribir remove child.

O usar if, no se, AYUDA POR FAVOR

Código ActionScript :

stop();
var contenedorCentros:Sprite = new Sprite();
var contenedorMcentros:Sprite = new Sprite();
var ppCentros_mc:ppCentrosComerciales = new ppCentrosComerciales();

//Variables de botones
var coliceo_btn:bt_coliceo = new bt_coliceo();
var casona1_btn:bt_casona1 = new bt_casona1();
var casona2_btn:bt_casona2 = new bt_casona2();

//variables de MovieClips
var coliceo_mc:mc_coliceo = new mc_coliceo();
var casona1_mc:mc_casona1 = new mc_casona1();
var casona2_mc:mc_casona2 = new mc_casona2();

this.addChild(contenedorCentros);
contenedorCentros.addChild(contenedorMcentros)
contenedorMcentros.addChild(ppCentros_mc)
ppCentros_mc.x = 0;
ppCentros_mc.y = 120;

//Botones de los centros comerciales
contenedorCentros.addChild(coliceo_btn);
contenedorCentros.addChild(casona1_btn);
casona1_btn.x = 0;
casona1_btn.y = 19;
contenedorCentros.addChild(casona2_btn);
casona2_btn.x = 0;
casona2_btn.y = 38;

coliceo_btn.addEventListener(MouseEvent.CLICK, click_centros);
function click_centros(event:MouseEvent):void{
   ppCentros_mc.visible = false
   contenedorMcentros.addChild(coliceo_mc);
   coliceo_mc.x = 0;
    coliceo_mc.y = 120;
}
casona1_btn.addEventListener(MouseEvent.CLICK, click_casona1);
function click_casona1(event:MouseEvent):void{
   ppCentros_mc.visible = false
   contenedorMcentros.addChild(casona1_mc);
   coliceo_mc.x = 0;
    coliceo_mc.y = 120;
}
// Cuando se ejecuta la siguiente funcion, ¿Como podria hacer para remover el child de las anteriores? Esto en caso de que hallas hecho CLICK en la primera funcion

casona2_btn.addEventListener(MouseEvent.CLICK, click_casona2);
function click_casona2(event:MouseEvent):void{
   ppCentros_mc.visible = false
   contenedorMcentros.addChild(casona2_mc);
   coliceo_mc.x = 0;
    coliceo_mc.y = 120;
}

Por joevenjo

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Jul 2010 02:29 am
si hubieras echo esto flex te ayudo en flash casi nada

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Jul 2010 03:17 am
Menos mal que lo hiciste en Actionscript, si lo hubieras hecho en C# no te hubiera podido ayudar casi nada :)

Idea: usa un solo MovieClip con tres fotogramas, uno para cada imagen que necesite el botón, luego en vez de quitarlo, lo mueves al fotograma que necesites. El addChild hazlo fuera de los handlers del botón y dejalo en visible=false, luego incluso te ahorras tres handlers con este truco (los botones se tienen que llamar bot1, bot2 y bot3)

Código ActionScript :

var coliseo_mc:mc_coliceo = new mc_coliceo();
addChild(coliseo_mc)
coliseo_mc.visible = false
bot1.addEventListener(MouseEvent.CLICK, muestra); 
bot2.addEventListener(MouseEvent.CLICK, muestra);
bot3.addEventListener(MouseEvent.CLICK, muestra);
function muestraevent:MouseEvent):void{ 
   coliseo_mc.visible = true
   coliseo_mc.gotoAndStop(Number(evt.target.name.substr(4))) 
} 


Si lo ubicas bien en tiempo de diseño no hace falta cambiarle el x e y cada vez, sino deberás poner un condicional para según el botón tocado cambiar las coordenadas. En líneas generales, si puedes hacerlo en tiempo de diseño, no hace falta hacerlo todo pro código, a menos que estes motando algo sumamente dinámico

Jorge

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.