Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

3nov/083

Flex PopUpButton – Menu en PopUp avec une XMLListCollection et labelField

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

Articles similaires

Commentaires (3) Trackbacks (1)
  1. Question

    Sur la ligne ci-dessous :

    menu.labelField = "@label";

    Que représente "@label"?

    Merci

  2. 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.

  3. 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


Leave a comment

(required)