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ú.
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.
[as]
var derClk = new ContextMenu();
derClk.hideBuiltInItems();
[/as]
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:
[as]
new ContextMenuItem(«Blog», gotoBlog)
[/as]
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:
[as]
new ContextMenuItem(«Blog», gotoBlog, true, false)
[/as]
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:
[as]
var derClk = new ContextMenu();
derClk.hideBuiltInItems();
derClk.customItems.push(new ContextMenuItem(«Menu», gotoURL, true, false));
derClk.customItems.push(new ContextMenuItem(«Blog», gotoURL, true));
derClk.customItems.push(new ContextMenuItem(«Forum», gotoURL));
derClk.customItems.push(new ContextMenuItem(«SpryTube», gotoURL));
_root.menu = derClk;
[/as]
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.
[as]
function gotoURL(obj, item) {
switch (item.caption) {
case «Blog»:
getURL(«http://blog.unijimpe.net/»);
break;
case «Forum»:
getURL(«http://forum.unijimpe.net/»);
break;
case «SpryTube»:
getURL(«http://sprytube.unijimpe.net/»);
break;
}
}
[/as]
Con esto ya tenemos completo nuestro script para personalizar nuestro click derecho, el resultado lo pueden ver a continuación.
[SWF]/wp-content/uploads/2007/09/clickderecho.swf, 300, 200[/SWF]
Finalmente y como para no perder la costumbre les dejo los archivos fuente para descarga.
Comentarios Total 2 comentarios
Publicado: 14/03/2010 2:37 pm
Wow, muy muy pero muy buen tutorial!! es exactamente lo que estaba buscando, mil gracias!!!! :D
Publicado: 31/03/2012 5:07 am
eres un crack macho, ya van 5 veces que me sirves mucho. saludos