- · Niveau : DÉBUTANT
- · Compatibilité : Flash 5 / MX
- · Fichier à télécharger
Avant Flash MX et la composantes «ScrollBar», le défilement d’un «texte dynamique multiligne» était contrôlé par la propriété «scroll», de 1 à «maxscroll». D’avantage utilisé pour des sauts fixes, ancre ou paragraphe, il permet toujours un défilement fluide comme le montre l’exemple suivant.
À retenir. Toujours utiliser un élément Texte dynamique ou «Dynamic Text». En ligne multiple ou «Multiline»
1. Création d’un élément texte
- Avec l’outil «A» dans la palette d’outils, glisser
sur la scène la zone du texte et utiliser le carré en bas de cette zone pour définir
l’espace visible du texte. Assurez-vous que l’outil «A»
est bien sélectionné.
- Ouvrez
la fenêtre des propriétés [CTRL+F3]. Spécifier que votre
texte est dynamique; «Dynamic Text» ou «Input
text».
- Sélectionnez
multiligne ou «Multiline».
- Il est très important de donner un nom de variable, par exemple «monTexte». C’est avec ce nom de variable qu’il est ensuite possible de cibler le «monTexte».
2. Initialiser le texte dynamique
Sur l’action du cadre (frame action), initialisez la
valeur du texte dynamique, la variable «monTexte». Noter
qu’il est possible de forcer un saut de ligne avec la barre oblique et un N (\n).
_root.monTexte = "Votre texte sur plusieurs lignes.\n\nPlusieurs
paragraphe..."
3. Exemple simple: Contrôle du défilement au clic
L’important est de bien cibler le texte dynamique, à l’aide de son nom de variable;
«monTexte». Et de jouer avec la valeur de la propiété scroll. Anisi:
// passer à la ligne suivante
monTexte.scroll = monTexte.scroll + 1;
// remonte d’une ligne
monTexte.scroll = monTexte.scroll - 1;
// Paser à la ligne 100
monTexte.scroll = 100;
Tester en glissant un bouton sur la scène avec un de ses 3 codes :
on (release) {
monTexte.scroll +=
1;
}
on (release) {
monTexte.scroll -=
1;
}
on (release) {
monTexte.scroll = 100;
}
3. Exemple avancé: Défilement semi-continu avec «rollOver» comme
l’exemple plus haut
Contrairement à un défilement au clic, la position du défilement semi-continu
doit être précisée à chaque instant. C’est pourquoi le contrôle est en «enterFrame»,
sous la condition du «survole de la souris». Le rôle des deux boutons se limite
à maintenir l’état du défilement, soit; Vers le haut (-1),
vers le bas (+1) et sans défilement (0).
Il faut donc un «movieClip» et deux boutons. L’idéal
est de tout mettre dans le même «movieCLip».
a. Cliquer sur l’élément «Texte dynamique» pour le convertir en «movieCLip» [F8] et donner un nom d’instance à ce nouveau «movieCLip», Pourquoi pas «twTexteDefil»! Dans l’action de «twTexteDefil», ajouter ce code :
onClipEvent (load) {
// Initialiser la direction à zéro
this.direction = 0;
}
onClipEvent (enterFrame) {
// Test inutile mais plus rapide qu’une assignation.
// Ensuite, incrémentation selon la direction
if (this.direction<>0) this.monTexte.scroll
+= this.direction;
}
Noter le principe d’addition d’une direction positive/négative. Additionner un nombre négatif résulte en une soustraction. Par exemple x += -1; équivaut à x = x -1
b. Ajouter deux boutons et le code qui détermine la direction. Noter le nom d’instance «twTexteDefil» :
// Bouton vers le haut
on (rollOver) {
// Direction -1
_root.twTexteDefil.direction = -1;
}
on (press, release, releaseOutside, rollOut, dragOut) {
// Direction 0
_root.twTexteDefil.direction = 0;
}
// Bouton vers le bas
on (rollOver) {
// Direction +1
_root.twTexteDefil.direction = +1;
}
on (press, release, releaseOutside, rollOut, dragOut) {
// Direction 0
_root.twTexteDefil.direction = 0;
}