Scroller image + texte dynamiques

Résolu
Cgaybeul Messages postés 105 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 11 décembre 2006 - 12 févr. 2006 à 11:32
Cgaybeul Messages postés 105 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 11 décembre 2006 - 14 févr. 2006 à 08:26
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

Cgaybeul Messages postés 105 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 11 décembre 2006
14 févr. 2006 à 08:26
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 !!!
3
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
12 févr. 2006 à 17:28
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)...
0
Cgaybeul Messages postés 105 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 11 décembre 2006
13 févr. 2006 à 08:42
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 !!!
0
Rejoignez-nous