Comunidad de diseño web y desarrollo en internet online

Moverme a otra escena desde un MovieClip con una definición de clase

Citar            
MensajeEscrito el 26 Mar 2011 11:09 am
Buenos días, a ver si me podeis echar una mano.
Tengo esta clase asociada a un movieclip

Código ActionScript :

package  {
   
   import flash.display.MovieClip;
   import flash.events.*;
   import flash.media.SoundMixer;
   
   
   public class Botonera extends MovieClip {
      
      public function Botonera() {
         init();
      }
      protected function init():void {
         
         b1.addEventListener(MouseEvent.MOUSE_DOWN, pantalla1);
         b2.addEventListener(MouseEvent.MOUSE_DOWN, pantalla2);
         b3.addEventListener(MouseEvent.MOUSE_DOWN, pantalla3);
         b4.addEventListener(MouseEvent.MOUSE_DOWN, pantalla4);
         b5.addEventListener(MouseEvent.MOUSE_DOWN, pantalla5);
         b6.addEventListener(MouseEvent.MOUSE_DOWN, pantalla6);
         b7.addEventListener(MouseEvent.MOUSE_DOWN, pantalla7);
         
         function pantalla1 (event:MouseEvent):void {
            gotoAndPlay(1, "1");
            SoundMixer.stopAll();
         }
         function pantalla2 (event:MouseEvent):void {
            gotoAndPlay(1, "2");
            SoundMixer.stopAll();
         }
         function pantalla3 (event:MouseEvent):void {
            gotoAndPlay(1, "3");
            SoundMixer.stopAll();
         }
         function pantalla4 (event:MouseEvent):void {
            gotoAndPlay(1, "4");
            SoundMixer.stopAll();
         }
         function pantalla5 (event:MouseEvent):void {
            gotoAndPlay(1, "5");
            SoundMixer.stopAll();
         }
         function pantalla6 (event:MouseEvent):void {
            gotoAndPlay(1, "6");
            SoundMixer.stopAll();
         }
         function pantalla7 (event:MouseEvent):void {
            gotoAndPlay(1, "7");
            SoundMixer.stopAll();
         }
      }
   }
   
}

Bien, es un movieclip con 7 botones dentro, el movieclip ya está en cada una de las escenas, cada botón quiero que me lleve a su escena correspondiente, la cosa es que me dice cuando presiono cualquiera de los botones que no existe esa escena. Que hago mal?
He probado, en vez de con escenas, poner el equivalente en numero de fotogramas, y tampoco funciona. Supongo que le estoy diciendo que vaya a las escenas dentro del botón y por eso no las encuentra. Cómo puedo acceder a las escenas con la pulsación de dichos botones?
Muchas gracias de antemano.
Un saludo.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Mar 2011 12:47 pm
Uno de los mas viejos bugs de Flash es que el gotoAndStop falle al ir a una escena. Usa etiquetas de fotograma para los gotoAndStop

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Mar 2011 01:04 pm
Ok, lo pruebo y comento a ver que tal. Muchas gracias

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Mar 2011 01:15 pm
Pues no me funciona tampoco. La estructura de los botones sería esta:

Código ActionScript :

stage.botonera.b1
··
··
··
stage.botonera.b7

Creo que por ahí va el fallo, que le estoy diciendo gotoAndPlay dentro del botón mismo, corrigeme si me equivoco.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Mar 2011 01:17 pm
Entonces usa MovieCLip(root).gotoAndPlay
Igual si vas a seguir programando con el timeline, no es muy aconsejable usar clases, porque te encontrarás con todo tipo de errores ya que la idea de usar clases es no desparramar cosas en el timeline y menos en escenas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Mar 2011 01:22 pm
Muchas gracias. Por eso justamente he hecho la clase, para no repetir el código en todas las escenas, ya que la botonera aparece en las 7. Cómo sería lo que me has comentado?

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Mar 2011 01:27 pm
Acabo de probar tal como lo has puesto y ya no me salta el error, perfecto, ahora sólo me queda que vaya a la escena correspondiente jeje

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Mar 2011 01:32 pm
Vale, ahora no me reconocia las etiquetas de los fotogramas, he vuelto a mandarlo a escenas y muy bien, la clase me ha quedado así:

Código ActionScript :

package  {
   
   import flash.display.MovieClip;
   import flash.events.*;
   import flash.media.SoundMixer;
   
   
   public class Botonera extends MovieClip {
      
      public function Botonera() {
         init();
      }
      protected function init():void {
         
         b1.addEventListener(MouseEvent.MOUSE_DOWN, pantalla1);
         b2.addEventListener(MouseEvent.MOUSE_DOWN, pantalla2);
         b3.addEventListener(MouseEvent.MOUSE_DOWN, pantalla3);
         b4.addEventListener(MouseEvent.MOUSE_DOWN, pantalla4);
         b5.addEventListener(MouseEvent.MOUSE_DOWN, pantalla5);
         b6.addEventListener(MouseEvent.MOUSE_DOWN, pantalla6);
         b7.addEventListener(MouseEvent.MOUSE_DOWN, pantalla7);
         
         function pantalla1 (event:MouseEvent):void {
            MovieClip(root).gotoAndPlay(1, "1");
            SoundMixer.stopAll();
         }
         function pantalla2 (event:MouseEvent):void {
            MovieClip(root).gotoAndPlay(1, "2");
            SoundMixer.stopAll();
         }
         function pantalla3 (event:MouseEvent):void {
            MovieClip(root).gotoAndPlay(1, "3");
            SoundMixer.stopAll();
         }
         function pantalla4 (event:MouseEvent):void {
            MovieClip(root).gotoAndPlay(1, "4");
            SoundMixer.stopAll();
         }
         function pantalla5 (event:MouseEvent):void {
            MovieClip(root).gotoAndPlay(1, "5");
            SoundMixer.stopAll();
         }
         function pantalla6 (event:MouseEvent):void {
            MovieClip(root).gotoAndPlay(1, "6");
            SoundMixer.stopAll();
         }
         function pantalla7 (event:MouseEvent):void {
            MovieClip(root).gotoAndPlay(1, "7");
            SoundMixer.stopAll();
         }
      }
   }
   
}

Así que muy bien. Una pregunta. Que hace exactamente MovieClip(root)? Funcionar, funciona, pero me gustaría entenderlo. Muchas gracias.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Mar 2011 01:32 pm
Lo pones un una sola y no usas escenas. root es la escena de tiempo principal, tienes que hacerle un cast a MovieClip porque sino el compilador te dice que gotoAndPlay no existe ... AS3 es mas estricto y fuertemente tipado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Mar 2011 01:37 pm
Si que había puesto las etiquetas en la línea principal, aunque no sé si bien, pero bueno, se nota que estoy muy pez? jeje.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Mar 2011 01:39 pm
Correcto, eso era justamente lo que pasaba. Muchas gracias y un saludo.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie

 

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