Le puse un try catch porque no sé si, caso de que no exista el botón getChildByName devuelve null o un error, pero se me olvido "cachar" el error
Así que, debería ser
Código ActionScript :
for (var i:int=0;i<30;i++){
try{
var mc:DisplayList=getChildByName("boton"+i.toString());
removeChild(mc);
}catch (e:Error){
continue;
}
}
ó, si devolviese null, escribiríamos mejor
Código ActionScript :
for (var i:int=0;i<30;i++){
var mc:DisplayList=getChildByName("boton"+i.toString());
if (mc!=null){
removeChild(mc);
}else{
break
}
}
Lo de la variable. Para manejar un MC ó un Sprite o lo que sea, lo realizamos mediante una "variable que haga referencia" al Objeto. Así, p.e. al principio has escrito
Código ActionScript :
var boton:Botonchico = new Botonchico()
ese "boton" es una variable que hace referencia a tu Objeto BotonChico. Una variable que, después de ejecutarse su función desaparece al haberla definida dentro de una función. Sí, en Flash estamos constantemente creando y eliminando variables que hacen referencia a MCs
De hecho, cuando tenemos un MC con un "nombre de instancia", lo que realmente tenemos en Flash es una "variable que hace referencia al MC". Lo que pasa es que esta variable, pertenece a nuestra película principal y permanece a lo largo de toda la vida de la película.
NOTA:No leí demasiado bien tu código. en lugar de "contenedor" debería haber puesto "_control" (que es donde están los botones)
Código ActionScript :
for each (var mc:DisplayObject in _control){
contenedor.removeChild(mc)
}
//ó
while (_control.numChildren>0){
_control.removeChildAt(0)
}
o, puesto que he visto que añades los botones en la posición 3
Código ActionScript :
while (_control.numChildren>3){
_control.removeChildAt(3)
}
Y sí, si lo queremos hacer por nombre, debería ser
Código ActionScript :
//a la hora de borrarlos
for (var i:int=0;i<30;i++){
try{
var mc:DisplayList=_control.getChildByName("boton"+i.toString());
_control.removeChild(mc);
}catch (e:Error){
continue;
}
}
//ó
for (var i:int=0;i<30;i++){
var mc:DisplayList=_control.getChildByName("boton"+i.toString());
if (mc!=null){
_control.removeChild(mc);
}else{
break
}
}