Scroller image + texte dynamiques [Résolu]

Signaler
Messages postés
105
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2006
-
Messages postés
105
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2006
-
J'ai un petit problème que je n'arrive pas à résoudre depuis quelques jours, retourné dans tous les sens et dans les limites de mes connaissances de l'AS !!!

J'essai de faire un bandeau avec images + textes défilants en fonction de la position de la souris.

Je charge des textes et images dynamiquement depuis un fichier XML.
Pas de problèmepour le chargement, j'arrive à positionner mes images les une à côté des autres en fonction de leur largeur, mais je n'arrive pas à mettre le texte correspondant en dessous de chaque image : si je crée montexte dasn l'écouteur, j'ai le dernier texte du xml qui se duplique sous chaque image. Si je met "myText" dasn "myClip", le texte ne s'affiche pas (problème de taille de myClip ?) ...

bref je ne trouve pas d'issue à mon problème.

Ca doit pas être bien compliqué, mais ça arrive aux limites de ma compréhension de ca que je fais et tester à l'infini sasn comprendre c'est pas drôle ni constructif !!!
Voilà ma fonction, qui est lancé avec setinterval tant que j'ai des noeuds dans le XML

function affichage() {
vitesse = myXML.firstChild.attributes.VITESSE;
// Creation de l'image
var myClip = Clip.createEmptyMovieClip("Image_"+j, 200+j);
////////////////////////////////////////////
loader = new MovieClipLoader();
listener = new Object();
listener.onLoadInit = function(myClip) {
largeur = myClip._width;
hauteur = myClip._height;
ratio = largeur/hauteur;
// redimensionne les images si top haute
if (myClip._height>HauteurImage) {
myClip._height = HauteurImage;
myClip._width = HauteurImage*ratio;
}
largeur = myClip._width;
position += largeurprecedente+5;
myClip._x = position;
largeurprecedente = largeur;
largeurClips = position+largeur;
};
loader.addListener(listener);
loader.loadClip(image, Clip["Image_"+j]);
// Scroll des images
_root.onEnterFrame = function() {
// Vérifie si besoin de scroller
if (largeurClips>LargeurAnim) {
var deplacement = ((LargeurAnim/2)-_root._xmouse)/20;
if (_root._xmouse<LargeurAnim/2-20 && LesClips._x<0) {
LesClips._x += deplacement;
}
if (_root._xmouse>LargeurAnim/2+20 && LesClips._x>LargeurAnim-largeurClips) {
LesClips._x -= -deplacement;
}
}
};
// Creation du texte -- (Nom, niveau, X, Y, Largeur, Hauteur)
var myText = Clip.createTextField("Legende"+j, 100+j, 0, HauteurImage+8, 150, 30);
with (Clip["Legende"+j]) {
html = true;
text = titre;
// adaptation du clip à la longueur du texte
var longueurTxt = Clip["Legende"+j].length*5;
_width = longueurTxt;
monFormat = new TextFormat("Arial", 10, 0x333333);
setTextFormat(monFormat);
}
}

merci d'avance pour toute suggestion ou piste même mauvaise

3 réponses

Messages postés
105
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2006

ouf !!! j'ai touvé !

En fait c'est ce que je disais c'est tout bête, il me suffisait de créer chaque clip image et son texte dans un autre clip que je positionne, le tout dasn le clip "global" qui bouge ...

merci quand même d'avoir pris la peine de répondre à mon post !!!
Messages postés
1575
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
21 février 2011
2
Salut

with (Clip["Legende"+j]) {
html = true;
text = titre;
// adaptation du clip à la longueur du texte
var longueurTxt = Clip["Legende"+j].length*5;
_width = longueurTxt;
monFormat = new TextFormat("Arial", 10, 0x333333);
setTextFormat(monFormat);
}

prob dans ce que je te met en rouge, tu est deja dans Clip.Legende1 (par ex) et tu cherches Clip.Legende1.lenght dedans, .... faut appelé que lengh avec le with que t'as mis au dessus !
bon en plus .length d'un clip ca existe pas !
pour finir tu met en 2nd ligne html = true; donc un texte en html ! alors pourkoi en dessous tu change la propriété text ??? c htmlText la propriété contenant la chaine de charactere a afficher en html ....
allé corrige tt ca et ca devrais mieux allé
++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter les réponses qui vous conviennent
ATTENTION toute mes réponses sont pour Flash 8 (mettez vous à jour)...
Messages postés
105
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
11 décembre 2006

Merci pour cette réponse !



Oui effectivement, deux petites erreurs dues au fait de déplacer cette
partie et aux nombeux tests, mais qui n'ont pas d'incidence sur mon
problème.



J'ai peut-être pas été clair ??? Je positionne mes images une à une, en fonction de la largeur de la précédente.

Avec le code ci dessus, j'affiche sans problème mon texte, mais je n'arrive pas à le positonner sous chaque image ...

Il faudrait que j'arrive à récupèrer ma variable "largeurprecedente" pour positionner chaque texte mais je n'y arrive pas.


J'ai essayé avec ça :

var myText = myClip.createTextField("Legende"+j, 100+j, 0, HauteurImage+8, 150, 30);

Donc avec le texte et l'image dasn le même clip.


Dans ce cas

- mon texte ne s'affiche plus (je pense parce que myClip c'est l'image (?), problème de hauteur ???)

- si je crée mon TexteField dans mon écouteur, mon
texte est bien positionné en dessous de chaque image, mais le contenu
de chaque TextField est la valeur du dernier !!!

- si j'essai de positionner mon TextField dasn mon
éouteur je n'arrive dasn ce cas pas à récupèrer chaque Clip["Legende"+j]



d'autres idées ou suggestions ?

merci d'avance !!!