Forums Développement Multimédia

Aller au contenu

onRelease qui fonctionne pas, pas de message d'erreur

CODE Actionscript

15 réponses à ce sujet

#1 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 22 September 2008 - 16:53 PM

Bonjour,
je bloque encore sur mon bout de code... icon_razz.gif
que je vous recolle ici :

Action Script


_root.galeriev = galerieXml.firstChild.childNodes;
_root.long = galeriev.length;

for (i=0; i < _root.long; i++) {
var mini = galeriev[i].attributes.cheminmini;
_root.createEmptyMovieClip("bitmap_mc"+i, i+10);
_root["bitmap_mc"+i].loadMovie(mini);
var clip = _root["bitmap_mc"+i];
clip.indice = i;
clip.grand = galeriev[this.indice].attributes.grand;
clip.des = galeriev[this.indice].attributes.des;
clip.onRelease = function(){
getURL("java script:LightboxDelegate('"+this.grand+"','"+this.des+"')");
}
}

Donc cette fois, je ne sais toujours pas si mes liens fonctionnent puisque le onRelease n'agit tout simplement pas, je passe la souris le curseur ne change même pas... d'autre part je n'ai aucun message lorsque je test mon animation, les images s'affichent mais rien.
Je n'ai pas donc aucune idée de ce que j'ai fait de travers, et après maintes recherches je me remets à vous icon_biggrin.gif
Merci

#2 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 22 September 2008 - 17:13 PM

salut

quand tu fais un loadMovie, quand le clip se charge il efface tout ce qui se trouve sur le clip y compris le code
il faut donc attendre que le clip soit charger avant de lui donner une action
ou alors charger l'image dans un clip creer dans le clip

pour charger tes images utilise plutot la classe MovieClipLoader
http://flash.mediabox.fr/index.php?showtopic=84898

a+

#3 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 22 September 2008 - 17:36 PM

Ah ok!
eh bien encore merci paodao smile.gif !

#4 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 22 September 2008 - 17:42 PM

icon_biggrin.gif

#5 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 22 September 2008 - 18:17 PM

Arg toujours pas de réaction sad.gif
J'ai lu ton tuto et j'ai changé comme ça :

Action Script


for (i=0; i < _root.long; i++) {
var mini = galeriev[i].attributes.cheminmini;
_root.createEmptyMovieClip("bitmap_mc"+i, i+10);
listener = new Object();
mcl = new MovieClipLoader()
mcl.addListener(listener);
mcl.loadClip(mini,"bitmap_mc"+i);
listener.onLoadInit = function(mc){
var clip = _root["bitmap_mc"+i];
clip.indice = i;
clip.grand = galeriev[this.indice].attributes.grand;
clip.des = galeriev[this.indice].attributes.des;
clip.onRelease = function(){
getURL("java script:LightboxDelegate('"+this.grand+"','"+this.des+"')");
}
}

}

Maintenant comme je suis débutante j'ai du zapper un truc mais je ne vois vraiment pas !

#6 omegear

    Ceinture Orange

  • Members
  • PipPipPip
  • 41 messages

Posté 24 September 2008 - 23:30 PM

Salut,
j'ai exactement le même problème que toi.
J'ai également testé la technique de Paodao, mais rien n'y fait.


Un peu d'aide ? icon_smile.gif
D'avance merci !

#7 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 25 September 2008 - 09:13 AM

salut

quand ton clip se charge, la boucle est fini depuis longtemps
donc i est egal a la derniere valeur qu'il a pris , soit _root.long
donc
clip.indice = i;
ne marchera pas

a+

#8 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 25 September 2008 - 21:58 PM

Ok merci mais au risque de passer pour un boulet :
malgré tout le mal que je me donne pour comprendre ces histoires de boucles bouclées, je ne comprends vraiment pas où mettre mon code, si je le mets avant le chargement du clip rien ne fonctionne, quand je mets var clip et l'indice avant c'est juste la dernière qui fonctionne... si c'était expliqué quelque part je ne vous embêterais pas ici icon_razz.gif

en plus je pensais que justement l'indice permettait de se concentrer sur la valeur du "i" en cours et pas la dernière !

en bref, quelle syntaxe serait appropriée pour boucler mon image cliquable ?

#9 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 30 September 2008 - 07:04 AM

Personne ne peut m'aider ? (s'il vous plait icon_wink.gif )


#10 aurelien.ruaro

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 201 messages

Posté 30 September 2008 - 08:00 AM

En fait tu n'as pas besoin faire ça (déjà ça marche pas car i aura toujours la meme valeur, celle qu'il a eu à la fin de la boucle)

Action Script

var clip = _root["bitmap_mc"+i];  

il te suffit de faire

Action Script

var clip = mc; //parametre qui est dans onLoadInit et qui correspond au clip surlequel tu charges l'image 

ensuite il faut que que cette ligne

Action Script

clip.indice = i;  

ne soit pas dans la fonction onLoadInit mais ton ta boucle sinon tous tes clip auront le meme indice.

et enfin
dans le onLoadInit

si tu fais reference à this, ça te renvoie le loader et non le clip qui t'interesse il faut donc mettre

clip.indice à la place de this.indice

Par contre dans le onRelease la référence à this est bonne car tu es dans le clip

#11 aurelien.ruaro

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 201 messages

Posté 30 September 2008 - 08:21 AM

Autant pour moi, mais mon précédent post ne résoudra pas ton probleme. En effet flash supprime les proprités que tu ajoutes dynamiqumenet. Il faut faire comme a dit paodao c'est à dire creer une autre clip dans ton clip. Tu affectes toutes les propriétés au clip parent mais tu charges l'images dans le clip enfant.

voila à quoi doit ressembler ton code :

Action Script

for (i=0; i < _root.long; i++) { 
var mini = galeriev[i].attributes.cheminmini;
bitmap_mc = _root.createEmptyMovieClip("bitmap_mc"+i, i+10); // on creer le clip qui va contenir le clip sur lequel on charge l'image et surlequel on va mettre des propriétés.
img_mc = bitmap_mc.createEmptyMovieClip("img_mc", 5); // on creer le clip qui va contenir l'image dans un autre clip
listener = new Object();
mcl = new MovieClipLoader()
mcl.addListener(listener);
mcl.loadClip(mini,img_mc);
hote_mc.indice = i;
listener.onLoadInit = function(mc){
var clip = mc;
clip.grand = galeriev[clip._parent.indice].attributes.grand;
clip.des = galeriev[clip._parent.indice].attributes.des;
clip.onRelease = function(){
getURL("java script:LightboxDelegate('"+this.grand+"','"+this.des+"')");
}
}

}

Avec ça tu devrais t'en sortir

#12 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 30 September 2008 - 08:55 AM

Aah merci beaucoup AurelR ! Il y a bien un lien sur chaque image icon_smile.gif Enfin !

Par contre lightbox n'a pas l'air de trouver l'emplacement de la variable "clip.grand" (ou this.grand) et je sais qu'il a déjà fonctionné... *s'arrache les cheveux*

#13 aurelien.ruaro

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 201 messages

Posté 30 September 2008 - 09:04 AM

Dans le onRelease fait un trace (this.grand) et dis moi ce qu'il te met

#14 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 30 September 2008 - 13:20 PM

Il met "undefined".

#15 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 30 September 2008 - 13:25 PM

salut
essaye

Action Script


for (i=0; i < _root.long; i++) {
var mini = galeriev[i].attributes.cheminmini;
bitmap_mc = _root.createEmptyMovieClip("bitmap_mc"+i, i+10); // on creer le clip qui va contenir le clip sur lequel on charge l'image et surlequel on va mettre des propriétés.
img_mc = bitmap_mc.createEmptyMovieClip("img_mc", 5); // on creer le clip qui va contenir l'image dans un autre clip
listener = new Object();
listener.index = i
mcl = new MovieClipLoader()
mcl.addListener(listener);
mcl.loadClip(mini,img_mc);
hote_mc.indice = i;
listener.onLoadInit = function(mc){
var clip = mc;
clip.grand = galeriev[this.index].attributes.grand;
clip.des = galeriev[this.index].attributes.des;
clip.onRelease = function(){
getURL("java script:LightboxDelegate('"+this.grand+"','"+this.des+"')");
}
}

}
a+

#16 flouuu

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 30 September 2008 - 13:54 PM

Mercii ! C'est ok. Merci padao et merci AurelR je vais enfin pouvoir avancer icon_razz.gif



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP