Comunidad de diseño web y desarrollo en internet online

Problema con attachMovie()

Citar            
MensajeEscrito el 19 Mar 2007 02:14 pm
Hola a todos. Tengo un plano hecho en flash8 al que le voy colocando diferentes elementos.
Tengo un botón para cada elemento, los elementos están el la biblioteca y los llevo al escenario con attachMovie(). El problema es que a veces cuando hago clic en un elemento me borra otro. Ej: tengo dos btn uno "silla" y el otro "mesa", creo las sillas y todo bien pero al momento de crear las mesas por cada una que creo me desaparece alguna silla??? y no puedo darme cuenta por qué.
Les dejo el código que estoy utilizando.
Saludos y gracias.

-----------------------------
stop();
//variables
var A:Number = 0;
var B:Number = 0;
//silla
silla_btn.onRelease = function() {
clip = attachMovie("silla_mc", "silla_mc"+A, A++);
clip._x = 33;
clip._y = 367;
clip.onPress = function() {
timer2 = getTimer()/1000;
if ((timer2-timer)<0.25) {
this._visible = 0;
//trace("doble click");
} else {
timer = getTimer()/1000;
this.startDrag();
}
};
clip.onRelease = function() {
this.stopDrag();
};
};
reset_btn.onRelease = function() {
for (i=0; i<=A; i++) {
_root["silla_mc"+i].removeMovieClip();
}
A = 0;
};
//mesa horizontal
mesaH_btn.onRelease = function() {
clipA = attachMovie("mesaH_mc", "mesaH_mc"+B, B++);
clipA._x = 110.5;
clipA._y = 363.2;
clipA.onPress = function() {
timer2 = getTimer()/1000;
if ((timer2-timer)<0.25) {
this._visible = 0;
//trace("doble click");
} else {
timer = getTimer()/1000;
this.startDrag();
}
};
clipA.onRelease = function() {
this.stopDrag();
};
};
reset_btn.onRelease = function() {
for (i=0; i<=B; i++) {
_root["mesaH_mc"+i].removeMovieClip();
}
B = 0;
};

Por srm

533 de clabLevel

6 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Mar 2007 02:50 pm
por las profundidades,
dos instancias no pueden estar en la misma profundidad.
solucion:
declara ya sea A o B con un valor mayor de 10 (o mayor) y no ambas con 0 (cero) como lo tienes ahora.

salut

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 19 Mar 2007 04:28 pm
Gracias funciona perfecto.
Aprovecho para preguntarte otra cosa que tiene que ver con el depth. Necesito hacer que un mc aparaezca por encima de todos estos elementos.
En este momento tengo este código:

vigas_mc.onRelease = function{
this._visible=1;
}

Lo que necesito es poner en otra línea el depth del mc vigas_mc para que me quede por ensima de los otros.

Mil gracias, enserio

Por srm

533 de clabLevel

6 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Mar 2007 06:05 pm
Échale un vistazo a getNextHighestDepth()

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 20 Mar 2007 01:01 pm
Gracias pero esta vez no lo pude resolver.
Probé de poner al mc que quiero que se vea por ensima de todos my_mc.getNextHighestDepth(); pero nada.
Acá te dejo elcódigo que estoy usando asi les es mas fácil ver dónde está mi error.
Al final del código está el mc vigas_mc que es el que se tiene que ver por ensima del resto. Vale aclarar que está en una capa diferente al resto.


stop();
//variables
var A:Number = 0;
var B:Number = 10;
var C:Number = 20;
var D:Number = 30;
var E:Number = 40;
//silla
silla_btn.onRelease = function() {
clip = attachMovie("silla_mc", "silla_mc"+A, A++);
clip._x = 33;
clip._y = 370;
clip.onPress = function() {
timer2 = getTimer()/1000;
if ((timer2-timer)<0.25) {
this.removeMovieClip();
//trace("doble click");
} else {
timer = getTimer()/1000;
this.startDrag(30, 20, 412, 725);
}
};
clip.onRelease = function() {
this.stopDrag();
};
};
//mesa horizontal
mesaH_btn.onRelease = function() {
clipA = attachMovie("mesaH_mc", "mesaH_mc"+B, B++);
clipA._x = 110.5;
clipA._y = 370;
clipA.onPress = function() {
timer1 = getTimer()/1000;
if ((timer1-timer)<0.25) {
this.removeMovieClip();
//trace("doble click");
} else {
timer = getTimer()/1000;
this.startDrag(30, 20, 412, 725);
}
};
clipA.onRelease = function() {
this.stopDrag();
};
};
//mesa vertical
mesaV_btn.onRelease = function() {
clipB = attachMovie("mesaV_mc", "mesaV_mc"+C, C++);
clipB._x = 215.5;
clipB._y = 375;
clipB.onPress = function() {
timer2 = getTimer()/1000;
if ((timer2-timer)<0.25) {
this.removeMovieClip();
//trace("doble click");
} else {
timer = getTimer()/1000;
this.startDrag(30, 20, 412, 725);
}
};
clipB.onRelease = function() {
this.stopDrag();
};
};
//mesa grande horizontal
mesaGH_btn.onRelease = function() {
clipC = attachMovie("mesaGH_mc", "mesaGH_mc"+D, D++);
clipC._x = 340.5;
clipC._y = 370;
clipC.onPress = function() {
timer2 = getTimer()/1000;
if ((timer2-timer)<0.25) {
this.removeMovieClip();
//trace("doble click");
} else {
timer = getTimer()/1000;
this.startDrag(30, 20, 412, 725);
}
};
clipC.onRelease = function() {
this.stopDrag();
};
};
//mesa grande vertical
mesaGV_btn.onRelease = function() {
clipD = attachMovie("mesaGV_mc", "mesaGV_mc"+E, E++);
clipD._x = 470.5;
clipD._y = 375;
clipD.onPress = function() {
timer2 = getTimer()/1000;
if ((timer2-timer)<0.25) {
this.removeMovieClip();
//trace("doble click");
} else {
timer = getTimer()/1000;
this.startDrag(30, 20, 412, 725);
}
};
clipD.onRelease = function() {
this.stopDrag();
};
};
// boton reset
reset_btn.onRelease = function() {
for (i=0; i<=A; i++) {
_root["silla_mc"+i].removeMovieClip();
}
A = 0;
for (i=10; i<=B; i++) {
_root["mesaH_mc"+i].removeMovieClip();
}
B = 10;
for (i=20; i<=C; i++) {
_root["mesaV_mc"+i].removeMovieClip();
}
C = 20;
for (i=30; i<=D; i++) {
_root["mesaGH_mc"+i].removeMovieClip();
}
D = 30;
for (i=40; i<=E; i++) {
_root["mesaGV_mc"+i].removeMovieClip();
}
C = 40;
};
//mostrar, ocultar vigas
attachMovie("vigas_mc","vigas_mc", getNextHighestDepth());
vigas_ver.onRelease = function() {
vigas_mc._visible = 1;
};
vigas_ocultar.onRelease = function() {
vigas_mc._visible = 0;
};

Por srm

533 de clabLevel

6 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Mar 2007 01:46 pm
Cambiá esta línea:

Código :

attachMovie("vigas_mc","vigas_mc", getNextHighestDepth());
Por esta:

Código :

attachMovie("vigas_mc","vigas_mc", this.getNextHighestDepth());
Y por favor, usá las etiquetas [ code ] y [ /code ] (sin los espacios) para postear tu código.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 20 Mar 2007 04:42 pm
Antes que nada perdón por lo de [code] :(
No se que debo estar haciendo mal porque siguen aparciendo los mc duplicados por ensima de vigas_mc

[code]//mostrar, ocultar vigas
attachMovie("vigas_mc", "vigas_mc", this.getNextHighestDepth());
vigas_mc._x = 15.2;
vigas_mc._y = 19.1;
vigas_ver.onRelease = function() {
vigas_mc._visible = 1;
};
vigas_ocultar.onRelease = function() {
vigas_mc._visible = 0;
};[/code]

Por srm

533 de clabLevel

6 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Mar 2007 05:53 pm
No olvides que en el "onRelease" pasas a estar dentro de dicho MC (vigas_ver o vigas_ocultar) y si no me equivoco, todos están en el mismo contenedor, por lo que debes retroceder.

Código :

attachMovie("vigas_mc", "vigas_mc", this.getNextHighestDepth()); 
vigas_mc._x = 15.2; 
vigas_mc._y = 19.1; 
vigas_ver.onRelease = function() { 
this._parent.vigas_mc._visible = true; 
}; 
vigas_ocultar.onRelease = function() {
this._parent.vigas_mc._visible = false; 
};+

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 21 Mar 2007 12:10 pm
Gracias a todos, ya encontré la solusión.
Para resolverlo tuve que declarar otra variable "E" con un número mayor a las anteriores. Y concatenar esta var en attachMovie a getNextHighestDepth().
Osea que la cosa quedó así

Código :

//variables
var A:Number = 0;
var B:Number = 100;
var C:Number = 200;
var D:Number = 300;
var E:Number = 400;
//mesa (muy similar al resto de los elementos)
mesaH_btn.onRelease = function() {
   clipA = attachMovie("mesaH_mc", "mesaH_mc"+B, B++);
   clipA._x = 105;
   clipA._y = 370;
   clipA.onPress = function() {
      timer1 = getTimer()/1000;
      if ((timer1-timer)<0.25) {
         this._rotation += 90;
         //trace("doble click");
      } else {
         timer = getTimer()/1000;
         this.startDrag(30, 20, 412, 725);
      }
   };
   clipA.onRelease = function() {
      if (this._y>300) {
         this.removeMovieClip();
      }
      this.stopDrag();
   };
};
//mostrar, ocultar vigas
attachMovie("vigas_mc", "vigas_mc", this.getNextHighestDepth()+E);
vigas_mc._x = 15.2;
vigas_mc._y = 19.1;


Gracias a todos XD

Por srm

533 de clabLevel

6 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Mar 2007 12:40 pm
También funciona simplemente con la var "E" sin necesidad de usar getNextHighestDepth() jijiji

Código :

attachMovie("vigas_mc", "vigas_mc", E);

:S

Por srm

533 de clabLevel

6 tutoriales

Genero:Masculino  

firefox

 

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