Comunidad de diseño web y desarrollo en internet online

¿Cómo detectar click con el botón derecho de Mouse en AS3?

Citar            
MensajeEscrito el 07 Ene 2013 05:28 pm
Hola a todos, alguien sabe como se puede capturar el "click con el botón derecho del mouse" en AS3?
Con la función:

Código ActionScript :

myMC.addEventListener(MouseEvent.CLICK, onMouseClick);

Detecto el click con el botón izquierdo, pero no sé como hacer lo mismo pero con el botón derecho.
Alguna idea?

Muchas graicas

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ene 2013 06:08 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Ene 2013 08:09 am
Hola Jorge, he mirado lo que dices y al poner el siguiente código:

Código ActionScript :

import flash.events.MouseEvent;
myMCaddEventListener(MouseEvent.RIGHT_CLICK, onMouseRightClick);

Me da el siguiente error de compilación:
1119: Access of possibly undefined property RIGHT_CLICK through a reference with static type Class.

A que se debe? Tengo que importar alguna otra clase?

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ene 2013 11:29 am
Tienes un error, sería

myMC.addEventListener(MouseEvent.RIGHT_CLICK, onMouseRightClick);

Te comiste un punto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Ene 2013 11:37 am
Hola Jorge, tengo el código bien, el punto me lo dejé al escribir el código.
Por si sirve de algo, estoy trabajando en AS3 + Flash CS4.

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ene 2013 11:47 am
Sorry, MouseEvent.RIGHT_CLICK es parte del core de Flash, y en tu caso ni siquiera identifica la classe MouseEvent (le pone class) O no estás publicando para AS3, o el error viene de otro lado. Haz la siguiente prueba. En una peli nueva, crea un MC, le pones nombre de instancia myMC y solo este código

Código ActionScript :

import flash.events.MouseEvent;
cuad.addEventListener(MouseEvent.RIGHT_CLICK, onMouseRightClick);
function onMouseRightClick(evt:MouseEvent):void{
  trace("right click !!")   
}


No tiene que dar error de compilación, sino ya debes chequear como tienes instalado Flash

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Ene 2013 12:41 pm
Hola Jorge, estoy exportando la película en AS3, el resto de eventos de MouseEvent, me los detecta perfectamente (MouseEvent.CLICK, ...) pero el MouseEvent.RIGHT_CLICK no lo pilla, tampoco en un FLASH nuevo con el código que me comentas. Da el mismo error en tiempo de compilación:
1119: Access of possibly undefined property RIGHT_CLICK through a reference with static type Class.

Alguna idea de que tengo que modificar? Estoy un poco perdido.

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ene 2013 12:54 pm
Mira si en las opciones de publicación no le estás auntando a un flash player muy viejo. Pon el último a ver 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 08 Ene 2013 12:59 pm
Exporto para Flash Player 10, que es el último que me permite.

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ene 2013 11:21 am
Hola a todos, he estado googleando y he visto que para poder usar el evento de botón derecho en Flash, debo poder exportar para Flash Player 11.2, pero el Flash CS4, sólo me permite hasta Flash Player 10.
Cómo puedo hacer para exportar a Flash Player 11.2?
Yo tengo en mi PC instalado Flash Player 11.5.

Alguna idea?

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ene 2013 11:45 am
En donde lo embebes en tu HTML (ya sea por el code que produce Flash mismo u otro como SWFObject) determinas la versión mínima del player requerido. Mira el HTML donde lo tienes, seguro que encuentras el numerito 10 por varios lados, cambialo po 11.2

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Ene 2013 12:05 pm
Hola Jorge, he estado mirando y en este link http://derekknox.com/daklab/2012/03/09/tutorial-how-to-target-flash-player-11-2-in-flash-professional-cs5/ he podido aumentar la exportación de la película a flash player 11.2, que es la que se requiere para poder usar el RIGHT_CLICK, pero al exportar la película me da el siguiente error:
TypeError: Error #2007: El valor del parámetro type debe ser distinto de null.
y mi llamada es esta:

Código ActionScript :

stage.addEventListener(MouseEvent.RIGHT_CLICK, onMouseRightClick);

Que es exactamente igual a esta otra que no da ningún error:

Código ActionScript :

stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);

Alguna idea?

Muchas gracias

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ene 2013 12:15 pm
Usa el string en vez de la constante así el compilador te lo deja pasar

stage.addEventListener("rightClick", onMouseMove);

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Ene 2013 12:26 pm
Hola Jorge, muchas gracias, pero sigue sin funcionar :(
Aquí está el código:

Código ActionScript :

import flash.events.MouseEvent;
stage.addEventListener("rightClick", onMouseRightClick);
private function onMouseRightClick(e:MouseEvent):void
{
   trace("Right Click");
}

Pero sigue apareciéndome el menú contextual y no me muestra el "trace".

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ene 2013 12:51 pm
¿El código que estás poniendo está dentro de una clase? Si es así asegurate que ha sido agregada al DisplayList. Dentro de Flash no funciona, porque el click derecho ya esta asignado, tienes que probarlo en el navegador y hacer alguna otra cosa que no sea trace. Si lo que quieres es modificar el menu contextual, en realidad tienes que trabajar con la clase ContextualMenuItem, http://www.republicofcode.com/tutorials/flash/as3contextmenu/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Ene 2013 01:07 pm
BuenAS:

El error que te está dando es debido a que sigues viendo el swf con el visor de Flash CS4, Para que no te de este error publícalo pulsando F12 EN LUGAR DE HACERLO con Ctrl+Intro.

Por otro lado, la forma que comentas de publicar para Flash Player 11 creo que funciona en Flash CS5 y NO en Flash CS4. Al menos yo no conseguí en su momento configurarlo. Con Flash CS5 no da mayor problema, salvo el que he comentado de ver en swf con el plugin del navegador (publicar con F12).

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Ene 2013 03:14 pm
Bueno, al final lo he conseguido, voy a hacer un poco de resumen por si a alguien le puede servir más adelante:
Primero de todo visitar la siguiente página web, con todos los detallles para poder exportar una película flash en flash player 11.2: http://derekknox.com/daklab/2012/03/09/tutorial-how-to-target-flash-player-11-2-in-flash-professional-cs5/
A continuación un código tal que así en as3:

Código ActionScript :

myMC.addEventListener("rightClick", onMouseRightClick);
myMC.addEventListener("rightMouseDown", onMouseRightDown);
myMC.addEventListener("rightMouseUp", onMouseRightUp);
private function onMouseRightClick(e:MouseEvent):void
{
   trace("onMouseRightClick");
}
private function onMouseRightDown(e:MouseEvent):void
{
   trace("onMouseRightDown");
}
private function onMouseRightUp(e:MouseEvent):void
{
   trace("onMouseRightUp");
}

Una vez tenemos esto, hay que publicarlo y verlo desde el navegador, ya que desde el visor de Flash no funciona.

Espero que les sirva de ayuda.
Muchas gracias a Jorge y Lukánicos, por su paciencia y ayuda

Por Palacio

Claber

198 de clabLevel



 

firefox

 

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