Comunidad de diseño web y desarrollo en internet online

Los botones se desactivan en modo fullscreen

Citar            
MensajeEscrito el 12 Mar 2013 11:14 am
Hola a todos,

Tengo un problema con una aplicacion en flash y actionscript 3. Resulta que al poner la aplicación en modo FULLSCREEN me dejan de funcionar los botones. En cuanto salgo del Fullscreen vuelven otra vez a funcionar. Es algo que nunca me había pasado. Mi codigo para activar el fullscreen es este y esta en el primer fotograma del timeline:

Código ActionScript :

stage.displayState=StageDisplayState.FULL_SCREEN;
stage.scaleMode = StageScaleMode.EXACT_FIT;


Y dentro de mis botones (son MovieClips) tengo este código:

Código ActionScript :

buttonMode=true;
this.stage.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent):void
{
  
  MovieClip(this.parent.parent).cont = 0;
  
  switch(e.target.name)
   {
      case "ESP":
         MovieClip(this.parent.parent).timer.start();
         MovieClip(this.parent.parent).gotoAndStop("menu1ESP");
         SoundMixer.stopAll();
         break;
      case "ENG":
         MovieClip(this.parent.parent).timer.start();
         MovieClip(this.parent.parent).gotoAndStop("menu1ENG");
         SoundMixer.stopAll();
         break;
      case "menuB_ESP":
         MovieClip(this.parent.parent).gotoAndStop("menu2ESP");
         break;
      case "menuA_ESP":
         MovieClip(this.parent.parent).gotoAndStop("menu1ESP");
         break;
      case "menuA_ENG":
         MovieClip(this.parent.parent).gotoAndStop("menu1ENG");
         break;   
      case "menuB_ENG":
         MovieClip(this.parent.parent).gotoAndStop("menu2ENG");
         break;
      }
}


¿A alguien le ha pasado? ¿Existe algún parámetro que active y desactive los botones en el modo FullScreen? Le he dado mil vueltas pero nada de nada.

Gracias

Por skymonty

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Mar 2013 11:23 am
No le estás asignando click a botones, sino a toda la pantalla, y luego según a que le haya dado haces una cosa u otra

buttonMode=true;
this.stage.addEventListener(MouseEvent.CLICK, onClick);

Dale el callback a los botones y no a toda la pantalla

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Mar 2013 11:42 am
Hola Jorge, gracias por la rápida respuesta. He probado a, como tu dices, hacer callback a los botones en vez de al stage pero me sigo pasando lo mismo. En código lo que he hecho ha sido sustituir:

this.stage.addEventListener(MouseEvent.CLICK, onClick);

por

this.addEventListener(MouseEvent.CLICK, onClick);

pero nada de nada. Me sigo pasando exactamente lo mismo.

Por skymonty

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Mar 2013 11:50 am
¿Y que es this? ¿Un boton?
Si el boton tiene nombre de instancia miBoton, sería

miBoton.addEventListener(MouseEvent.CLICK, onClick);

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Mar 2013 12:54 pm
Los botones son todos instancias de una misma clase. This es la manera de referirse dentro de la clase a cada instancia del botón. De este manera no tengo que poner 30 addEventListener para detectar el click del ratón si no que con poner uno en la clase me vale. Pero en fullscreen es como si los escuchadores dejaran de funcionar.

Por skymonty

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Mar 2013 01:00 pm
Ok, no se infiere que sea clase del trozo de código que pusiste, sobre todo por la extrema dependencia que implica usar this.parent.parent (cero reusabilidad)
Luego los botones no dejan de funcionar en fullscreen porque sino sería practicamente inusable (si hay problemas con input textfields) Para verificarlo, pon un boton normal con un callback en el timeline (no una clase) y mira si anda

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Mar 2013 02:59 pm
He encontrado el problema. Resulta que tenia un movieclip con alpha=0 fuera del espacio de trabajo y al pasarlo a fullscreen, flash me lo recolocaba en otras coordenadas poniendolo encima de los botones y haciendo que estos no funcionasen. Al salir del fullscreen el movieclip volvía a su posicion inicial fuera del espacio de trabajo. Ahora bien, ¿esto es un error de flash? ¿Como es posible que al pasar a fullscreen las coordenadas x e y de algunos objetos me cambien? Esto si es algo que me ha pasado mas veces y se supone que las coordenadas del stage son algo preciso y que no deberían de fallar en ningún caso. ¿Alguien sabe a que es debido esto?

Por skymonty

6 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Mar 2013 03:05 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Mar 2013 03:10 pm
BuenAS:

Por ahí arriba creo haber leído que utilizas StageScaleMode.EXACT_FIT. Esto te distorsiona el swf cuando se rescala. Prueba a fijarlo en SHOW_ALL para que no distorsione la proporción.

Yo cuando voy a trabajar a fullscreen lo fijo en StageScaleMode.NO_SCALE y me encargo de darle el tamaño correcto a cada elemento (sin que lo rescale Flash, ya sea proporcionalmente o no).

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome

 

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