Easy-Micro

ESPACEMEMBRE ActionScript
Composants

Les composants Flash

Flash propose des composant (menu Fenêtre/Composants) à base de liste, tel que List, DataGrid (afficher des données dans une grille de lignes et de colonnes), TileList (images sous forme de mosaïque) ou ComboBox (liste déroulante).

Exemple de composant: une combobox (menu déroulant)
L'exemple ci-dessous affecte une liste à une combobox via la classe DataProvider (Fournisseur de données).

Exemple ComboBox en AS3 (une combo "macombo" sur la scène)

// import de la classe DataProvider obligatoire
import fl.data.DataProvider;

// Remplissage
var mesItems:Array = [
{label:"Item 1", data:"Donnée 1"},
{label:"Item 2", data:"Donnée 2"},
{label:"Item 3", data:"Donnée 3"},
{label:"Item 4", data:"Donnée 4"},
{label:"Item 5", data:"Donnée 5"},
];

// Affectation du contenu
macombo.dataProvider = new DataProvider(mesItems);


Pour la création dynamique d'une ComboBox en AS3, on utilise la classe ComboBox et toujours la classe DataProvider pour l'affectation des données.

Exemple de création dynamique d'une ComboBox en AS3 (rien sur la scène)

// imports des classes ComboBox et DataProvider obligatoire
import fl.data.DataProvider;
import fl.controls.ComboBox;

// Liste des données
var mesItems:Array = [
{label:"Item 1", data:"Donnée 1"},
{label:"Item 2", data:"Donnée 2"},
{label:"Item 3", data:"Donnée 3"},
{label:"Item 4", data:"Donnée 4"},
{label:"Item 5", data:"Donnée 5"},
];

// Création dynamique
var macombo:ComboBox = new ComboBox();

// Propriétés de la combo
macombo.dropdownWidth = 210;
macombo.width = 200;
macombo.move(150, 50);
macombo.prompt = "Faite un choix";

// Affectation du contenu
macombo.dataProvider = new DataProvider(mesItems);

// affichage de la combo
addChild(macombo);

On pourrait rajouter une fonction qui affiche (dans la fenêtre de sortie) la valeur de l'item sélectionné. On utilise pour cela, la classe ComponentEvent (Evènement de composant).

suite de l'exemple : fonction d'affichage (AS3)

// import de la classe ComponentEvent obligatoire
import fl.events.ComponentEvent;

// Appel de fonction selon la sélection
macombo.addEventListener(Event.CHANGE, quelItem);

function quelItem(event:Event):void {
switch(macombo.selectedItem.data) {
case "Donnée 1":
trace("1 est choisi !");
break;
case "Donnée 2":
trace("2 est choisi !");
break;
}
}


L'exemple suivant (ci-dessous) affecte une liste à une combobox. Il définit la propriété width du composant ComboBox en fonction de la largeur du texte de l'invite et définit la propriété dropdownWidth de manière � ce qu'elle soit légèrement plus étendue pour pouvoir prendre en charge les noms les plus long.

Exemple de menu de redirection en AS3

// imports obligatoire
import fl.controls.ComboBox;
import fl.data.DataProvider;
import flash.net.navigateToURL;

// Liste des données (adresse de sites web)
var mesSitesWeb:Array = [
{label:"Incontournable", data:"http://www.easy-micro.org/"},
{label:"Sailing away", data:"http://www.easyvoile.com"},
{label:"Patchwork et broderie", data:"http://www.laineoucoton.com"},
];

var macombo:ComboBox = new ComboBox();
macombo.dropdownWidth = 210;
macombo.width = 200;
macombo.move(150, 50);
macombo.prompt = "Mes Sites Web";
macombo.dataProvider = new DataProvider(mesSitesWeb);
macombo.addEventListener(Event.CHANGE, changement);

addChild(macombo);

function changement(event:Event):void {
var marequette:URLRequest = new URLRequest();
marequette.url = ComboBox(event.target).selectedItem.data;
navigateToURL(marequette);
macombo.selectedIndex = -1;
}

L'exemple précédent affecte à une combobox une liste de site Web. Il définit la propriété width du composant ComboBox en fonction de la largeur du texte de l'invite et définit la propriété dropdownWidth de manière à ce qu'elle soit légèrement plus étendue pour pouvoir prendre en charge le nom de site le plus long.

Cet exemple crée la liste des sites dans une occurrence de tableau et utilise la propriété label pour stocker leurs noms et la propriété data pour stocker les URL de chacun des sites Web. Il affecte le tableau au composant ComboBox en définissant sa propriété dataProvider.

Lorsqu'un utilisateur sélectionne un site dans la liste, il déclenche un événement Event.CHANGE et un appel de la fonction changement(), qui charge la propriété data dans une requête d'URL pour accéder au site Web.

Veuillez noter que la dernière ligne définit la propriété selectedIndex de l'occurrence ComboBox sur -1 pour afficher de nouveau l'invite lorsque la liste se ferme. Sinon, l'invite serait remplacée par le nom du site sélectionné.

< Page précédente ACTIONSCRIPT Page suivante >