Soucis réalisation portfolio en AS3 : plusieurs MouseEvent

Soucis réalisation portfolio en AS3 : plusieurs MouseEvent - Flash/ActionScript - Programmation

Marsh Posté le 11-11-2008 à 16:59:27    

:hello:  
 
Je suis entrain de réaliser un portfolio, super basique, mais j'ai quelques soucis.  
Ayant un niveau faible en AS2, j'ai malgré tout tenté de le faire en AS3 (si déja...)
 
Le code se situe sur un calque actions comme il se doit.
J'ai 3 bouton, qui sont censé renvoyé chacun à une frame différente.
 
J'ai donc trouvé qu'il fallait faire de la façon suivante en AS3 :
 

Code :
  1. var me:MovieClip = this;
  2. var go:Function = function(evt:MouseEvent):void { me.gotoAndPlay(10); }
  3. design_btn.addEventListener(MouseEvent.MOUSE_DOWN, go);


 
Voici l'exemple pour le 1er bouton, mais comment faire pour les 2 boutons suivants ?
J'ai tenté de bêtement copier la fonction 3x de suite mais évidemment ça ne marche pas.
 
merci  :jap:


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 11-11-2008 à 16:59:27   

Reply

Marsh Posté le 11-11-2008 à 19:08:25    

Normal, un copier collé duplique tes fonctions, et la ton compileur ne comprend plus rien ("bordel, j'ai 3 fonctions go" )
Donc, renomme tes fonctions...
 

Code :
  1. stop();
  2.  
  3. function go1(e:Event){this.gotoAndStop(1)}
  4. function go2(e:Event){this.gotoAndStop(2)}
  5. function go3(e:Event){this.gotoAndStop(3)}
  6.  
  7. btn1.addEventListener(MouseEvent.CLICK, go1)
  8. btn2.addEventListener(MouseEvent.CLICK, go2)
  9. btn3.addEventListener(MouseEvent.CLICK, go3)


 
PS, qq1 sait comment ne faire qu'une fonction (avec pour argument la frame à viser), car je n'arrive pas à le faire au sein d'un Listener...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 11-11-2008 à 22:38:54    

Excellent, ça marche, merci beaucoup.
 
En plus c'est plus clair.


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 12-11-2008 à 03:49:25    

Si jamais quelqu'un passe à nouveau ici, j'ai un autre soucis.
 
J'aimerais charger une image lorsque je clique sur un bouton (bt1 on charge l'image 1, bt2 charge l'image 2, etc).
 
 
J'ai trouvé ce code :
 

Code :
  1. var chargeur:Loader = new Loader();
  2. var adresse:URLRequest = new URLRequest("design/flyer1.jpg" );
  3. chargeur.load(adresse);
  4. addChild(chargeur);
  5. flyer1_btn.addEventListener(MouseEvent.CLICK,charger1);
  6. function charger1(evt:MouseEvent) {
  7. adresse = new URLRequest("design/flyer1.jpg" );
  8. chargeur.load(adresse);
  9. }


 
Mais l'image s'affiche dès le début et non au clic sur le bouton.
 
A nouveau ça doit être un truc tout con, mais je trouve pas :/


Message édité par H@wk le 12-11-2008 à 04:09:35

---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 12-11-2008 à 08:23:58    

et bien, normal, tu as mis le load() en dehors du listener...
Par ailleurs, même en effaçant le load() d'en haut, dis toi bien qu'à chaque fois que tu cliqueras, il superposera la nouvelle image... tu aura visuellement ce que tu souhaite, mais ça peut faire lourd si tu ne suppr pas petit à petit...
 
Autre chose, encore une fois, j'aimerais qu'un doué passe par ici pour nous apprendre à mettre un argument dans la fonction appelé par le listener, ça nous eviterai de faire une fonction par bouton alors qu'un seul indice change...
 
EDIT : Corrigé

Message cité 1 fois
Message édité par abais le 12-11-2008 à 16:42:17

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-11-2008 à 08:26:02    

Je pense que le problème le plus urgent à resoudre n'est pas d'apprendre une syntaxe, mais bien une logique de programmation, lister ce dont tu as besoin...
Bref, le même souci que moi :p


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-11-2008 à 14:14:08    

abais a écrit :

et bien, normal, tu as mis le load() (et le addchild) en dehors du listener...
Par ailleurs, même en effaçant le load() d'en haut, dis toi bien qu'à chaque fois que tu cliqueras, il superposera la nouvelle image... tu aura visuellement ce que tu souhaite, mais ça peut faire lourd si tu ne suppr pas petit à petit...


 
Hmmm ok.
 
Je vois à peu près, mais bon, de là à le réaliser...  :D  
 

abais a écrit :

Je pense que le problème le plus urgent à resoudre n'est pas d'apprendre une syntaxe, mais bien une logique de programmation, lister ce dont tu as besoin...
Bref, le même souci que moi :p


C'est vrai en fait, faudrait que je réapprenne en profondeur, ça fait des mois que j'ai appris ça et j'ai plus pratiqué donc j'ai tout oublié... surtout que j'avais appris en AS2 donc c'est un peu déroutant.
Mais le truc c'est que j'ai juste ce portfolio simpliste à faire, donc je sais pas si ça vaut le coup.
 
Mais au vu de ton site, tu as l'air de bien te débrouiller quand même je trouve.


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 12-11-2008 à 16:07:56    

H@wk a écrit :

Mais au vu de ton site, tu as l'air de bien te débrouiller quand même je trouve.


Héhé, merci, mais mon portfolio est très sommaire et réalisé en AS2, comme quoi on peut faire bien avec peu ^^
En AS3, ça change la donne, je repars à 0, difficile quand on a jamais eu de formation en programmation...
Je vais justement refaire mon site, mais j'attends la sortie officiel de flash player 10 vu que j'utilise l'axe z...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-11-2008 à 17:11:33    

Oublie l'absurdité que je t'ai dis plus haut, le fait d'exécuter load() plusieurs fois ne provoquera aucune superposition...

Code :
  1. // Donc, je créé mon Loader :
  2.  
  3. var chargeur:Loader = new Loader();
  4. var adresse:URLRequest // je declare adresse sans lui donner de valeur
  5. addChild(chargeur);
  6.  
  7. // voila, mon loader est fait mais ne contient rien !
  8. // Maintenant, les fonctions appelés par les listener
  9.  
  10. function go1(e:Event){
  11.     adresse= new URLRequest("prout.jpg" );
  12.     chargeur.load(adresse);
  13.     }
  14.  
  15. function go2(e:Event){
  16.     adresse= new URLRequest("rote.jpg" );
  17.     chargeur.load(adresse);
  18.     }    
  19.  
  20. btn1.addEventListener(MouseEvent.CLICK, go1)
  21. btn2.addEventListener(MouseEvent.CLICK, go2)


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 13-11-2008 à 06:28:15    

Merci :)
 
J'ai adapté le code à mon anim, ça marche :)
 
Maintenant, 2/3 problèmes que je n'arrive pas à résoudre :
 
- comment choisir l'emplacement où s'affichera l'image ? (elles s'affichent en-haut à gauche de l'écran).
- comment faire pour que l'image s'enlève (unload ?) quand je passe à une autre rubrique de mon portfolio ?
 
 :jap:
 
Jviens de me rendre compte que j'ai un peu de mal à savoir où placer mon code, mais bon, pour le moment ça marche comme je veux, donc ça va.

Message cité 1 fois
Message édité par H@wk le 13-11-2008 à 06:41:16

---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 13-11-2008 à 06:28:15   

Reply

Marsh Posté le 13-11-2008 à 10:13:24    

H@wk a écrit :

comment choisir l'emplacement où s'affichera l'image ? (elles s'affichent en-haut à gauche de l'écran)


Simple, tu defini la position de chargeur, vu que c'est lui qui "contient" l'image...

Code :
  1. chargeur.x = 50;
  2. chargeur.y = 90;


Ou placer le code ? dans le sens logique de lecture  :wahoo:  (par exemple, la position doit etre défini après ta commande qui crée chargeur, logique...)
Ah oui, rien ne t'empeche de changer la position de tes images (ou leur taille) dans les fonctions du listener...
Je te conseil sincèrement de reprendre tout à zero, car j'ai l'impression que tu copie du code trouvé sur les sites sans comprendre ce qu'il signifient.
 
Concernant le "unload", je sais pas, mais tu peux toujours cacher chargeur avec "chargeur.visible = false;" (en remettant true si tu reviens dans ta galerie)...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 13-11-2008 à 18:20:19    

abais a écrit :


Simple, tu defini la position de chargeur, vu que c'est lui qui "contient" l'image...

Code :
  1. chargeur.x = 50;
  2. chargeur.y = 90;



 
Merci.
Je devrais cependant les afficher en tenant compte du compte supérieur droit, et non gauche.  
Ca doit être tout bête, mais c'est le genre de truc que je trouve pas en faisant des recherches sur le net.
 
Déja la plupart des tutos sont pour AS2 et ensuite ils sont beaucoup trop avancés, alors que je cherche souvent des infos basiques :/
 

Citation :

Ou placer le code ? dans le sens logique de lecture  :wahoo:  (par exemple, la position doit etre défini après ta commande qui crée chargeur, logique...)
Ah oui, rien ne t'empeche de changer la position de tes images (ou leur taille) dans les fonctions du listener...
Je te conseil sincèrement de reprendre tout à zero, car j'ai l'impression que tu copie du code trouvé sur les sites sans comprendre ce qu'il signifient.


 
C'est vrai. Le truc c'est que j'ai des idées, mais j'arrive pas à savoir quoi utiliser pour les réaliser.
 
 

Citation :

Concernant le "unload", je sais pas, mais tu peux toujours cacher chargeur avec "chargeur.visible = false;" (en remettant true si tu reviens dans ta galerie)...


 
Nickel, ça marche.
 


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 13-11-2008 à 19:32:52    

je vois pas l'interet de placer par rapport au coin de droite...
Si les images sont toujours de la meme taille, alors il suffit d'une soustraction...
 
position x = largeur de la scene - largeur de l'image, logique non ?
 
Si l'image n'a pas toujours la meme taille, il faut l'integrer la position au fonction...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 13-11-2008 à 20:51:47    

Je veux la placer par rapport au coin de droite tout simplement car ça colle avec mon interface.
De plus, les images sont de tailles différentes.
 
Voila une image pour mieux comprendre :
 
http://img258.imageshack.us/img258 [...] liopf0.jpg
 
En bas les 3 catégories, là je viens de cliquer sur "design" par exemple, et donc les 3 carrés s'affichent.
Quand je clique sur un carré, une image s'affiche dans le coin supérieur droit.
 
Je vais continuer à chercher, ainsi qu'un loader histoire que les visiteurs savent ce qu'il va se passer.
 
 
edit : bon, en fait c'est pas si grave, de toute façon je vais devoir redimensionner les images (screenshots, photos) donc ça posera pas trop de problème.


Message édité par H@wk le 13-11-2008 à 21:43:16

---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 17-11-2008 à 23:12:31    

Tu es encore là abais ?  
 
Pour en revenir à ce code :

Code :
  1. var chargeur:Loader = new Loader();
  2. var adresse:URLRequest
  3. addChild(chargeur);
  4. function go1(e:Event){
  5.     adresse= new URLRequest("prout.jpg" );
  6.     chargeur.load(adresse);
  7.     }
  8. function go2(e:Event){
  9.     adresse= new URLRequest("rote.jpg" );
  10.     chargeur.load(adresse);
  11.     }   
  12. btn1.addEventListener(MouseEvent.CLICK, go1)
  13. btn2.addEventListener(MouseEvent.CLICK, go2)


 
J'aimerais pouvoir l'appliquer à d'autres boutons situés plus loin sur la timeline en utilisant les mêmes fonctions et le même loader.  
Évidemment impossible, sauf si je renomme les fonctions et variables (en admettant que j'ai une trentaine de boutons, ça va être fastidieux).
 
 
Ce lien traite du problème, mais je n'arrive pas à l'adapter à mon cas :
http://www.flashkod.com/forum/suje [...] 25174.aspx
 
T'aurais une idée ?


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 18-11-2008 à 09:51:44    

Oui j'ai une idée, comme je le disais bcp plus haut, je n'arrive pas à faire passer un argument dans la déclaration d'une fonction qu'on appel dans un listener... Je vais voir ton lien


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 18-11-2008 à 18:44:26    

Effectivement, jm'en souvenais plus.
 
Si jamais tu trouves préviens-moi  :)


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 20-11-2008 à 05:13:55    

Bon a vu de pif et excusez moi d'avance parce que ca fait longtemps que j'ai pas fait d'AS3, je dirais qu'il faut faire comme ca en methode sale.

Code :
  1. var chargeur:Loader = new Loader();
  2. var adresse:URLRequest;
  3. addChild(chargeur);
  4. function go(e:Event) {
  5. var maBellImage;
  6. switch (e.target.name) {
  7.  case "btn1" :
  8.   maBellImage = "01.jpg";
  9.   break;
  10.  case "btn2" :
  11.   maBellImage = "02.jpg";
  12.   break;
  13.  default :
  14.   maBellImage = "default.jpg";
  15. }
  16. adresse= new URLRequest(maBellImage );
  17. chargeur.load(adresse);
  18. }
  19. for (var i:int=1; i<3; i++) {
  20. this["btn" + i].addEventListener(MouseEvent.CLICK, go);
  21. }


Ca c'est l'adaptation de votre code.
La boucle attribue a tout tes boutons la meme action.
Et dans la function de callBack (go) tu fouilles dans le parametre (qui est un Event) pour trouver le nom du clip cliqué.
Tu fais un switch dessus pour que en fonction du nom tu appliques une certaine action.

 

Alternative : Pour te simplifier le cul, tu peux donner a tes images le nom des boutons (ou l'inverse). Ca t'evites le Switch().
Exemple: img1.jpg

 

img1.addEventListener(MouseEvent.CLICK, go);

 

dans ta fonction

 

adresse= new URLRequest(e.target.name+".jpg" );

 

Mais bon, la methode propre reste de faire une classe qui étends MovieClip et de faire des occurences de celle-ci qui contiennent ton bouton, plus les infos necessaires (le nom de l'image associé par exemple).


Message édité par Zedlefou le 20-11-2008 à 05:15:55

---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 20-11-2008 à 10:22:27    

Je vois ou tu veux en venir Zed, mais en dehors de cette exemple, on ne peut pas mettre une fonction avec argument, par exemple :

Code :
  1. var chargeur:Loader = new Loader();
  2. var adresse:URLRequest;
  3. addChild(chargeur);
  4. var urlImage:String;
  5. function go(urlImage) {
  6.   urlImage+=".jpg"
  7.   adresse= new URLRequest(urlImage);
  8.   chargeur.load(adresse);
  9. }
  10. for (var i:int=1; i<3; i++) {
  11. this["btn" + i].addEventListener(MouseEvent.CLICK, go(i);
  12. }


Ce code ne fonctionnera pas, mais j'aimerai comprendre pourquoi
(je sais très bien qu'on pourrait ici déclarer la fonction dans la boucle, mais ce que je veux savoir faire, c'est d'appeler une fonction avec argument dans un Listener... je sais pas si je me fais comprendre...


Message édité par abais le 20-11-2008 à 15:05:58

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 20-11-2008 à 10:42:30    

Oui mais non, faut pas proceder comme ca ... me demande pas pourquoi, mais je suis sur que quelqu'un chez Adobe doit savoir :D


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 20-11-2008 à 21:22:41    

Merci zedlefou, ta technique a bien marché [:icon14]
 
Par contre, j'ai un soucis : de la frame 10 à 49, j'ai donc ce code qui affiche des images :
 

Code :
  1. function go(e:Event) {
  2. var Image;
  3. switch (e.target.name) {
  4.   case "btn1" :
  5.   Image = "design/flyer1.jpg";
  6.   break;
  7.   case "btn2" :
  8.   Image = "design/flyer2.jpg";
  9.   break;
  10.   case "btn3" :
  11.   Image = "design/site1.jpg";
  12.   break;
  13. }
  14. adresse= new URLRequest(Image);
  15. conteneurImage.load(adresse);
  16. }
  17. for (var i:int=1; i<10; i++) {
  18. this["btn" + i].addEventListener(MouseEvent.CLICK, go);
  19. }


 
 
De la frame 50 à 89, j'ai ce code qui affiche des photos :  
 

Code :
  1. function go2(e:Event) {
  2. var photo;
  3. switch (e.target.name) {
  4.   case "photo1" :
  5.   photo = "photos/photo1.jpg";
  6.   break;
  7.   case "photo2" :
  8.   photo = "photos/photo2.jpg";
  9.   break;
  10.   case "photo3" :
  11.   photo = "photos/photo3.jpg";
  12.   break;
  13.   case "photo4" :
  14.   photo = "photos/photo4.jpg";
  15.   break;
  16.   case "photo5" :
  17.   photo = "photos/photo5.jpg";
  18.   break;
  19.   case "photo6" :
  20.   photo = "photos/photo6.jpg";
  21.   break;
  22. }
  23. adresse= new URLRequest(photo);
  24. conteneurImage.load(adresse);
  25. }
  26. for (var j:int=1; j<10; j++) {
  27. this["photo" + j].addEventListener(MouseEvent.CLICK, go2);
  28. }


 
 
Ca marche, mais le soucis c'est que ça n'affiche que jusqu'à la photo 3, les photos 4/5/6 ne s'affichent pas ?!
Si je relie la photo 6 (par exemple) au bouton 1 elle s'affiche, le soucis viendrait donc des boutons 4/5/6.
Pourtant, j'ai bien vérifié, il n'y a pas d'erreur d'orthographe sur les boutons ou autre, donc je comprend pas trop. Flash ne me signal pas d'erreur non plus :/


Message édité par H@wk le 20-11-2008 à 21:24:22

---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 21-11-2008 à 07:20:27    

Pourquoi ta boucle et de 9 fois et non 3 et 6 (donc i<4 et i<7) ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 21-11-2008 à 07:57:02    

C'est mieux d'avoir tout ton code au meme endroit, essaie de revoir l'architecture de ton anim pour coller a ca.
Sinon, c'est la mort ...


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 21-11-2008 à 14:52:38    

abais a écrit :

Pourquoi ta boucle et de 9 fois et non 3 et 6 (donc i<4 et i<7) ?


 
J'ai mis 10 pour avoir de la marge (sans raisons particulières en fait). J'ai essayé avec 4 et 7, ça ne marche toujours pas.
 

Zedlefou a écrit :

C'est mieux d'avoir tout ton code au meme endroit, essaie de revoir l'architecture de ton anim pour coller a ca.
Sinon, c'est la mort ...


C'est ce que j'avais essayé de faire en commençant bien sûr, tout mettre sur le calque as (comme on me l'avait appris) mais c'est impossible ?!  
 
J'ai donc du code sur un calque avec les boutons, à divers endroits, ainsi que sur d'autres calques, sinon ça ne marchait pas [:airforceone]


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 21-11-2008 à 15:12:30    

mets ta scene sur un FTP si ça te dérange pas...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 21-11-2008 à 18:26:50    

abais a écrit :

mets ta scene sur un FTP si ça te dérange pas...


Je t'ai uploadé ça et transmis par mp.
 
Ne fait pas attention au contenu ou autre :o  
 
Si jamais tu vois pas trop comment ça fonctionne, n'hésite pas à me demander, mais tu vas comprendre sans soucis (clic sur bouton d'une rubrique, apparition des carrés qui représentent chacun une image, etc)


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 21-11-2008 à 19:53:08    

Mais c'est un bordel monstre ! recommence moi ça !!!
Ne me dis pas que t'as pas le temps !
Je t'interdis de faire 50 image clé différente pour mettre le script, encore moins de mettre le script dans une image clé qui contient des élément graphique !
Si tu veux réussir et comprendre, c'est la seul solution, organise toi...

 

Question HS :
C'est volontaire que tes boutons soient désordonnés ?
Sinon, oublis le .docx, tt le monde n'as pas office (encore moins le 2007)

 

EDIT : J'ai corrigé ce massacre

Message cité 1 fois
Message édité par abais le 21-11-2008 à 20:05:23

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 21-11-2008 à 20:01:51    

abais a écrit :

Mais c'est un bordel monstre ! recommence moi ça !!!
Ne me dis pas que t'as pas le temps !
Je t'interdi de faire 50 image clé différete pour mettre le scp, encore moi de mere lle script dans une image clé qui contient des élément graphique !
Si tu veux réussir et comprendre, c'est la seul solution, organise toi...


 
Je m'en doutais que pour un habitué ça allait être un bordel monstre  :ange:  
 
C'est quoi le scp ?
 

Citation :

Question HS :
C'est volontaire que tes boutons soient désordonnés ?


Les carrés tu veux dire ? qu'ils soient pas alignés ? oui c'est voulu.
 

Citation :

Sinon, oublis le .docx, tt le monde n'as pas office (encore moins le 2007)


 
C'est déjà fais, j'y ai pensé par après que ça servait à rien.


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 21-11-2008 à 20:02:18    

Si le Full-Script n'est pas ton fort, rien ne t'empeche d'enfermer des élément dans des clip, eux même enfermés dans des clips, etc...

 

"scp" c'est "script" quand je tappe trop vite :p
Et pour qq1 d'habitué tu te trompe, je fais pas du flash depuis longtemps, d'autant plus que je suis graphiste à la base, donc le code c'est pas mon fort !

 

Sinon, je n'arrive pas à comprendre l'erreur actuelle, elle ne vien pas de la boucle en soit, mais du

Code :
  1. this["photo" + j].addEventListener(MouseEvent.CLICK, go2);

ça fait comme si les bouton "photo4" (et+) n'existait pas, et pourtant ils sont là, nom d'occurence valide...

 


Message édité par abais le 21-11-2008 à 20:57:10

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 21-11-2008 à 20:04:10    

Message intégré Ci-dessus


Message édité par abais le 21-11-2008 à 20:57:45

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 21-11-2008 à 21:11:34    

MDR, j'ai compris !
Gros vilain, le bouton "photo1" n'est plus là à la frame 55, il est remplacé par "photo4" en nom d'occurence, ça fout la merde :)
(c'est d'ailleurs pour ça que ça merdait au moment ou la boucle "s'occupait" de photo4 alors que ça marchait jusqu'au 3)
D'ailleurs, je vois pas vraiment pourquoi il faisait l'erreur à la frame 56...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 21-11-2008 à 22:06:22    

Wahh ! bien joué, ça m'avait échappé...


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 22-11-2008 à 17:05:05    

(ça ne 'empêche pas de recommencer et de mettre ça au propre, allez zou !)


Message édité par abais le 22-11-2008 à 17:05:36

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 24-11-2008 à 12:30:23    

Je suis maintenant entrain de regarder pour afficher une légende à chacune de mes images chargées (par exemple une description ou autre, 2/3 lignes pas plus).
 
Il faudra donc que le texte s'affiche uniquement avec l'image concernée, après avoir cliqué sur le bouton appelant l'image.  
Le texte n'est pas toujours placé aux même coordonnées (images plus ou moins grande, photo verticale, etc).
 
J'ai repéré ça, j'ai essayé mais je n'emmêle un peu :
http://www.bases-as3.fr/index.php/ [...] -dynamique
 
C'est possible de faire un truc assez simple, en partant du code plus haut que zedlefou m'a donné, et integrer une fonction affichant du texte ?  
 
Ou sinon, est-ce faisable avec l'outil texte dynamique ? je sais pas ce qui est le mieux :/


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 24-11-2008 à 13:34:11    

créé le champ de texte à la suite de chargeur....
Ensuite, change son contenu texte ainsi que sa position dans la fonction go... (genre, si le texte est en desous : montexte.y=chargeur.height...)
 
C'est dommage de ne pas passer par le XML, ça t'economiserais des lignes...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 24-11-2008 à 15:30:39    

abais a écrit :

créé le champ de texte à la suite de chargeur....
Ensuite, change son contenu texte ainsi que sa position dans la fonction go... (genre, si le texte est en desous : montexte.y=chargeur.height...)


 
Je viens de faire un essai, le texte s'affiche bien, et change selon la photo.
Bon, évidemment, mon code doit être bancal mais ça marche sans erreurs pour le moment :
 

Code :
  1. function go(e:Event) {
  2. var Image;
  3. var contenu;
  4. switch (e.target.name) {
  5.   case "btn1" :
  6.   Image = "design/flyer1.jpg";
  7.   contenu = "blabla";
  8.   zoneTexte.text = contenu;
  9.   zoneTexte.x = 500;
  10.   zoneTexte.y = 400;
  11.   break;
  12.   case "btn2" :
  13.   Image = "design/flyer2.jpg";
  14.   contenu = "blabla2";
  15.   zoneTexte.text = contenu;
  16.   zoneTexte.x = 600;
  17.   zoneTexte.y = 400;
  18.   break;
  19.   case "btn3" :
  20.   Image = "design/site1.jpg";
  21.   contenu = "blabla3";
  22.   zoneTexte.text = contenu;
  23.   zoneTexte.x = 700;
  24.   zoneTexte.y = 400;
  25.   break;
  26. }


 
Maintenant faut que je change la police.
 

Citation :

C'est dommage de ne pas passer par le XML, ça t'economiserais des lignes...


 
Ouais, jpense bien... J'avais eu un cours dessus y'a quelques temps, mais bon, hmm, on va dire que tout s'est déjà évaporé...


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 24-11-2008 à 15:55:25    

si la position Y ne change pas, pourquoi l'inclure dans le switch ? Pareil pour la ligne "zoneTexte.text = contenu;" (ou alors si tu tiens à le laisser dans le switch, autant mettre directement "zoneTexte.text="blabla";"...
la position X ne dépend-elle pas directement de la largeur de l'image ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 24-11-2008 à 16:37:32    

abais a écrit :

si la position Y ne change pas, pourquoi l'inclure dans le switch ? Pareil pour la ligne "zoneTexte.text = contenu;" (ou alors si tu tiens à le laisser dans le switch, autant mettre directement "zoneTexte.text="blabla";"...
la position X ne dépend-elle pas directement de la largeur de l'image ?


 
La position Y changera, c'est juste que là j'ai fais un copié/collé en changeant juste X pour tester.
 
Sinon effectivement je venais de corriger :
 

Code :
  1. zoneTexte.text = "description image1";


 
X dépend de la larguer de l'image oui, pourquoi ?
 
 
Bon, par contre, ça me fait foirer mes boutons pour changer de "rubrique". Pourtant ils ne sont pas reliés à cette zone texte, enfin, je sais pas, aucune raison que ça me fasse merder les boutons.
 
Quand je clic sur un carré pour afficher une photo (et donc le texte avec sa description), les rollover des boutons sont décalés  
 
C'est ça qui m'énerve dans Flash, dès que tu fais une chose, une autre chose ne fonctionne plus correctement  :fou:


Message édité par H@wk le 24-11-2008 à 16:40:35

---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 24-11-2008 à 16:46:01    

Ah, et sinon, comment faire pour que la description de l'image1 :
 

Code :
  1. zoneTexte.text = "description image1";


 
soit uniquement visible quand on a cliqué sur mon bouton qui affiche l'image1, et invisible tout le reste du temps ?
 
Tu vois ce que je veux dire abais ?


---------------
VDS : Objectif Canon EF 16-35mm | Casque Plantronics
Reply

Marsh Posté le 24-11-2008 à 17:08:24    

et bien, tu met sur les autres images clé

Code :
  1. zoneTexte.text = ""


ça depend de la situation en faite...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed