Comunidad de diseño web y desarrollo en internet online

Eliminar elementos de la película

Citar            
MensajeEscrito el 10 Oct 2006 08:54 am
Hola a todos, el problema que tengo es a la hora de intentar eliminar los elementos que se van cargando al clickar en los botones de un menú, es decir, al hacer click en otra categoría tengo que eliminar todos los elementos que había cargado al clickar en la categoría anterior porque si no se ven por detrás (espero no estar liando todo) cuando los creo lo hago así:

Código :

btn = _root.attachMovie("articulo_base", "producto"+i, _root.getNextHighestDepth());
            btn._x = 175;
            btn._y = 220+((btn._height)*i);
y al dar en otra categoría lo primero que tengo es esto

Código :

for (var j in _root) {
         //_root[j].unloadMovie();
         if (j.slice(0, 8) == "producto") {
            //trace(j.slice(0, 8));
            _root[j].removeMovieClip();
         }
      }
pero no los elimina, quedan ahi detrás ¬¬ ¬¬ si alguien me puede ayudar se lo agradeceré eternamente, muchas gracias a todos por adelantado.

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 10 Oct 2006 11:02 am
Ponlo asi:

Código :

_root[j].removeMovieClip(this);

o asi:

Código :

removeMovieClip(_root[j]);

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 10 Oct 2006 11:08 am
No veo nada mal, quizas los creas dos veces superpuestos o algo.

No se como lo habras hecho todo, pero yo intentaria crear un contenedor cada vez que accedes a una nueva seccion y meter alli todos los productos que vayas creando, luego, cuando entres en otra seccion, solo tienes que borrar el contenedor y volver a crearlo.

Por dablak

13 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 10 Oct 2006 11:21 am
Muchas gracias a los dos, continuo haciendo pruebas con lo que me comentasteis, ya os diré el resultado ^^ gracias

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 10 Oct 2006 02:57 pm

dablak escribió:

yo intentaria crear un contenedor cada vez que accedes a una nueva seccion y meter alli todos los productos que vayas creando, luego, cuando entres en otra seccion, solo tienes que borrar el contenedor y volver a crearlo.
Podrias darme una pista al respecto ^^ llevo un rato y no acabo de conseguirlo, me hace cosas un poco raras ^^ muchas gracias.

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 10 Oct 2006 03:26 pm

Código :

var contenedor:MovieClip = this.createEmptyMovieClip("contenedor", this.getNextHighestDepth());
contenedor.attachMovie("clip", "clip", 999);
boton.onPress = function() {
   contenedor.unloadMovie();
};

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 10 Oct 2006 04:12 pm
Según buestros comentarios y todo eso ahora tengo algo así

Código :

private function cargamenu(categoria):Void {
      var myMenu:XML = new XML();
      myMenu.ignoreWhite = true;
      myMenu.load("../cliente/productos_xml.php?cat="+categoria);
      myMenu.onLoad = function() {
         contenedor.unloadMovie();
         var contenedor:MovieClip = _root.createEmptyMovieClip("contenedor", _root.getNextHighestDepth());
         for (var i = 0; i<this.firstChild.childNodes.length; i++) {
            var btn;
            btn = contenedor.attachMovie("articulo_base", "producto"+i, _root.getNextHighestDepth());
            btn._x = 175;
            btn._y = 220+((btn._height)*i);

.....
pero todavía sigue sin funcionarme ¬¬ ¬¬ muchas gracias por toda vuestra ayuda y seguiré experimentando ^^ ^^

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 10 Oct 2006 04:57 pm
Creo que deberias poner:

Código :

_root.contenedor.unloadMovie();

Por dablak

13 de clabLevel



Genero:Masculino  

Barcelona

firefox
Citar            
MensajeEscrito el 10 Oct 2006 05:03 pm
Mmm parece que está bien... Ve poniendo traces hasta donde encuentres un undefined y para solucionarlo mira si esto te sirve:
http://www.cristalab.com/tips/28962/ambito-de-variables-en-actionscript-scope-this

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 10 Oct 2006 05:25 pm
Lo estudiaré a fondo, millones de gracias a todos ^^

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 11 Oct 2006 07:58 am

zah escribió:

Mmm parece que está bien... Ve poniendo traces hasta donde encuentres un undefined y para solucionarlo mira si esto te sirve:
http://www.cristalab.com/tips/28962/ambito-de-variables-en-actionscript-scope-this
He leido tu link (muy bueno por cierto (y) ) y creo que el fallo viene porque el codigo que posteé está dentro de un .as y entonces no puedo utilizar _root y esto no? a ver como lo soluciono......

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 11 Oct 2006 10:09 am
Es curioso, miren:

Código :

trace("antes de borrar="+contenedor);
contenedor.unloadMovie();
trace("despues de borrar="+contenedor);
Me devuelve esto la primera vez que pasa
antes de borrar=undefined
despues de borrar=undefined
(que estaría bien pues no se creó contenedor). En cambio las siguientes veces hace
antes de borrar=_level0.contenedor
despues de borrar=_level0.contenedor
cuando entre los dos trace solo está el unload, ya probé de todo la verdad..... ¬¬ ¬¬

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 11 Oct 2006 03:57 pm
Creo que lo solucioné con swapdepths así

Código :

trace("antes de borrar="+contenedor);
         contenedor.swapDepths(0);
         contenedor.removeMovieClip();
         trace("despues de borrar="+contenedor);
Debe ser que getNextHighestDepth() se pasa del límite o algo así y lei que removeMovieClip no funciona si la profundidad se pasa del límite ¬¬ ¬¬ aun no lo tengo muy claro pero funciona ^^ ^^ un millon de gracias a todos.

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox

 

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