Click derecho en Flash

En esta oportunidad veremos la forma de personalizar el Click derecho en Flash. Para ello utilizaremos las clase ContextMenu con el cual se puede controlar los elementos del click derecho y la clase ContextMenuItem que controla individualmente los elementos del menú.

clickderecho.gif

Por defecto al hacer click derecho en flash se muestran varias opciones: Zoom, Quality, Play, Loop, entre otros. Lo que haremos será ocultar estas opciones y crear nuestras opciones personalizadas. Lo primero es crear una instancia de la clase ContextMenu, luego utilizamos el método hideBuiltInItems que se encarga de ocultar las opciones por defecto.

  1. var derClk = new ContextMenu();
  2. derClk.hideBuiltInItems();

Items Individuales
Para crear un item nuevo se debe utilizar la clase ContextMenuItem, cual recibe cuatro parámetros: primero el texto a mostrar, la función a ejecutarse al hacer click, un valor booleano que indica si se muestra un separador y el ultimo valor es un booleano que indica si esta activo esta opción.

Veamos unos ejemplos, si deseamos crear un nuevo item del menú llamado Blog y que al hacer click ejecute la función gotoBlog el código sería de la forma:

  1. new ContextMenuItem("Blog", gotoBlog)

Luego si deseamos crear el mismo item, pero esta vez que muestre un separador y que este desactivado se tendría el siguiente código:

  1. new ContextMenuItem("Blog", gotoBlog, true, false)

Agregando Items al Menu
En el paso anterior hemos visto la forma en que se crean nuevos items, pero estos items hay que asignarlo al menu, esto se hace con la función customItems.push de la instancia del menu creada al inicio. Entonces si deseamos crear un menú con cuatro opciones, la primera de ellas desactivada con un separador y las siguientes que llamen a la función gotoURL tendríamos:

  1. var derClk = new ContextMenu();
  2. derClk.hideBuiltInItems();
  3. derClk.customItems.push(new ContextMenuItem("Menu", gotoURL, true, false));
  4. derClk.customItems.push(new ContextMenuItem("Blog", gotoURL, true));  
  5. derClk.customItems.push(new ContextMenuItem("Forum", gotoURL));
  6. derClk.customItems.push(new ContextMenuItem("SpryTube", gotoURL));
  7. _root.menu = derClk;

Como se aprecia al final hemos asignado la instancia del menú al root, significa que el menú personalizado aparecerá en cualquier parte del flash. Si deseamos que por ejemplo el menú se muestre solo al hacer click derecho sobre un botón hay que reemplazar el nombre de instancia del botón en lugar del _root.

Hasta este punto ya hemos personalizado el click derecho, pero aun no hemos implementado la acción que se ejecutará al hacer el click sobre una de las opciones, entonces creamos nuestra función gotoURL la cual verifica que opción se marco y redirecciona a un URL.

  1. function gotoURL(obj, item) {
  2.     switch (item.caption) {
  3.         case "Blog":
  4.             getURL("http://blog.unijimpe.net/");
  5.             break;
  6.         case "Forum":
  7.             getURL("http://forum.unijimpe.net/");
  8.             break;
  9.         case "SpryTube":
  10.             getURL("http://sprytube.unijimpe.net/");
  11.             break;
  12.     }
  13. }

Con esto ya tenemos completo nuestro script para personalizar nuestro click derecho, el resultado lo pueden ver a continuación.

Cargando Flash

Finalmente y como para no perder la costumbre les dejo los archivos fuente para descarga.

Comentarios Total 2 comentarios


Jimena
Publicado: 14/03/2010 2:37 pm

Wow, muy muy pero muy buen tutorial!! es exactamente lo que estaba buscando, mil gracias!!!! :D

Programacion PHP
Publicado: 31/03/2012 5:07 am

eres un crack macho, ya van 5 veces que me sirves mucho. saludos

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)