Comunidad de diseño web y desarrollo en internet online

no reconoce removeMovieClip

Citar            
MensajeEscrito el 26 Feb 2008 11:01 am
He creado unos movieClips con attachMovie de un Array y en un momento dado me interesa borrarlos con un boton pero no lo consigo. ¿Por favor algun experto me puede decir que falla? Os pongo el código.
stop();
//hago un array para escogen una flor vinculada
var flor:Array = new Array("blanca", "lila", "groga", "margarida", "margaridados");
function atzar(min, max) {
return Math.round(Math.random()*(max-min)-min);
}
function nouatzar(min, max){
atzardos =min + random (max-min);
}
var valor:Number = 0;
function crearflors() {
var florInicial:MovieClip = new MovieClip();
florInicial = flor[atzar(0, 4)];
if (valor<5) {
valor++;
var florCreada:String = "florInicial"+valor;
novaflor = attachMovie(florInicial, florInicial, this.getNextHighestDepth(), {_x:350, _y:100});
//situamos las flores en el escenario
novaflor._x = atzar(20, 700);
novaflor._y = atzar(20, 100);
//cacambiamos las medidas
nouatzar(25, 70);
novaflor._width = atzardos;
novaflor._height = novaflor._width;
}
}
onEnterFrame = function () {
crearflors();
};
//boton creado en el escenario
bt_tornar.onRelease = function(){
removeMovieClip(florInicial);
}


Gracias de antemano

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Feb 2008 02:23 pm
Lo que pasa es que cuando vos le decis que remueva el movieClip debes exigirle el nivel en el que se encuentra porque desde ese removeMovieClip(florInicial); solo buscas el primer nivel.. Creo que es el primer problema, además el this.getNextHighestDepth() genera un número muy alto. deberías crearle una variable a el nivel de cada foto y luego borrarlas todas juntas!!!

Saludos!!!

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 26 Feb 2008 04:05 pm
Quizá esté un poco espeso pero.... si el remove lo haces usando florInicial que es un MC y no lo actualizas solo te borrará una flor, y si no he entendido mal creas mas de 1.
yo con estos casos lo que hago es, o bien atachar todas las flores dentro de un MC y luego trabajar con un for..in para borrarlas,
o bien hacer un array de flores de modo que siempre tienes las instancias almacenadas y solo tienes q recorrerla para borrarlas.

Espero que te sea de ayuda n_n

Por sebasstian

50 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 26 Feb 2008 04:07 pm
tampoco lo consigo (o no lo se hacer bién).
He cambiado un poco el attachMovie para dejarlo como lo tenia en un principio y así tener mas controlados los niveles y los nombres de los nuevos MC ahora la zona del attachMovie queda así
//antes de la funcion
var valor:Number = 10;
//
if (valor<15) {
valor++;
var florCreada:String = "florInicial"+valor;
novaflor = attachMovie(florInicial, "florCreada", valor, {_x:350, _y:100});

de todas maneras no los elimina ni especificando uno a uno los nuevos MC que genera flor creada
bt_tornar.onRelease = function(){
unloadMovie(florInicial11);
unloadMovie(florInicial12);
unloadMovie(florInicial13);
removeMovieClip(florInicial14);
removeMovieClip(florInicial15);
}

Si ves que es lo que hago mal te agradeceré el consejo, muy experto no soy.

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Feb 2008 04:18 pm
Intenda imprimiendo con un trace el nivel de cada uno (this.getNextHighestDepth()) y así ya sabrías a que nivel pertenece cada MC porque no creo que sea 1, 2, 3.... etc.

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 26 Feb 2008 04:21 pm

Código :

var florCreada:String = "florInicial"+valor;
novaflor = attachMovie(florInicial, "florCreada", valor, {_x:350, _y:100});


Si te fijas florCreada esta bien (nombrefijo + variable) pero en el atach si pones "florCreada" entre comillas le estas dando a todas el nombre "florCreada" porke le pasas un literal no la variable String que has hecho antes. quita las comillas.

Suerte! ^^

Por sebasstian

50 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 26 Feb 2008 08:21 pm
Hola os contesto a los dos
lo del MC entre comillas era una prueba sacandolas tampoco funciona
Lo del trace (this.getNextHighestDepth()) me da 1 2 3 4 5
Referente a meterlo todo dentro de un MC lo que he probado

Código :

this.createEmptyMovieClip("nuevo",0);
function creaflors(){
//
novaflor = nuevo.attachMovie(florInicial, florCreada, this.getNextHighestDepth()), 
//...
//y en el boton
bt_tornar.onRelease = function(){
unloadMovie(nuevo);
}

tampoco las borra
Seguro que algo se me escapa pero mi nivel no da para más.
Gracias a todos y si os apetece seguir con el tema... ahí estaré

Por loponti

51 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Feb 2008 09:10 pm
Sabes que me encontré un super problema con tu código, pero despues de mirarlo y estudiarlo un poco cambié algunas líneas y utilicé el array como limite de MCs:

Código :

stop();
//hago un array para escogen una flor vinculada
var flor:Array = new Array("blanca", "lila", "groga", "margarida", "margaridados");
function atzar(min, max) {
   return Math.round(Math.random()*(max-min)-min);
}
function nouatzar(min, max) {
   atzardos = min+random(max-min);
}
//------------------------
var valor:Number = 0;
//--------------------
function crearflors() {
   var florInicial:MovieClip = new MovieClip();
   florInicial = flor[atzar(1, 4)];
   //--------------
   if (valor<flor.length) {
      valor++;
      //var florCreada:String = "florInicial"+valor;
      var novaflor:MovieClip = attachMovie(flor[valor-1], "florInicial"+valor, this.getNextHighestDepth(), {_x:350, _y:200});
      //situamos las flores en el escenario
      novaflor._x = atzar(20, 500);
      novaflor._y = atzar(20, 100);
      //cacambiamos las medidas
      nouatzar(25,70);
      novaflor._width = atzardos;
      novaflor._height = novaflor._width;
   } else {
      delete onEnterFrame;
      trace("ok!");
   }
}
onEnterFrame = function () {
   trace("creando!");
   crearflors();
}
//boton creado en el escenario
var ruta:MovieClip = this;
bt_tornar.onRelease = function() {
   for (var i:Number = 1; i<=flor.length; i++) {
      ruta["florInicial"+i].removeMovieClip();
   }
};

Saludos!!!

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 27 Feb 2008 08:29 am
OHHH esos corchetes magicos de cuántos problemas me han sacado..!! XDDD

Por sebasstian

50 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 27 Feb 2008 12:03 pm
gracias amigos,
ayer se me corto la comunicacion con cristalab, (no me respondia la página, me daba un error) y no os pude agradecer la ayuda. Ahora me va perfecto.
Tant solo hice una pequeña modificación en el valor<flor.leng ya que para hacer las pruebas reduci el numero de MC nuevos a 5 pero en realidad son más o sea que al valor le he dado <25 y en el for del remove también.

Gracias de nuevo, gente como vosotros hace que los "novatillos" nos atrevamos a más.

Por loponti

51 de clabLevel



Genero:Masculino  

firefox

 

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