4 votes

Champ de texte arrondi AS3

Est-ce que quelqu'un sait comment créer un champ de texte dynamique avec une bordure visible et des coins arrondis en AS3?

Je pense que je pourrais devoir créer un movieclip arrondi, le redimensionner et le placer derrière le texte.

J'ai essayé cela, mais je ne vois aucun changement.

var styleRound:StyleSheet = new StyleSheet();
styleRound.parseCSS("h4{coinArrondi:10;styleDeBordure: solide; épaisseurDeBordure: 1;}");
tf.htmlText = "" + hotspotData.caption + "";
tf.styleSheet = styleRound;

8voto

James Fassett Points 8885

Voici une liste des styles CSS disponibles pour les TextFields en ActionScript 3. Désolé, il n'y a pas de rayon de coin.

Vous pouvez activer une bordure pour un textfield sur les objets TextField propriété de bordure. Mais il n'existe pas de propriété disponible pour arrondir les coins.

Je vous suggère de créer un nouveau composant et d'ajouter la bordure vous-même comme un Sprite en dessous du TextField. Quelque chose comme:

package
{

import flash.display.Graphics;
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;

public class TextBorder extends Sprite
{
    private static const CORNER_RADIUS:int = 5;
    // objets d'affichage
    private var background:Sprite;
    private var field:TextField;

    // propriétés
    private var _text:String;

    public function TextBorder()
    {
        background = new Sprite;
        field = new TextField;
        field.autoSize = TextFieldAutoSize.LEFT;

        addChild(background);
        addChild(field);

        // TEST:
        text = "Bonjour le monde";
    }

    public function set text(newText:String):void
    {
        _text = newText;
        afficher();
    }

    public function get text():String
    {
        return _text;
    }

    private function afficher():void
    {
        field.text = _text;

        var g:Graphics = background.graphics;
        g.clear();
        g.lineStyle(0, 0x0);
        g.beginFill(0xFFFFFF);
        g.drawRoundRect(0, 0, field.width, field.height, CORNER_RADIUS);
    }
}

}

0voto

Bryan Points 3646

J'ai fini par créer un rectangle arrondi dans Flash et l'exporter en tant que sa propre classe - hotspotBG.

var hotspotBackground:hotspotBG = new hotspotBG();
hotspotBackground.width = textField.width + 10;
caption.addChild(hotspotBackground);

0voto

user3120368 Points 11

Vous ne pouvez pas modifier le champ de texte lui-même, car en 2014, flash ne le permettait pas.

Ce que vous pouvez faire, c'est supprimer l'arrière-plan et les bordures, ce qui rendra le champ de texte complètement transparent, puis ajouter une image (l'outil rectangle est le moyen le plus simple de le faire) à l'arrière du champ de texte, de sorte que le champ de texte soit au-dessus de l'image (selon l'axe z)

Ce n'est peut-être pas la manière dont vous l'aviez envisagée, mais ça fonctionne!

//vous supprimez l'arrière-plan et les bordures //et les remplacez par une image textbox.background=false; textbox.border=false;

-1voto

floyddd Points 11

Pouvez-vous simplement utiliser les styles CSS? Quelque chose comme:

TextInput {
  borderStyle: solide;
  borderThickness: 1;
  cornerRadius: 2;
}

Je n'ai pas testé cela, mais cela devrait vous donner un coin arrondi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X