Flex Builder 3 Débutant ? Découvrez Flex et Adobe® Flex® Builder 3

Archive de septembre 1st, 2009

01
sept

Composant Flex – RadionButton Multi-Line

Le composant RadioButton de base du framework Flex ne permet pas d'afficher un texte sur plusieurs lignes. Si vous donnez un texte long avec une largeur de composant donnée, votre texte sera tronqué (truncateToFit) et vous pourrez simplement voir la suite du texte en toolTip.

Alex Harui de la Flex Team, sur son blog explique que la mise en page de texte en Flex est lente et n'est pas toujours adaptée au système global de mise en page. Le fait est qu'il n'y a pas vraiment de moyen de déterminer la taille d'un bloc de texte, à moins qu'il n'y ait qu'une seule ligne ou bien de retour à la ligne avec un composant de largeur fixe. Le composant suivant doit d'ailleurs avoir une largeur fixe.

Mais grâce au mécanisme d'héritage de Flex (enfin de la POO en général), on peut arriver à créer ce composant RadioButton MultiLine. Voici donc le composant qu'Alex Harui a crée, nommé MultilineRadioButton.

Exemple en ligne

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:comp="*" >
	<mx:Panel title="MultilineRadioButton et RadioButton"
		paddingLeft="15" paddingRight="15" paddingTop="15" paddingBottom="15">

		<mx:Label text="MultilineRadioButton" fontSize="15"/>
		<comp:MultilineRadioButton
			width="150"
			id="rb1"
			label="This is a multiline radio button whose label should wrap" />
		<comp:MultilineRadioButton
			width="150"
			id="rb2"
			label="This is a multiline radio button whose label should wrap with even more text" />
		<comp:MultilineRadioButton
			width="150"
			id="rb3"
			label="This is a multiline radio button whose label should wrap with even more text and more text beyond that" />
		<mx:Label text="RadioButton Classique" fontSize="15"/>
		<mx:RadioButton
			width="150"
			id="rbNormal"
			label="This is a multiline radio button whose label should wrap" />
	</mx:Panel>
</mx:Application>

Flex Source Code Download: Télécharger le code source complet de l'application

This movie requires Flash Player 9

Voir l'article original de l'auteur

Télécharger les sources sur le blog de l'auteur

01
sept

Flex 4 – Différences entre Flex 3 et Flex 4 (5-Layout et Effects)

Traduction de l'article Differences between Flex 3 and Flex 4 beta de Joan Lafferty.

Modifications apportées sur les Effect en Flex 4

De nombreuses améliorations ont été faites sur l'architecture des Effect dans Flex 4. Les effets Halo (Flex 3) ne fonctionnaient que sur les composants basés sur UIComponent. Les effets Spark (Flex 4) peuvent agir sur n'importe quelle cible, même les primitives graphiques du framework. Tous ces effets se trouvent dans le package spark.effects.*.

Puisque ces effets fonctionnent sur les composants Halo, les composants Spark et les primitives graphiques, Adobe recommande l'utilisation des effets Spark pour toutes vos futures applications.

Voir l'article de Chet Hasse sur Effects in Adobe Flex 4 SDK beta

Modifications apportées sur le Layout (mise en page)

Dans les versions précédentes de Flex, la mise en page des composants et des conteneurs était définie dans chaque composant. C'est pourquoi on avait des composants tels que List, TileList et HorizontalList, qui apportaient tous les mêmes fonctionnalités sauf que leur mise en page était différente.

Dans Flex 4, la mise en page a été découplée des composants. Maintenant, les composants Spark tels que Application, List, ButtonBar et Panel peuvent définir leur mise en page de manière déclarative. Dans tous les composants, cela est géré par la classe Group et la mise en page des enfants de Group est laissé à un objet "layout" associé. Cette mise en page supporte à la fois les composants Spark et Halo en plus des primitives graphiques FXG. La mise en page peut même être changée à l'exécution.

En tant que développeur, vous pourrez facilement écrire des "layout" personnalisées et basculer de layout directement dans votre composant. Voici un exemple qui définit une liste verticale, une liste horizontale et une tiled list (en grille):

Vertical List (layout par défaut)

<s:List />

Horizontal List

<s:List>
    <s:layout>
        <s:HorizontalLayout />
    </s:layout>
</s:List>

Tiled List

<s:List>
    <s:layout>
        <s:TileLayout />
    </s:layout>
</s:List>

Lire la suite: 'Flex 4 – Différences entre Flex 3 et Flex 4 (5-Layout et Effects)'

01
sept

Flex 4 – Différences entre Flex 3 et Flex 4 (4-Nouvelle syntaxe des States)

Traduction de l'article Differences between Flex 3 and Flex 4 beta de Joan Lafferty.

Flex 4 introduit une nouvelle syntaxe MXML pour les States. Celle-ci est plus "inline", permettant de faire des modifications sur les States en fonction du contexte. Voici les grandes différences de la syntaxe Flex 4 par rapport à Flex 3:

  • Seuls des states sont définis sans le tableau "states"
  • Dans la nouvelle syntaxe des states, vous ne pouvez pas utiliser AddChild ni RemoveChild. A la place, vous devez définissez si un composant fait partie d'un state en utilisant les attributs includeIn et excludeFrom.

Dans l'exemple Flex 3 suivant, les States sont utilisées pour inclure un Button et supprimer un TextInput, seulement quand le "currentState" du document est "submitState". Cette approche peut être très lourde avec des states complexes:

<mx:states>
    <mx:State name="submitState" basedOn="">
        <mx:AddChild relativeTo="{loginForm}" >
           <mx:Button label="submit" bottom="10" right="10"/>
        </mx:AddChild>
        <mx:RemoveChild target="{firstTextInput}"/>
    </mx:State>
</mx:states>

<mx:TextInput id="firstTextInput" />
<mx:Canvas id="loginForm" />

Voici le même exemple en Flex 4 en utilisant includeIn et excludeFrom:

<s:states>
    <s:State name="submitState" />
</s:states>
<s:TextInput id="firstTextInput" excludeFrom="submitState" />
<s:Group id="loginForm" >
    <s:Button label="submit" bottom="10" right="10" includeIn="submitState"/>
</s:Group>

Les tags SetProperty, SetStyle et SetEventHandler ont été remplacés par la nouvelle syntaxe par point, qui vous permet de préciser un attribut MXML avec un identifiant de State.

Dans le code Flex 3 suivant, le code définit une propriété, un style et un event pour un Button dans l'état submitState:

<mx:states>
    <mx:State name="submitState" basedOn="">
        <mx:SetProperty target="{submitButton}" name="label" value="submit" />
        <mx:SetStyle target="{submitButton}" name="textDecoration" value="underline"/>
        <mx:SetEventHandler target="{submitButton}" name="click" handler="trace('done');"/>
    </mx:State>
    <mx:State name="clearState" basedOn="">
        <mx:SetProperty target="{submitButton}" name="label" value="clear" />
        <mx:SetEventHandler target="{submitButton}" name="click" handler="emptyDocument()" />
    </mx:State>
</mx:states>

<mx:Button id="submitButton" />

Voici à quoi ressemble le même code dans Flex 4:

<s:states>
    <s:State name="submitState" />
    <s:State name="clearState" />
</s:states>

<s:Button label.submitState="submit" textDecoration.submitState="underline"
   click.submitState="trace('done')" click.clearState="emptyDocument()"
   label.clearState="clear" textDecoration.clearState="none"/>

Un composant ne peut plus être dans un état undefined ou null. Par défaut, le premier state déclaré est le State initial du composant. La nouvelle syntaxe est disponible quand vous utiliser le namespace MXML 2009. Vous ne pouvez pas mélanger l'ancienne et la nouvelle syntaxe. L'ancienne syntaxe est uniquement disponible avec le namespace MXML 2006.

Lire la suite: 'Flex 4 – Différences entre Flex 3 et Flex 4 (4-Nouvelle syntaxe des States)'

01
sept

Flex 4 – Différences entre Flex 3 et Flex 4 (3-Nouveaux composants et container)

Traduction de l'article Differences between Flex 3 and Flex 4 beta de Joan Lafferty.

Flex 4 introduit de nouvelles classes de composants qui utilisent la nouvelle architecture Flex 4, qui va rentre le skinning et la personnalisation de composant plus simple. Voici un comparatif entre les composants Flex 3 Halo et leur équivalent Flex 4 Spark:

  • mx.controls.Button              ->  spark.components.Button
  • mx.controls.ButtonBar             ->  spark.components.ButtonBar
  • mx.controls.CheckBox             ->  spark.components.CheckBox
  • mx.controls.ComboBox             ->  spark.components.DropDownList (w/o editability)
  • mx.controls.HorizontalList         ->  spark.components.List (with a HorizontalLayout)
  • mx.controls.HRule                 ->  spark.primitives.Line
  • mx.controls.HScrollBar             ->  spark.components.HScrollBar
  • mx.controls.HSlider             ->  spark.components.HSlider
  • mx.controls.Image                 ->  spark.primitives.BitmapImage
  • mx.controls.LinkBar             ->  spark.components.ButtonBar (with a custom skin)
  • mx.controls.LinkButton             ->  spark.components.Button (with a custom skin)
  • mx.controls.List                 ->  spark.components.List
  • mx.controls.NumericStepper         ->  spark.components.NumericStepper
  • mx.controls.RadioButton         ->  spark.components.RadioButton
  • mx.controls.RadioButtonGroup     -> spark.components.RadioButtonGroup
  • mx.controls.TextArea             ->  spark.components.TextArea
  • mx.controls.TextInput             ->  spark.components.TextInput
  • mx.controls.TileList             ->  spark.components.List (with a TileLayout)
  • mx.controls.ToggleButtonBar     ->  spark.components.ButtonBar
  • mx.controls.VideoDisplay         ->  spark.components.VideoPlayer
  • mx.controls.VRule                 ->  spark.primitives.Line
  • mx.controls.VScrollBar             ->  spark.components.VScrollBar
  • mx.controls.VSlider             ->  spark.components.VSlider
  • mx.core.Application             ->  spark.components.Application
  • mx.core.Window                     ->  spark.components.Window
  • mx.core.WindowedApplication     ->  spark.components.WindowedApplication
  • mx.containers.Canvas             ->  spark.components.Group
  • mx.containers.HBox                 ->  spark.components.HGroup
  • mx.containers.Panel             ->  spark.components.Panel
  • mx.containers.Tile                 ->  spark.components.Group (with a TileLayout)
  • mx.containers.VBox                 ->  spark.components.VGroup

Adobe encourage l'utilisation des composants et des conteneurs Halo avec les composants Spark. Adobe continue de créer des composants sur la même base (UIComponent), il devrait donc y avoir interopérabilité totale entre Spark et Halo.

Lire la suite: 'Flex 4 – Différences entre Flex 3 et Flex 4 (3-Nouveaux composants et container)'




Bientôt sur flex-tutorial.fr …

  • - Tutoriaux BlazeDS
  • - Composants Flex

tutorial flex tutorial flex

flex Adobe Air AFCS Data Filter Lib ToasterLib librairies AS3 Flex livres AS3 Flex

 

septembre 2009
L Ma Me J V S D
« août   oct »
 123456
78910111213
14151617181920
21222324252627
282930