Composant Flex – ComboBox avec pagination verticale
Le composant Flex ComboBox permet d'afficher une liste d'éléments. Lorsqu'un élément est sélectionné, le composant s'affiche sur une seule ligne. Il suffit de cliquer sur la flèche à droite pour faire apparaître les autres éléments de la liste. Ces éléments de tous types représentés par des String peuvent être aussi nombreux qu'il le faudra. S'il y a de nombreux éléments, une scrollbar va apparaître, ce qui est rend la lisibilité du composant assez difficile.
Pour résoudre ce problème, Arcadio Carballares Martin a crée un composant qu'il a baptisé ComboBoxPaginated. Il permet donc d'avoir une pagination. C'est-à-dire que les éléments sont affichés par ensemble de 5 (facilement paramétrable). Des flèches haut et bas sont ajoutées afin de pouvoir accéder aux autres pages. Le découpage des éléments en ensembles est fait automatiquement.
Flex ActionScript – Cast d'objets et opérateur as
Pour "caster" un objet en ActionScript, c'est-à-dire faire une conversion de type, vous avez deux manières différentes. Caster un élément peut-être très pratique, voire parfois inévitable. Par exemple, quand vous utilisez certaines formes de polymorphisme.
Admettons que vous ayez un classe B, sous-classe d'une classe A. Si vous avez besoin d'utiliser une méthode spécifique à B, alors que vous avez un objet de type A, vous devrez faire une conversion de type (Coercition ascendante).
Aussi, si vous conservez dans un tableau ActionScript, tous types d'objets, et qu'au moment du parcours de votre tableau, vous voulez retransformer vos objets dans leur type d'origine, vous devez effectuer un "cast" alias coercition.
La première manière pour effectuer un "cast"est le cast "à l'ancienne" qui consiste à passer l'objet à convertir dans le constructeur du nouvel objet.
Par exemple, on veut convertir une String en Number:
var str:String = "8"; var numb:Number = Number (str);
Ce type de conversion fonctionne très bien si l'opération se passe avec succès. Mais imaginons que vous essayer de convertir deux types incompatibles (un Button en List par exemple):
var btn:Button = new Button(); var lst:List = new List(); lst = List (btn);
Comment Flash Player va-t-il réagir à cette conversion ? Et bien vous allez obtenir une RTE (RunTime Error) du type:
TypeError: Error #1034: Type Coercion failed: cannot convert mx.controls::Button@16ab0479 to mx.controls.List.
On voit ici directement que les types sont incompatibles mais dans une application complexe, on peut avoir besoin absolument de faire une conversion. Alors pour éviter cette RTE, vous pouvez mettre votre instruction dans un try / catch mais cela n'est pas propre (et moins rapide).
Pour remédier à ce problème, ActionScript propose l'opérateur "as". Voici ses caractéristiques:





