Utilisation du composant TextArea

Le composant TextArea renvoie automatiquement à la ligne l’objet TextField ActionScript natif. Vous pouvez utiliser le composant TextArea pour afficher du texte, ainsi que pour modifier et recevoir une saisie de texte si la propriété editable a la valeur true . Le composant peut afficher ou recevoir plusieurs lignes de texte. Il renvoie les longues lignes de text à la ligne si la propriété wordWrap est définie sur true . La propriété restrict permet de limiter les caractères que l’utilisateur peut taper, et maxChars permet de définir le nombre maximal de caractères pouvant être entrés. Si le texte dépasse les limites horizontales ou verticales de la zone de texte, des barres de défilement horizontale et verticale s’affichent automatiquement, sauf si leurs propriétés associées, horizontalScrollPolicy et verticalScrollPolicy , sont réglées sur off .

Vous pouvez utiliser un composant TextArea partout où vous avez besoin d’un champ de texte multiligne. Par exemple, vous pouvez utiliser le composant TextArea comme un champ de commentaires dans un formulaire. Vous pouvez définir un écouteur qui vérifie si le champ est vide lorsqu’un utilisateur sort du champ. Cet écouteur peut afficher un message d’erreur indiquant qu’un commentaire doit être entré dans ce champ.

Si vous avez besoin d’un champ de texte d’une seule ligne, utilisez le composant TextInput.

Vous pouvez définir le style de textFormat en employant la méthode setStyle() pour modifier le style du texte qui s’affiche dans une occurrence de TextArea. Vous pouvez également mettre en forme un composant TextArea à l’aide de code HTML en employant la propriété htmlText dans ActionScript, et régler la propriété displayAsPassword sur true pour masquer le texte à l’aide d’astérisques. Si vous réglez la propriété condenseWhite sur true , Flash supprime, du nouveau texte, les espaces blancs supplémentaires résultant de la présence d’espaces, de sauts de ligne, etc. Cette propriété n’a aucun effet sur le texte figurant déjà dans le contrôle.

Interaction de l’utilisateur avec le composant TextArea

Un composant TextArea peut être activé ou désactivé dans une application. Lorsqu’il est désactivé, il ne reçoit pas les entrées en provenance de la souris ou du clavier. Lorsqu’il est activé, il suit les mêmes règles de focus, de sélection et de navigation qu’un objet TextField ActionScript. Lorsque l’occurrence d’un composant TextArea a le focus, vous pouvez la contrôler à l’aide des touches suivantes.

Touche

Description

Touches fléchées

Déplacent le point d’insertion vers le haut, le bas, la gauche ou la droite dans le texte, si celui-ci est modifiable.

Pg. Suiv.

Déplace le point d’insertion vers la fin du texte, si celui-ci est modifiable.

Pg. Préc.

Déplace le point d’insertion vers le début du texte, si celui-ci est modifiable.

Maj+Tab

Place le focus sur l’objet précédent dans la boucle de tabulation.

Tab

Place le focus sur l’objet suivant dans la boucle de tabulation.

Pour plus d’informations sur le contrôle du focus, voir la classe FocusManager dans le Guide de référence d’ActionScript 3.0 pour Flash Professional et Utilisation de FocusManager .

Paramètres du composant TextArea

Dans l’Inspecteur des propriétés ou l’Inspecteur des composants, vous pouvez définir les paramètres de création suivants pour chaque occurrence du composant TextArea : condenseWhite , editable , hortizontalScrollPolicy , maxChars , restrict , text , verticalScrollPolicy et wordwrap . A chacun de ces paramètres correspond une propriété ActionScript du même nom. Pour plus d’informations sur les valeurs gérées de ces paramètres, voir la classe TextArea dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Un aperçu en direct de chaque occurrence de TextArea reflète les modifications effectuées sur les paramètres dans l’Inspecteur des propriétés ou l’Inspecteur des composants pendant la programmation. Si une barre de défilement s’avère nécessaire, elle apparaît lors d’un aperçu en direct, mais ne fonctionnera pas. Lors d’un aperçu en direct, il n’est pas possible de sélectionner du texte et vous ne pouvez pas entrer de texte dans l’occurrence du composant sur la scène.

Vous pouvez contrôler ces options et d’autres options du composant TextArea à l’aide des propriétés, méthodes et événements d’ActionScript. Pour plus d’informations, voir la classe TextArea dans le Guide de référence d’ActionScript 3.0 pour Flash Professional .

Création d’une application avec le composant TextArea

La procédure suivante explique comment ajouter un composant TextArea à une application pendant la programmation. L’exemple configure un gestionnaire d’événements focusOut sur l’occurrence de TextArea qui vérifie que l’utilisateur a tapé des données dans la zone de texte avant de donner le focus à une autre partie de l’interface.

  1. Créez un document Flash (ActionScript 3.0).

  2. Faites glisser un composant TextArea du panneau Composants vers la scène et nommez l’occurrence aTa . Conservez les réglages par défaut de ses paramètres.

  3. Faites glisser un second composant TextArea du panneau Composants sur la scène, placez-le sous le premier et nommez son occurrence bTa . Conservez les réglages par défaut de ses paramètres.

  4. Ouvrez le panneau Actions, sélectionnez l’image 1 dans le scénario principal et entrez le code ActionScript suivant :

    import flash.events.FocusEvent; 
     
    aTa.restrict = "a-z,'\" \""; 
    aTa.addEventListener(Event.CHANGE,changeHandler); 
    aTa.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, k_m_fHandler); 
    aTa.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, k_m_fHandler); 
     
    function changeHandler(ch_evt:Event):void { 
        bTa.text = aTa.text; 
    } 
    function k_m_fHandler(kmf_event:FocusEvent):void { 
        kmf_event.preventDefault(); 
    }

    Cet exemple limite les caractères que vous pouvez entrer dans la zone de texte aTa aux minuscules, à la virgule, à l’apostrophe et aux espaces. Il définit également des gestionnaires d’événements pour les événements change , KEY_FOCUS_CHANGE et MOUSE_FOCUS_CHANGE sur la zone de texte aTa . La fonction changeHandler() force le texte que vous entrez dans la zone de texte aTa à s’afficher automatiquement dans la zone bTa , en attribuant aTa.text à bTa.text lors de chaque événement change . La fonction k_m_fHandler() des événements KEY_FOCUS_CHANGE et MOUSE_FOCUS_CHANGE vous empêche d’appuyer sur la touche Tab pour passer à la zone suivante si vous n’avez pas entré de texte. Pour ce faire, cette fonction interdit le comportement par défaut.

  5. Choisissez Contrôle > Tester l’animation.

    Si vous appuyez sur la touche Tab pour déplacer le focus sur la seconde zone de texte alors que vous n’avez pas entré de texte, un message d’erreur doit s’afficher, et le focus doit revenir à la première zone de texte. Lorsque vous entrez du texte dans la première zone, vous verrez qu’il est copié dans la seconde.

Création d’une occurrence du composant TextArea à l’aide d’ActionScript

L’exemple suivant crée un composant TextArea à l’aide d’ActionScript. Il définit la propriété condenseWhite sur true pour comprimer les espaces blancs et affecte du texte à la propriété htmlText afin de tirer parti des attributs de formatage de texte HTML.

  1. Créez un document de fichier Flash (ActionScript 3.0).

  2. Faites glisser le composant TextArea vers le panneau Bibliothèque.

  3. Ouvrez le panneau Actions, sélectionnez l’image 1 dans le scénario principal et entrez le code ActionScript suivant :

    import fl.controls.TextArea; 
     
    var aTa:TextArea = new TextArea(); 
     
    aTa.move(100,100); 
    aTa.setSize(200, 200); 
    aTa.condenseWhite = true; 
    aTa.htmlText = '<b>Lorem ipsum dolor</b> sit amet, consectetuer adipiscing elit. <u>Vivamus quis nisl vel tortor nonummy vulputate.</u> Quisque sit amet eros sed purus euismod tempor. Morbi tempor. <font color="#FF0000">Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.</font> Curabitur diam. Suspendisse at purus in ipsum volutpat viverra. Nulla pellentesque libero id libero.';  
    addChild(aTa);

    Cet exemple utilise la propriété htmlText pour appliquer les attributs HTML gras et souligné à un bloc de texte et l’afficher dans la zone de texte a_ta . L’exemple règle également la propriété condenseWhite sur true afin de condenser les espaces blancs à l’intérieur du bloc de texte. La méthode setSize() définit la hauteur et la largeur de la zone de texte, et la méthode move() définit sa position. La méthode addChild() ajoute l’occurrence de TextArea à la scène.

  4. Choisissez Contrôle > Tester l’animation.