ENCORE UN TEXTE DÉFILANT MAIS HORIZONTALEMENT ( DU TYPE MARQUEE EN HTML)

vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010 - 21 sept. 2005 à 14:37
fauve1 Messages postés 1 Date d'inscription dimanche 3 janvier 2010 Statut Membre Dernière intervention 19 mai 2010 - 19 mai 2010 à 23:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33862-encore-un-texte-defilant-mais-horizontalement-du-type-marquee-en-html

fauve1 Messages postés 1 Date d'inscription dimanche 3 janvier 2010 Statut Membre Dernière intervention 19 mai 2010
19 mai 2010 à 23:36
et bien qui suis debutant
impossible de faire marchè ce code
SOS quelqu'un peut il m'aider
hubeert1 Messages postés 6 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 5 janvier 2007
5 janv. 2007 à 09:37
un autre code..
qui permet de definir la vitesse sur X sur y la couleur du texte le nombre de fois; le sens haut/bas ou bas/haut droite/gauche et inversement..

function defile(champ,texte,sens,vitesse,debutx,debuty,multiligne,couleur,fois,bashaut) {
champ.selectable=false;
champ.autoSize=true;
champ.wordWrap = multiligne;
champ.text=texte;
champ.textColor=couleur;
sens=="_x" ? (valeur=champ._width,debut=debutx) : (valeur=champ._height,debut=debuty) ;
champ[sens] -= vitesse*bashaut;
if (champ[sens]<=0-valeur && z<fois) { champ[sens] = debut;z+=1 } }

par exemple; ici pour des raisons pratiques monchamp est un texte dynamique caché..


intervalle = setInterval(defile, 20,fchamp2.monchamp,fchamp2.monchamp.text,"_y",1,0,150,true,0x99ff00,2,1);
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
4 janv. 2007 à 17:07
le code donné fonctionne pour des textes statiques ou dynamique normalement.

@+
janetdream Messages postés 86 Date d'inscription samedi 18 mars 2006 Statut Membre Dernière intervention 21 août 2008
4 janv. 2007 à 16:54
Sammy, comment appliqué cet éffet a un texte dynamique ? C'est dans le cadre de la réalistation d'une radio... j'aimerais faire défiler les titres trop longs...
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
4 oct. 2005 à 02:17
ouaip, suis pas très convaincu... le problème (quelques soit l'option choisie) c'est que ça saccade quand même sérieusement... pire quand on importe une police.
j'ai même essayé une interpolation, tiens, pour rire, et la c'est le stromboscope.
à défaut de mieux la méthode de Samy me paraît encore la meilleure,
difficile à dire.
Par contre pour ce qui est de l'utilité, elle me paraît indiscutable. Par ex. annoncer une date en bas de page, le fait que ça défile capte l'attention de l'internaute.
Bon, a+.
(//)
Blacknight91titi Messages postés 1732 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 9 mars 2015 2
26 sept. 2005 à 19:05
Pratique il faut l'avouer mais je ne sais pas si sa va me servir....
Toutefois la contribution est bonne

7/10

Blacknight
hubeert1 Messages postés 6 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 5 janvier 2007
23 sept. 2005 à 20:46
coucou..

function defile(texte,couleur){
u=" "+texte;
champ.textColor=couleur;
if( index++<u.length){
champ.text=u.slice(index)}else{index=0;}}
puis sur un evenement quelquonque
intervalle =setInterval(defile,50,"montexte",0x99ff00);

par exemple champ etant le nom d'un champ ou lon fait defiler le texte autant qu'on ne clear pas le setIntervalle.. mais bon ca ne rajoute pas grand chose de plus
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
22 sept. 2005 à 09:46
Lol...disons que pour un cas précis, avec un besoin bien particulier, on peut sans doute avoir besoin de ta fonction...mais en général il vaut mieux utiliser les propriétés toutes faites et essayer de s'en sortir avec!

...y'a d'autres façon de faire encore (ex: un masque et changer simplement la position sur X du texte, avec p-ê une duplication pour simuler la boucle)

Ou alors tu nous crées un composant TexteDéfil (mais je crois que ça existe déjà...va voir sur Macromédia, y'a plein de trucs intéressants!)

@+! Samy
cs_f6xara Messages postés 68 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 6 février 2008
22 sept. 2005 à 08:42
yes merci goldenboy68 pour ce commentaire plus qu'instructif :)
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
21 sept. 2005 à 19:41
Pour faire défiler de gauche à droite et inversement:

//CODE***********
this.contenu.text="de toute façon ça tourne en boucle aussi";
this.onEnterFrame=function(){
if(sens=="2"){
if(this.contenu.hscroll<=0){
sens="1";
}else{
this.contenu.hscroll-=2;
}
}else{
if(this.contenu.hscroll==this.contenu.maxhscroll){
sens="2";
}else{
this.contenu.hscroll+=2;
}
}
}
//**************************************

Pour faire défiler en boucle (mais c'est vrai que là ça saccade):

this.contenu.text="de toute façon ça tourne en boucle aussi";
this.onEnterFrame=function(){
if(this.contenu.hscroll==this.contenu.maxhscroll){
this.contenu.hscroll=0
}else{
this.contenu.hscroll+=2;
}
}


Enfin, un setInterval qui imite ta fonction, mais en plus court:

// *********CODE****************
this.contenu.text="de toute façon ça tourne en boucle aussi";
this.delai=100;
intervalleDeplacement=setInterval(function(){
_root.varTexte=_root.contenu.text;
_root.contenu.text=_root.varTexte.substring(1,_root.varTexte.length)+_root.varTexte.charAt(0);
},_root.delai);
//******************************

@+! Samy
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
21 sept. 2005 à 19:26
Je me trompe peut etre mais avec this.test.hscroll+=2; le texte va défiler une fois puis s'arréter et non pas tourner en boucle


je suis assez d accord ... 'est pour cela que je trouvais le this.test.hscroll+=2 assez limité ....
cs_f6xara Messages postés 68 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 6 février 2008
21 sept. 2005 à 18:13
Je me trompe peut etre mais avec this.test.hscroll+=2; le texte va défiler une fois puis s'arréter et non pas tourner en boucle
cs_goldenboy68 Messages postés 1596 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 9 juin 2011 2
21 sept. 2005 à 17:45
Hmmm...10/10? Ok, ça marche peut-être, mais t'aurais dû passer par le forum pour demander comment on pourrait faire ton effet...tu t'es amusé pour rien (ça fait pas de mal de se creuser les méninges, donc pas totalement pour rien! lol).

Bref, pourquoi:
this.onEnterFrame=function(){
this.test.hscroll+=2;
}

'test' étant une zone de saisie par exemple. Si tu lui attribues une valeur à l'origine, ça va défiler et s'arrêter tout seul. Si tu insères du texte dans l'anim, le texte défile automatiquement! C'est pas génial ça?

...en tout cas, c'est peut-être la raison pour laquelle tu n'as pas trouvé de code qui reproduise un tel défilement! lol

@+! Samy (6/10 car ça fonctionne...même si je l'utiliserai sans doute jamais)
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
21 sept. 2005 à 14:37
bien pratique mon cher, cela va servir !!! thx pour ta contribution !