Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

Re: ClipTexte défilant, code

Envoyé: 1er juin 2004, 13h12 par dada


Salut,

je t'écris surtout pour répondre à tes 2 questions car je n'ai pas de temps, beaucoup de boulot en ce moment...

- tu dis qu'il y a des bugs, je pense que c'est parce que je n'ai pas géré tous les évènements souris nécessaires, je viens de regarder, apparement, en modifiant la section ROLLOUT par la suivante, çà devrait corriger le bug (j'ai rajouté la gestion du dragOut ):

// ROLL OUT
this.ConteneurEnsemble.ConteneurTexte.onRollOut = this.ConteneurEnsemble.ConteneurTexte.onDragOut = function () {
this.MonterClipTexte(1, 50);
}

on peut aussi rajouter le DragOver :
// ROLL OVER
this.ConteneurEnsemble.ConteneurTexte.onRollOver = this.ConteneurEnsemble.ConteneurTexte.onDragOver = function () {
delete this.onEnterFrame;
}
Avec çà, çà devrait aller, le texte défile sauf quand la souris est au-dessus.

- Je te cite :
" il serait bon que le texte ne retombe pas à la fin (en haut), mais disparaisse peu à peu et reapparaisse peu à peu en bas ".

---> je ne comprend pas car c'est exactement le fonctionnement que j'ai chez moi : le texte disparait peu à peu par le haut, puis réaparait peu à peu par le bas; il ne retombe pas brusquement. Le rendu est le même que celui de l'adresse que tu as donnée plus haut. Je ne me serais pas permis de donner quelque chose avec une saute dans le défilement.

Cà vient peut-être du texte qui ne veut pas être masqué pour je ne sais quelle raison, peut-être à cause de la police qui était utilisée ou du fait que tu bosses sous Mac (si c'est le cas).
J'ai rajouté 3 lignes :

this.MonFormat = new TextFormat();
this.MonFormat.font = "_sans";
this.ConteneurEnsemble.ConteneurTexte.ChampTexte.setNewTextFormat(this.MonFormat);

ces 3 lignes permettent de spécifier une poilce de caractere pour le texte. "_sans" signifie que c'est ton système qui va définir quelle police la plus proche de l'arial utiliser. Si tu as toujours le problème du texte qui ne disparait pas sous le masque, essaye de remplacer _sans par le nom d'une police qui est sur ton système. Si tu as toujours le même problème, dis-le, j'aimerais bien comprendre...

Voilà, je n'ai vraiment pas plus de temps pour t'aider (cette semaine va être chargée pour moi), bonne continuation... et tiens moi au courant...

Voici TOUT le code avec les modifs ci-dessus incluses :

--------------------------------------


// Texte à afficher :
ContenuTexte = "Si vous voyez un texte qui défile\ret qui s'arrête quand on passe au dessus\ralors : çà marche !! ;-)";

// Création d'un clip contenant tout le reste (c'est plus propre et pratique)
this.createEmptyMovieClip("ConteneurEnsemble", 1);

// Pour placer le texte dans la page, il faut agir sur ce clip :
with (this.ConteneurEnsemble) {
_x = 100;
_y = 100;
}

// Création du clip qui contient le champ de texte
this.ConteneurEnsemble.createEmptyMovieClip ("ConteneurTexte",1);

// Création du champ de texte dans le clip
this.ConteneurEnsemble.ConteneurTexte.createTextField ("ChampTexte",2, 0, 0, 150, 50);

// Création d'un Format de Texte, on y définit Arial comme police.
this.MonFormat = new TextFormat();
this.MonFormat.font = "_sans";

// autosize pour que la taille du champ de texte s'ajuste au texte contenu (en largeur)
this.ConteneurEnsemble.ConteneurTexte.ChampTexte.autoSize = "left";

// On applique le format de texte au champ de texte
this.ConteneurEnsemble.ConteneurTexte.ChampTexte.setNewTextFormat(this.MonFormat);

// On applique le texte au champ texte
this.ConteneurEnsemble.ConteneurTexte.ChampTexte.text = ContenuTexte;

// plus besoin de cette variable: on l'efface
delete ContenuTexte;

// Création du clip vide Masque
this.ConteneurEnsemble.createEmptyMovieClip ("Masque",3);

// On dessine un carré de la taille du ChampTexte dans le masque
with (this.ConteneurEnsemble.Masque) {
lineStyle(); // aucune ligne
beginFill(0x000000); // remplissage noir
// on utilise largeur et hauteur du clip contenant le champ texte (l'autosize influant dessus)
// si on veut que le masque soit plus petit que le texte(en hauteur), il faut agir sur les coordonnées des 3 prochaines lignes(*)
lineTo (this.ConteneurEnsemble.ConteneurTexte._width,0);
lineTo (this.ConteneurEnsemble.ConteneurTexte._width,this.ConteneurEnsemble.ConteneurTexte._height);// (*)par exemple rajouter "-50" à "_ height" ici
lineTo (0,this.ConteneurEnsemble.ConteneurTexte._height); // (*)et là
lineTo (0,0);
}

// on applique le masque au clip ConteneurTexte
this.ConteneurEnsemble.ConteneurTexte.setMask(this.ConteneurEnsemble.Masque);

// Fonction pour faire monter le clip du ChampTexte
// Paramètre "Pas": Le nombre de pixels de déplacement à chaque image
// Paramètre "Limite": Le nombre de pixel que l'on rajoute à la disparition avant que le texte ne réaparaisse en bas
MovieClip.prototype.MonterClipTexte = function (Pas, Limite) {
// On attache les variables à ce clip
this. Pas = Pas;
this.Limite = Limite;
// On céé une boucle EnterFrame
this.onEnterFrame = function () {
with (this) {
// On diminue la coordonnée Y de 'this' (ConteneurTexte) de 'Pas' pixel
this._y -= Pas;
// Quand le clip ConteneurTexte disparait, il faut remettre le clip en dessous (en Y) du masque
if (this._y < (-this._height - Limite)) {
this._y = this._height;
}
}
}
}

// ROLL OUT
this.ConteneurEnsemble.ConteneurTexte.onRollOut = this.ConteneurEnsemble.ConteneurTexte.onDragOut = function () {
this.MonterClipTexte(1, 50);
}

// ROLL OVER
this.ConteneurEnsemble.ConteneurTexte.onRollOver = this.ConteneurEnsemble.ConteneurTexte.onDragOver = function () {
delete this.onEnterFrame;
}

// On envoie le défilement pour la premiere fois
this.ConteneurEnsemble.ConteneurTexte.MonterClipTexte(1, 50);

---------------------------------------


dada


Réponses

 sp spRe: ClipTexte défilant, code fabinouze1/6/2004
 sp spRe: ClipTexte défilant, code dada2/6/2004
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@