Création d'un lien sur un texte en ActionScript 3 (AS3).
A travers cet article, nous allons voir comment facilement placer un lien sur un texte. Nous allons utiliser la classe TextField pour créer notre objet texte et la classe TextFormat pour créer et formater le lien.
Création du texte
Nous allons créer un objet de type TextField, non sélectionnable et dont la largeur s'adaptera au contenu.
-
var google_txt:TextField = new TextField();
-
google_txt.autoSize = TextFieldAutoSize.LEFT;
-
google_txt.selectable = false;
-
google_txt.text = "Google, le site officiel français";
Création et formatage du lien
Nous allons créer un objet de type TextFormat pour définir l'aspect du lien. Nous allons dans notre exemple, souligner le lien et l'afficher en bleu grâce aux propriétés color et underline de la classe TextFormat.
La propriété url va nous permettre de définir le lien web.
-
var formatLiens:TextFormat = new TextFormat();
-
formatLiens.url = "http://www.google.fr";
-
formatLiens.color = 0x0000FF;
-
formatLiens.underline = true;
Affichage du lien
Afin d'associer le lien à tout notre texte, nous allons utiliser la méthode setTextFormat de la classe TextField.
-
google_txt.setTextFormat(formatLiens);
Nous afficherons ensuite le texte dans la scène.
-
addChild(google_txt);
Affichage du lien sur le mot Google uniquement
Nous souhaitons afficher le lien uniquement sur le mot Google. La méthode setTextFormat permet de spécifier la plage de caractères sur laquelle doit s'appliquer le formatage. On précise pour cela 2 autres paramètres, le premier étant l'index du premier caractère devant être formaté. Le second étant l'index du premier caractère ne devant pas être formaté. Dans notre cas, le premier index sera 0, correspondant à la lettre G et second index sera 6 correspondant à la virgule, premier caractère ne devant pas être formaté.
-
google_txt.setTextFormat(formatLiens, 0, 6);
-
addChild(google_txt);
Le script complet
-
var google_txt:TextField = new TextField();
-
google_txt.autoSize = TextFieldAutoSize.LEFT;
-
google_txt.selectable = false;
-
google_txt.text = "Google, le site officiel français";
-
-
var formatLiens:TextFormat = new TextFormat();
-
formatLiens.url = "http://www.google.fr";
-
formatLiens.color = 0x0000FF;
-
formatLiens.underline = true;
-
google_txt.setTextFormat(formatLiens);
-
addChild(google_txt);
Je suis Antony Chauviré, développeur sur la Flash Platform.