Air actionscript menu contextuel

Pour afficher un menu contextuel, il suffit d'ajouter un objet FlexNativeMenu, le chargement de ce menu peut se faire en xml ou avec un tableau.

Exemple:

Le fichier mxml:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="init()" >
<mx:Script source="dean.as"/>
<mx:Label id="lbl" x="100" y="10" text="clic droit ici"/>
</mx:WindowedApplication>


Le fichier src/dean.as

import mx.controls.FlexNativeMenu;

public var listeMenu1:Array = [
{label: "Choix 1"},
{label: "Choix 2", enabled: false},
{type: "separator"},
{label: "Choix 3", children: [
{label: "Sous-choix 3-1"},
{label: "Sous-choix 3-2"}
]}
];


private var Menu1:FlexNativeMenu;
private   function init():void{
Menu1 = new FlexNativeMenu();
Menu1.dataProvider = listeMenu1;
Menu1.showRoot = false;
Menu1.setContextMenu(lbl);
}




Pour ajouter une action au clic il faut mettre un écouteur:

Menu1.addEventListener(FlexNativeMenuEvent.ITEM_CLICK,actionClicMenu);


Et la fonction associée:

private function actionClicMenu(e:FlexNativeMenuEvent):void{
if("Choix 1" == e.label){
lbl.text = "bon choix";
}
}


Pour ajouter une action au clic il faut mettre un écouteur:

menuHaut.addEventListener(MenuEvent.ITEM_CLICK, choixMenu);


Et la fonction associée:

private function choixMenu(e:MenuEvent):void{
menuHaut.setStyle("color","red");
}