accrocher vos ceintures
le décor pour que vous compreniez le pourquoi du comment...
je suis en train de réaliser un CMS 100% Flash
j'ai donc réalisé un éditeur de texte avec insertion de lien et d'images et toutes les mises en formes possibles sous flash
j'insére mes images dans mon champs texte html avec une fonction (aprés avoir choisi mon image parmi une liste dispo sur le serveur local)
l'image s'insére dans mon texte, nickel..même plusieurs images à gauche, à droite..enfin bref le paradi
Mes images sont donc insérées sous forme d'une balise <img> classique avec une id distincte pour les différencier
Afin de permettre l'édition des paramètres de chaque image, il me faut la rendre clickable (afin de faire réaparraitre la fenêtre qui gérer largeur hauteur et src entre autres)
pour cela , au moment de l'insertion de l'image, j'utilise MovieClipLoader pour gérer le survol futur sur l'image avec un écouteur d'événement situé dans la même fonction.
je vous livre le contenu de la dite fontion (qui marche trés bien à un détail prét (voir plus bas))
function appliquerimage() {
// curentid est le numéro incrémenté pour l'id de chaque image
currentid = currentid+1;
// imgtext est le code html de l'image à insérer
imgtext = "</p><IMG SRC=\""+mesimages.finaladresse+"\" WIDTH=\""+mesimages.finalwidth+"\" HEIGHT=\""+mesimages.finalheight+"\" ALIGN=\""+mesimages.finalalignement+"\" HSPACE=\""+mesimages.finalhspace+"\" VSPACE=\""+mesimages.finalvspace+"\" ID=\"image"+currentid+"\"><p>";
//j'ai coupé une partie du code qui ici insére imgtext dans le code html existant (sans intéré pour ma question)
//je cré donc un MovieClipLoader pour pouvoir gérer le rollover sur l'image
var monMcl = new MovieClipLoader();
var monEcouteur = new Object();
// ici j'ai simplifié au max, quand l'image est chargée,
monEcouteur.onLoadInit = function(target_mc) {
target_mc.onRollOver= function (){
//la je réaffiche mon sélecteur de fichiers afin de modifier les paramétres de l'image, c'est pas encore fait, mais un truc à la fois
}
};
//je lance l'écouteur
monMcl.addListener(eval("monEcouteur"+currentid));
//et je recharge l'image dans le "texte" et la balise img qui correspond
monMcl.loadClip(mesimages.finaladresse, eval("texte.image"+currentid));
.
}
Tout ça c'est trés bien, mais voila
quand je charge ma première image, ça marche (logique, c'est la première le listener est dévolue à ma première image, parfais)
Quand je charge une deuxième image c'est moins bien car le listener se met à la disposition de ma deuxième image (logique aussi car je n'ai pas créé des listener pour chacunes)
etc etc
ET c'est bien là le problème, comment créer dynamiquement des écouteur d'événement pour plusieurs images dans mon texte...
j'ai essayé en nomant dynamiquement les variables
set("monMcl"+currentid, new MovieClipLoader());
set("monEcouteur"+currentid, new Object());
this["monEcouteur"+currentid].onLoadInit = function(target_mc) {
target_mc.onRollOver= function (){
etc etc, mais rien n'y fait car mon Addlistener est toujours dans la même fonction...
et là je séche...
HELP!
Worraps