Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Texte défilant avec createTextField  (Lu 1123 fois)

maudekg

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 4
    • Voir le profil
Texte défilant avec createTextField
« le: Juillet 04, 2010, 22:36:04 pm »
Bonsoir à tous,

Je suis en train de créer un lecteur mp3.
Le titre et l'interprète ce trouve dans un xml, j'appelle les variables via ce code :

createTextField("message2", -1000, 5, 107, 300, 16);// profondeur / droite / hauteur / longeur texte / hauteur txte
this.message2.text = +singer[current];
this.message2.selectable = false;
monFormat.size = 16;
monFormat.bold = true;
monFormat.font = "test";
this.message2.setTextFormat(monFormat);
this.message2.textColor = 0xFFFFFF;
autoSize = "center"
this.message2.embedFonts = true;

J'aurais voulu faire défiler le texte de droite à gauche, mais je ne sais pas trop comment m'y prendre si quelqu'un pouvait m'aiguiller ce serait sympa. :)
IP archivée

RMistral (Wisi)

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 662
    • Voir le profil
    • WWW
Re : Texte défilant avec createTextField
« Réponse #1 le: Juillet 18, 2010, 08:14:45 am »
Bonjour,

Je ne sais pas si ta question est toujours d'actualité mais au cas ou.....

Pour faire défiler du texte il y a différentes solutions.

L'une d'entre elle consiste à faire déplacer un masque qui révèle le texte

Une autre possibilité c'est de mettre ta zone de texte dans un MC et de faire défiler le MC a l'aide d'un onEnterFrame.

Il est aussi possible de faire défiler ton texte dans un MovieClip à l'aide d'un Tween.

Voilà un petit exemple d'un texte dynamique dans un MovieClip avec un déplacement par un onEnterFrame

//création dynamique d'un MC sur la scène nommé conteneur en profondeur 1
this.createEmptyMovieClip("conteneur",1)
//Création de ta zone de texte mais dans le MC conteneur
conteneur.createTextField("message2",-1000, 5, 107, 300, 16);// profondeur / droite / hauteur / longeur texte / hauteur txte
//paramètrage de la zone de texte ici je met un texte en dur pour l'exemple mais il faut mettre le nom de ton morceau récupéré à partir du fichier XML
conteneur.message2.text = "coucou";
conteneur.message2.selectable = false;
monFormat.size = 16;
monFormat.bold = true;
//J'utilise une police standard pour l'exemple
monFormat.font = "Verdana";
conteneur.message2.setTextFormat(monFormat);
conteneur.message2.textColor = 0x000000;
autoSize = "center"
//Comme j'ai une police standard je mets en commentaire cette ligne
//conteneur.message2.embedFonts = true;

//Fonction d'animation déplacement de 1 pixel vers la droite chaque 1/25 de seconde si ta scène est réglée sur 25 ips
conteneur.onEnterFrame = function(){
conteneur._x+=1
}

Je te conseille si tu débute en programmation de passer a AS3 pour pouvoir utiliser toute les nouvelles fonctionnalités de CS5.

Dans la boutique Wisi il y a une excellente formation pour faire des animations en programmation AS3 pour débutant : Ateliers créatifs avec Adobe flash

Bon courage.....
IP archivée
Savoir mal est pire qu'ignorer

maudekg

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 4
    • Voir le profil
Re : Texte défilant avec createTextField
« Réponse #2 le: Août 03, 2010, 21:30:52 pm »
Bonjour,

Merci de m'avoir répondu. Après quelques recherches j'avais optées pour ceci

monTexte = +singer[current]+"  -  "+title[current] ;
vxmin = 0;
vxmax = 4;
vx = 0.5*(vxmin+vxmax);
monStyle = new TextField.StyleSheet();
this.createEmptyMovieClip("monClip",0);
monClip.cacheAsBitmap = true;
monClip.createTextField("message2", 0, 0, 0, 0, 0);
monClip.message2.textColor = 0xFFFFFF;
monClip.font = "test";
with (monClip.message2) {
autoSize = true;
html = true;
styleSheet = monStyle;
htmlText = monTexte;
selectable = false;
border = false;
largeur = _width;
hauteur = _height;
}
xRight =76; // dimension du calque
xLeft = 12; // idem
this.createEmptyMovieClip("masque", 1);
masque._x = monClip._x=5; // position du masque et du clip en x
masque._y = monClip._y=0; // hauteur
masque.beginFill(0, 400);
masque.moveTo(0, 0);
masque.lineTo(xRight-xLeft, 0);
masque.lineTo(xRight-xLeft, hauteur);
masque.lineTo(0, hauteur);
masque.lineTo(0, 0);
masque.endFill();
blurX = 0;
filtre = new flash.filters.BlurFilter(blurX, 0, 1);
masque.filters = [filtre];
monClip.setMask(masque);
monClip.onEnterFrame = function() {
var dy = Math.abs(this._ymouse-0.5*hauteur);
if (dy>0.5*hauteur) {
vx = vxmin+(vxmax-vxmin)*dy/Stage.height;
} else {
vx = vxmin;
}
this._x -= vx;
if (this._x<xLeft-largeur) {
this._x = xRight;
}
};



J'ai n'est plus qu'un dernier souci je n'arrive ni à changer la taille ni la police d'écriture si quelqu'un pouvait m'aider.

Merci d'avance
IP archivée

RMistral (Wisi)

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 662
    • Voir le profil
    • WWW
Re : Texte défilant avec createTextField
« Réponse #3 le: Août 04, 2010, 09:46:02 am »
Bonjour,

Il faut d'abord créer un format pour ta zone de texte pour cela rajoute en début de ton code la définition de ton style :

//Création d'un format nommé monFormat ou tout autre nom a ta convenance
var monFormat:TextFormat = new TextFormat();
monFormat.size = 16;
monFormat.bold = true;
monFormat.font = "Verdana";
monFormat.color=0xff0000

Supprime les lignes :

monStyle = new TextField.StyleSheet();

....

monClip.message2.textColor = 0xFFFFFF;
monClip.font = "test";

....

styleSheet = monStyle;

Maintenant il faut appliquer ton format a ta zone de texte pour cela après l'accolade fermante du width ajoute :

monClip.message2.setTextFormat(monFormat);

Et voilà......
IP archivée
Savoir mal est pire qu'ignorer

maudekg

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 4
    • Voir le profil
Re : Texte défilant avec createTextField
« Réponse #4 le: Août 04, 2010, 09:53:54 am »
merci pour ta réponse,

J'avais testée en déclarant mon format, mais j'avais oubliée ceci :

monClip.message2.setTextFormat(monFormat);

Je reteste tout à l'heure et je viens clôturer le topic si c'est bon  :)
IP archivée

maudekg

  • Wisi tout neuf
  • *
  • Hors ligne Hors ligne
  • Messages: 4
    • Voir le profil
Re : Texte défilant avec createTextField
« Réponse #5 le: Août 06, 2010, 02:06:42 am »
Merci beaucoup pour ton aide ca fonctionne parfaitement :)

var monFormat:TextFormat = new TextFormat();
monFormat.size = 10;
monFormat.bold = true;
monFormat.embedFonts = true;
monFormat.font = "test";
monFormat.color=0xFFFFFF;

monTexte = +singer[current]+"&nbsp;&nbsp;-&nbsp;&nbsp;"+title[current] ;
vxmin = 0;
vxmax = 4;
vx = 0.5*(vxmin+vxmax);
this.createEmptyMovieClip("monClip",0);
monClip.cacheAsBitmap = true;
monClip.createTextField("message2", 0, 0, 0, 0, 0);
with (monClip.message2) {
autoSize = true;
html = true;
htmlText = monTexte;
selectable = false;
border = false;
largeur = _width;
hauteur = _height;
}
monClip.message2.setTextFormat(monFormat);
xRight =76; // dimension du calque
xLeft = 12; // idem
this.createEmptyMovieClip("masque", 1);
masque._x = monClip._x=5; // position du masque et du clip en x
masque._y = monClip._y=2; // hauteur
masque.beginFill(0, 400);
masque.moveTo(0, 0);
masque.lineTo(xRight-xLeft, 0);
masque.lineTo(xRight-xLeft, hauteur);
masque.lineTo(0, hauteur);
masque.lineTo(0, 0);
masque.endFill();
blurX = 0;
filtre = new flash.filters.BlurFilter(blurX, 0, 1);
masque.filters = [filtre];
monClip.setMask(masque);
monClip.onEnterFrame = function() {
var dy = Math.abs(this._ymouse-0.5*hauteur);
if (dy>0.5*hauteur) {
vx = vxmin+(vxmax-vxmin)*dy/Stage.height;
} else {
vx = vxmin;
}
this._x -= vx;
if (this._x<xLeft-largeur) {
this._x = xRight;
}
};

Me reste un dernier souci, mettre une police spéciale.
j'ai rajouté ceci :
monFormat.embedFonts = true;
monFormat.font = "test";

crée une police dans ma bibliothèque avec la var test mais la police ne se modifie pas, si tu peux encore m'aider pour ca :)
« Dernière modification: Août 06, 2010, 02:09:50 am par maudekg »
IP archivée
 




 
Wisibility.com
Wisibility est un sité dédié à la formation aux métiers l’image. Vous y trouverez différentes ressources gratuites et payantes vous aidant à maîtriser les logiciels graphiques tels que Photoshop, Illustrator, InDesign, Flash…

Aujourd’hui, Wisibility réunit une vingtaine d’experts, intervenant en Entreprise pour former graphistes, webdesigners, développeurs web, photographes, monteurs, trucistes…

Depuis 2006 nous nous sommes spécialisés dans les tutoriels vidéos permettant de se former à distance. Des centaines de tutoriels accessibles gratuitement et une boutique sur laquelle vous trouverez des formations complètes et des exercices pratiques.

Wisibility organise des événements graphiques, réalise une WebTV

Wisibility sur Adobe TV

Retrouvez nos tutoriels et nos émissions
sur le site officiel Adobe



 
Nos partenaires

Adobe   fotolia   WebINK   Amka   macandphoto   club
 


Contact - Wisibility est une marque déposée - Mentions légales

Creative Commons License

infos - inspiration - rendez-vous - logiciels materiels - tutoriels gratuits - formations en ligne - forums - galeries - glossaire - wisi tv