- · Niveau : DÉBUTANT
- · Compatibilité : Flash MX
- · Fichier à télécharger
Avec la version MX, Macromedia ajoute une nouvelle méthode de défilement horizontal. Tout aussi simple que limité, cette nouvelle fonctionnalité permet de réaliser rapidement un mouvement horizontal de type «Ticker».
Voir : hscroll et maxhscroll
Un texte dynamique sur une seule ligne avec un nom d’instance, comme «monTexte».
Ensuite, transformer ce texte en «movieClip» de façon à pouvoir ajouter le code suivant. Le premier code permet d’initialiser le texte. Ensuite, on incrémente la position et une fonction toute simple pour boucler, basé sur la largeur de la zone visible.
onClipEvent (load) {
// Initialisation du texte
this.monTexte.text = "Langage à Balises Étendues - Malgré que la recommandation XML date d’à peine 4 ans, c’est en 1967 que William Tunicliffe proposa pour la toute première fois la séparation du contenu et de la présentation.";
}
onClipEvent (enterFrame) {
// C’est ici que le défilement se fait
// vers la gauche
this.monTexte.hscroll +=5;
// Ajouter un test pour identifier la fin et retourner à 1
if (this.monTexte.hscroll==this.monTexte.maxhscroll) this.monTexte.hscroll = 1;
}
Boucle sans fin avec espace
Pour un doux défilement sans fin, j’ajoute des espaces avant et après le message.
De cette façon j’augmente la valeur de «maxhscroll»
pour ainsi suivre le défilement jusqu’à ce que le texte soit en dehors de la zone
visible.
Mon calcul est plus au moins juste, je divise la largeur de la zone texte visible par 4 et j’arrondis avec Math.Round, pour convertir les pixels en espace de caractère. À ajuster selon vos besoins.
onClipEvent (load) {
this.monTexte.text = "Texte plus long
sur une ligne...";
// Ajustement des blancs, +/- divisé par 4 (relatif à la largeur total).
// Blancs avant
for (i=0;i<(Math.Round(this.monTexte._width/4));i++)
this.monTexte.text = " " +this.monTexte.text;
// Blancs après
for (i=0;i<(Math.Round(this.monTexte._width/4));i++)
this.monTexte.text = this.monTexte.text+ " ";
}
onClipEvent (enterFrame) {
// vers la gauche
this.monTexte.hscroll +=5;
// Test pour identifier la fin et retourner à 1
if (this.monTexte.hscroll==this.monTexte.maxhscroll)
this.monTexte.hscroll = 1;
}