« Flash AS3 - TextField » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Ligne 3 : Ligne 3 :


==Insérer un champ de texte sans importer de package supplémentaire==
==Insérer un champ de texte sans importer de package supplémentaire==
===Afficher du texte===


Les méthodes de la classe TextField permettent de définir, sélectionner et manipuler du texte dans un champ texte dynamique ou de saisie que vous créez en cours de programmation ou à l'exécution. Il est possible de le faire assez simplement, sans importer de package supplémentaire.
Les méthodes de la classe TextField permettent de définir, sélectionner et manipuler du texte dans un champ texte dynamique ou de saisie que vous créez en cours de programmation ou à l'exécution. Il est possible de le faire assez simplement, sans importer de package supplémentaire.
Ligne 63 : Ligne 64 :
Vous permettez au texte de passer à la ligne lorsqu'il arrive au bord du champ.
Vous permettez au texte de passer à la ligne lorsqu'il arrive au bord du champ.


Si vous voulez gérer davantage de paramètres de format, vous devrez installer un grand nombre de packages.
===Récupérer une entrée utilisateur===
 
Pour récupérer du texte introduit par l'utilisateur, il faut définir le type du TextField en tant qu'input, puis ajouter sur la scène.
<source lang=actionscript>
var EntreeUtil:TextField = new TextField();
EntreeUtil.type = TextFieldType.INPUT;
addChild(EntreeUtil);
</source>
 
De la même manière que précédemment, il faut ensuite préciser toute une série de paramètre pour que l'affichage convienne à ce que l'on veut faire. La classe [http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/text/TextFormat.html TextFormat] permet notamment de définir la police et sa taille:
<source lang=actionscript>
var formatEntree:TextFormat = new TextFormat();
formatEntree.font = "Arial";
formatEntree.size = 12;
</source>
 
Qu'il faut ensuite attribuer comme format par défaut à la variable de saisie:
<source lang=actionscript>
EntreeUtil.defaultTextFormat = formatEntree;
</source>
 
On lui attribue ensuite les paramètres tels que définis dans la section précédente et on l'ajoute sur la scène. La propriété "focus", fait en sorte que le curseur soit dans la case ainsi créée.
<source lang=actionscript>
EntreeUtil.x = 10;
EntreeUtil.y = 10;
EntreeUtil.height = 18;
EntreeUtil.width = 200;
EntreeUtil.border = true;
addChild(EntreeUtil);
stage.focus = EntreeUtil;
</source>
 
Pour récupérer cette entrée, il faut deux fonction et un Eventlistener. Une des fonctions permettra d'attribuer la valeur de la saisie à une variable.
<source lang=actionscript>
function accepteEntree()
{
var leTexteSaisi:String = EntreeUtil.text;
}
</source>
 
L'Eventlistener de touche relâchée appellera une fonction qui test si c'est la touche entrée qui a été pressée, qui équivaut au code caractère 13. Si c'est le cas, la fonction accepteEntree() est alors appelée.
<source lang=actionscript>
EntreeUtil.addEventListener(KeyboardEvent.KEY_UP, testSiReturn);
function testSiReturn(event:KeyboardEvent) {
if (event.charCode == 13)
{ accepteEntree();}
}
</source>
 
Vous pouvez alors utiliser la variable leTexteSaisi dans votre code.


==Références==
==Références==


Les bases de l'ActionScript: Création d’un champ de texte dynamique"TextFieldAS3">[http://www.bases-as3.fr/creation-champ-texte-dynamique]
Les bases de l'ActionScript: Création d’un champ de texte dynamique"TextFieldAS3">[http://www.bases-as3.fr/creation-champ-texte-dynamique]

Version du 29 janvier 2011 à 11:49

Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.

Insérer un champ de texte sans importer de package supplémentaire

Afficher du texte

Les méthodes de la classe TextField permettent de définir, sélectionner et manipuler du texte dans un champ texte dynamique ou de saisie que vous créez en cours de programmation ou à l'exécution. Il est possible de le faire assez simplement, sans importer de package supplémentaire.

Pour créer une variable de type TextField, il faut la déclarer avec son constructeur:

var zoneTexte:TextField = new TextField();


Pour ajouter du contenu à ce champ, il faut définir une variable de type string qui contiendra le texte à afficher:

var texte: String = "C'est chouette de pouvoir utiliser cette classe!";


Pour afficher ce contenu, il faut se servir de la méthode

addChild();

Sans spécification, le champ de texte est créé avec les paramètres par défaut suivants:


  • Largeur : 100 pixels
  • Hauteur : 100 pixels
  • Couleur : noir
  • Police : Times New Roman ou Times
  • Taille : 12
  • Pas de bordures
  • Pas d'arrière-plan
  • Une seule ligne


Pour modifier la taille du champ de texte:

zoneTexte.width = 200;
zoneTexte.height = 200;

Pour dessiner un cadre autour du champ et définir sa couleur:

zoneTexte.border = true;
zoneTexte.borderColor = 0xFF0000;

Pour définir la couleur de l'arrière-fond du champ.

zoneTexte.background = true;
zoneTexte.backgroundColor = 0xFFE4B3;

Pour que le texte apparaisse sous plusieurs lignes et qu'il revienne à la ligne:

zoneTexte.multiline = true;
zoneTexte.wordWrap = true;

Vous permettez au texte de passer à la ligne lorsqu'il arrive au bord du champ.

Récupérer une entrée utilisateur

Pour récupérer du texte introduit par l'utilisateur, il faut définir le type du TextField en tant qu'input, puis ajouter sur la scène.

var EntreeUtil:TextField = new TextField();
EntreeUtil.type = TextFieldType.INPUT;
addChild(EntreeUtil);

De la même manière que précédemment, il faut ensuite préciser toute une série de paramètre pour que l'affichage convienne à ce que l'on veut faire. La classe TextFormat permet notamment de définir la police et sa taille:

var formatEntree:TextFormat = new TextFormat();
formatEntree.font = "Arial";
formatEntree.size = 12;

Qu'il faut ensuite attribuer comme format par défaut à la variable de saisie:

EntreeUtil.defaultTextFormat = formatEntree;

On lui attribue ensuite les paramètres tels que définis dans la section précédente et on l'ajoute sur la scène. La propriété "focus", fait en sorte que le curseur soit dans la case ainsi créée.

EntreeUtil.x = 10;
EntreeUtil.y = 10;
EntreeUtil.height = 18;
EntreeUtil.width = 200;
EntreeUtil.border = true;
addChild(EntreeUtil);
stage.focus = EntreeUtil;

Pour récupérer cette entrée, il faut deux fonction et un Eventlistener. Une des fonctions permettra d'attribuer la valeur de la saisie à une variable.

function accepteEntree()
{ 
var leTexteSaisi:String = EntreeUtil.text;
}

L'Eventlistener de touche relâchée appellera une fonction qui test si c'est la touche entrée qui a été pressée, qui équivaut au code caractère 13. Si c'est le cas, la fonction accepteEntree() est alors appelée.

EntreeUtil.addEventListener(KeyboardEvent.KEY_UP, testSiReturn); 
function testSiReturn(event:KeyboardEvent) {
if (event.charCode == 13)
{ accepteEntree();}
}

Vous pouvez alors utiliser la variable leTexteSaisi dans votre code.

Références

Les bases de l'ActionScript: Création d’un champ de texte dynamique"TextFieldAS3">[1]