2009-10-16 7 views
8

Je suis en train de développer une application flexible et je souhaite ajouter un menu contextuel. Je l'ai eu avec ce code:Masquer les options par défaut dans le menu contextuel du clic droit en flex

var myMenu:ContextMenu = new ContextMenu(); 
myMenu.hideBuiltInItems(); 
var defaultItems:ContextMenuBuiltInItems = myMenu.builtInItems; 
defaultItems.print = false; 

var item:ContextMenuItem = new ContextMenuItem("Go to google"); 
myMenu.customItems.push(item); 
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler); 

this.contextMenu = myMenu; 

Mais j'ai un problème. Le menu affiche quatre options par défaut (Paramètres, sur le flash ...) Je voudrais les cacher. Avec defaultItems.print = false; J'ai caché l'option d'impression, mais je ne sais pas comment cacher les autres. Est-ce que quelqu'un sait comment faire cela? Merci.

+0

Kezem, je suis tombé sur ce problème de travail trop sur une application Flex qui remplaçait une application Java Swing. Certaines fonctionnalités étaient exposées dans un menu contextuel et les paramètres étaient source de confusion pour nos utilisateurs. J'ai fait des recherches en ligne et trouvé la solution que j'ai décrite ci-dessous. –

Répondre

9

Comme référence pour ContextMenu dit,

Vous ne pouvez pas supprimer le menu Paramètres élément dans le menu contextuel. L'élément de menu Paramètres est requis dans Flash afin que les utilisateurs puissent accéder aux paramètres affectant la confidentialité et à leur ordinateur. Vous aussi ne peut pas supprimer l'élément de menu À propos, qui est requis pour que les utilisateurs puissent trouver quelle version de Flash Player ils utilisent.

Vous aurez juste à vivre avec les articles Settings et About. Pour les autres éléments par défaut, voir la référence pour ContextMenuBuiltInItems.

+0

Il existe toujours une solution de contournement. Découvrez ma réponse. –

14

Il existe une technique pour masquer les paramètres, à propos de flash, etc. dans le menu contextuel de Flash. Le concept de haut niveau consiste à utiliser JavaScript dans le conteneur HTML pour désactiver le clic droit sur le fichier SWF. Capturez l'événement et transférez-le à votre application Flex à l'aide de l'API ExternalInterface qui vous permet d'appeler des fonctions Flex à partir de JavaScript. Appelez une fonction définie dans votre application Flex pour afficher un ContextMenu personnalisé avec uniquement les éléments de menu souhaités. Cela contourne le comportement câblé dans Flash/Flex où un clic droit de la souris provoque toujours un ContextMenu avec les paramètres, à propos de choses à venir.

Une procédure pas à pas détaillé peut être trouvé à ce link.

+0

très hacky mais cool! :-) – nalply

Questions connexes