Utilisation de mx.controls.Menu
Les Menus sont des instances de mx.controls.Menu. Comme les Flex Tree, les menus requièrent des data providers hiérarchiques. Le code suivant crée un menu et le peuple avec un dataProvider de type XMLListCollection. Il fixe aussi la propriété labelField, comme on le fait pour un composant Tree:
var menu:Menu = new Menu();
var xmlList:XMLList = XMLList('<item label="ActionScript"><item label="Classe"/><item label="Interface"/></item><item label="MXML"><item label="Application"/><item label="Component"/></item>');
menu.dataProvider = new XMLListCollection(xmlList);
menu.labelField = "@label";
Utilisation de PopUpButton
Le composant PopUpButton permet d'associer le bouton avec une pop-up, comme un menu par exemple:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="creationCompleteHandler(event)">
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.controls.Menu;
private var menu:Menu = new Menu();
private var xmlList:XMLList = XMLList('<item label="ActionScript"><item label="Classe"/><item label="Interface"/></item><item label="MXML"><item label="Application"/><item label="Component"/></item>');
private function creationCompleteHandler(event:Event):void{
menu.dataProvider = new XMLListCollection(xmlList);
menu.labelField = "@label";
popUpButton.popUp = menu
}
]]>
</mx:Script>
<mx:PopUpButton id="popUpButton" label="PopUpButton"/>
</mx:Application>
Flex Source Code Download: Télécharger le code source complet de l'application
This movie requires Flash Player 11
14 novembre 2008
Question
Sur la ligne ci-dessous :
menu.labelField = "@label";
Que représente "@label"?
Merci
14 novembre 2008
J'ai trouvé la signification du caractère arobase (@) :
http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/operators.html#attribute_identifier
Identifie les attributs d'un objet XML ou XMLList.
14 novembre 2008
Bonjour,
Effectivement, @label correspondant à la notation e4x pour l'attribut "label".
Pour en savoir plus sur la syntaxe e4x, vous pouvez voir cet article (surtout la fin):
http://www.flex-tutorial.fr/2008/09/24/flex-actionscript-lecture-de-donnees-xml-en-actionscript-3/
Fabien