Comunidad de diseño web y desarrollo en internet online

MovieClip no responde a "on press" dentro de otro MovieClip

Citar            
MensajeEscrito el 31 May 2007 10:43 am
Muy buenas, a ver si me podeis hechar una mano.
He buscado por otros mensajes y no he encontrado respuesta a este problema concreto, y aunque supongo que la solucion es facil, no consigo dar con ella.
Tengo un "mc_1" al cual le doy el siguiente codigo:

Código :

on (rollOver) {
   this.onEnterFrame = function() {
      if (this._currentframe != 35) {
         this.nextFrame();
      } else {
         this.stop();
         delete this.onEnterFrame;
      }
   };
}
on (rollOut) {
   this.onEnterFrame = function() {
      if (this._currentframe != 1) {
         this.prevFrame();
      } else {
         this.stop();
         delete this.onEnterFrame;
      }
   };
}

Dentro de este "mc_1", tengo otro "mc_2" en el fotograma nº35, al cual le doy el siguiente codigo:

Código :

on (press) {
   trace("me has pulsado");
}

Vamos, mas sencillo imposible (creo yo). El problema es que no reacciona a las acciones que le doy dentro del "mc_2". ¿Existe alguna solucion para este caso? Me parece tenerla delante de las narices y no consigo dar con ella... Uso Flash 8, con actionscript 2 y el player 8. Cualquier ayuda sera muy agradecida. Gracias de antemano.

Por elmaxloco

5 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 31 May 2007 12:08 pm
Pues no sabría decirte...
El código parece correcto...

Podrías probar con escribir el código en los frames, refiriéndote a los MCs con instancias, en vez de poner el código en los mismos MovieClips.
:)

Nota: Cuidado con las rutas! U_U

Por Bleend

Claber

3385 de clabLevel

10 tutoriales
4 articulos

Genero:Masculino   Héroes

Barcelona

firefox
Citar            
MensajeEscrito el 31 May 2007 01:05 pm
La funcionalidad de boton que le das al clip exterior inhibe la funcionalidad del clip o boton interior.

este problema lo puedes solucionar de la siguiente manera.

1) El movieclip exterior no debe tener funcionalidad de boton, es decir, quitale el codigo al clip "mc_1"
2) coloca otro clip ("mc_3") dentro del "mc_1", y ponle el código que le quitaste al primero, colocalo en una capa
inferior de donde esta el "mc_2". Pero en el codigo sustituye todos los "this" por "this._parent".
3) Tambien coloca el codigo al "mc_2" sustituyendo los "this" por "this._parent", esto es porque como se encuentra en una capa superior, inhibe la funcionalidad del clip inferior.

Espero que me hayas entendido.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 31 May 2007 02:06 pm
También, podés simular el onPress con el onMouseDown y el hitTest.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 31 May 2007 03:20 pm

HernanRivas escribió:

También, podés simular el onPress con el onMouseDown y el hitTest.
Si simulas el onPress con el onMouseDown, tu codigo se ejecutara aunque presiones el mouse en cualquier lugar de tu pantalla,
y simular el onPress con el hitTest, no veo como, ya que el boton interior nunca se mueve, y siempre esta ocupando el lugar del boton exterior.

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 31 May 2007 03:34 pm
Qué poca fé...

Código :

miMc.onPress = function () {
trace ("presionado");
};
Es lo mismo que o, mejor dicho, hace lo mismo que:

Código :

miMc.onMouseDown = function () {
if (this.hitTest (_xmouse, _ymouse, true)) {
trace ("presionado");
}
};

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 31 May 2007 04:11 pm

HernanRivas escribió:

También, podés simular el onPress con el onMouseDown y el hitTest.

Lo que hacia falta es el ejemplo... para que lo entendiera

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

msie7
Citar            
MensajeEscrito el 31 May 2007 05:58 pm
el clip principal elimina las acciones de los hijos, como te ijo hernan, maneja en el clip principal
if (this.MouseDown){
if this.hittest(xmouse,ymouse){
aqui lanzas la accion , y asi no acaparas las aaciones de los otros, por cierto la sintaxis esta mal busacla bien (f1)
}
}

Por bch80

66 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 Jun 2007 09:58 am
Gracias, muchas gracias por las aclaraciones. Lamento no haber podido contestar antes, he ido un poco liado... buf. De todas formas finalmente, no tuve que hacer el menu de esa forma, porque el cliente decidio que no le gustaba. Sin embargo, la cosa me ha quedado clara para proximas ocasiones. Gracias de nuevo a todos los que se han molestado en contestar. Un saludo!

Por elmaxloco

5 de clabLevel



Genero:Masculino  

firefox

 

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