Avant l'arrivée des composants, les développeurs Flash devaient coder à la main tous les éléments d'interface courants: barre de défilement, bouton, menu déroulant... Les composants sont apparus à la communauté des développeurs avec Macromedia Flash MX et sont vite devenus des incontournables.
Les composants facilitent énormément le design d'interface utilisateur. Ils nous rendent la vie facile, accélèrent le temps de développement et permettent la conception d'interfaces accessibles et utilisables. Cela change du temps où les développeurs «inventaient» chaque fois une nouvelle barre de défilement, difficile à reconnaître ou et à manipuler.
Flash MX 2004 introduit les composants v2, deuxième génération basée sur l'ActionScript 2.0 et un modèle de classes orientées objet. Les composants couvrent trois champs de fonctionnalités, tels qu'indiqués dans le tableau suivant:
| Composants | Fonctionnalités | Disponibilité |
|---|---|---|
| Data Components | permet de charger et de manipuler des données provenant de sources externes, particulièrement pour XML et les Services Web. | Flash MX Professional 2004 |
| Media Components | permet de jouer et de contrôler des médias en flux continu. Inclut notamment les composants MediaController, MediaPlayback et MediaDisplay. | Flash MX Professional 2004 |
| UI Components | permet à l'utilisateur d'interagir avec une application. Certains composants, comme le DataGrid n'est disponible que dans Flash MX Profesionnal 2004. | Flash MX 2004 |
Les composants sont aisément manipulables visuellement, avec l'aide de l'inspecteur de composants notamment. Cependant, rien ne remplace le contrôle total que l'on obtient avec ActionScript. Bien souvent, il est essentiel d'avoir recours à ActionScript pour manipuler les données des composants.
Chaque composant est une classe unique avec ses propres méthodes et propriétés. On crée une instance de cette classe à chaque fois que l'on glisse un composant du panneau de composants sur la scène. Les composants d'interface (UI) se trouvent dans le dossier controls et les composants de données (data) dans le dossier data. On peut importer tout le package des classes avec l'instruction import:
import mx.controls.*
Les composants héritent tous de la classe MovieClip. Le schéma complet de la chaîne d'héritage des composants ressemble à ceci:

Les composants v2 introduisent une autre façon de suivre les événements qui surviennet sur ce composant. L'utilisation d'objets d'écoute est maintenant nécessaire pour réagir aux événements d'un composant. On ajoutera un écouteur à un composant avec l'instruction addEventListener() (ne pas confondre avec addListener()).
var monCombo:mx.controls.ComboBox;
var ecouteObj:Object = new Object();
ecouteObj.change = function() {
trace("changement");
}
monCombo.addEventListener("change", ecouteObj);