begin process at 2012 05 27 16:20:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Récupérer width d'un MovieClip dynamique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer width d'un MovieClip dynamique

vendredi 10 juillet 2009 à 11:34:28 | Récupérer width d'un MovieClip dynamique

HekThor

Bonjour !

Je poste ici pour relancer un petit problème sur lequel je bloquais et que je suis sur le point de résoudre.

Je cherche en fait à récupérer la largeur d'un clip, qui n'est pas fixe. J'en ai besoin pour une galerie de miniatures défilante.

J'ai créé deux clips : le premier contient le second qui contient toutes les miniatures issues d'un xml.

Je cherche à récupérer la valeur du width du premier clip, sachant que pour le moment, un trace renvoie toujours la valeur 0...

Je ne créé peut être pas ce clips où et quand il faut, c'est pour cela que j'aurais besoin de l'aide d'une âme charitable, que je torche une bonne fois pour toute cette galerie icon_smile.gif

Je place mon code au cas ou... Inspiré de deux sources différentes, et amélioré, ca peut toujours servir pour quiconque en aurait besoin...

  1. import flash.net.URLLoader; 
  2.     import flash.net.URLRequest; 
  3.     import fl.containers.UILoader; 
  4.     import fl.controls.ProgressBar; 
  5.     import fl.transitions.Tween; 
  6.     import fl.transitions.easing.*; 
  7.     import fl.transitions.TweenEvent; 
  8.     import flash.events.*; 
  9.     import flash.text.*; 
  10.     import flash.filters.*; 
  11.     //Import TweenMax 
  12.     import gs.*; 
  13.          
  14.     //Constantes     
  15.     var dossierImage:String = 'images/'
  16.     var dossierImageMini:String = 'images/min/';     
  17.          
  18.          
  19.     //Chargeur qui téléchargera notre fichier XML    
  20.     var chargeur:URLLoader = new URLLoader (); 
  21.     //objet URLRequest qui contient l?url du fichier XML: 
  22.     var adresse:URLRequest = new URLRequest ("galerie.xml"); 
  23.                      
  24.     chargeur.load(adresse); 
  25.     chargeur.addEventListener(Event.COMPLETE, finDuChargementXML); 
  26.      
  27.      
  28.     //Variable contenant le texte alternatif 
  29.     var alt:String; 
  30.      
  31.     /*Style utilisé pour le texte Alternatif*/ 
  32.     var formatTitre:TextFormat = new TextFormat; 
  33.     formatTitre.color = 0x888888
  34.     formatTitre.size = 17
  35.     formatTitre.font = 'tahoma?; 
  36.     formatTitre.align = 'center´; 
  37.      
  38.     //Champ texte pour le texte alternatif 
  39.     var texteAlt:TextField = new TextField(); 
  40.                     texteAlt.text = ''
  41.                     texteAlt.x = 325
  42.                     texteAlt.y = 425
  43.                     texteAlt.width = 400
  44.                     this.addChild(texteAlt); 
  45.      
  46.     //Champ texte pour le message de chargement 
  47.     var chargement:TextField = new TextField(); 
  48.                     chargement.text = 'Chargement en cours...'
  49.                     chargement.setTextFormat(formatTitre); 
  50.                     chargement.width = 200
  51.                     chargement.x = 350
  52.                     chargement.y = 200
  53.                     this.addChild(chargement); 
  54.                      
  55. var gallerie:MovieClip = new MovieClip(); 
  56. var monClip_mc:MovieClip = new MovieClip(); 
  57.  
  58. addChild(gallerie); 
  59. gallerie.addChild(monClip_mc); 
  60.  
  61.  
  62.     /*Une fois que le fichier XML  est chargé...*/ 
  63.     function finDuChargementXML(evt:Event):void{ 
  64.             //Objet XML 
  65.             var monXML:XML = new XML(evt.target.data); 
  66.             //UILoader qui contiendra l?image originale 
  67.             var photoPrincipale:UILoader = new UILoader(); 
  68.                         photoPrincipale.source = dossierImage+monXML.image[1].attribute("src"); 
  69.                         photoPrincipale.x = 150
  70.                         photoPrincipale.y = 10
  71.                         photoPrincipale.scaleContent = false
  72.              
  73.             var translation:Array = [photoPrincipale.x, photoPrincipale.x+ 100]; 
  74.              
  75.             //Variable qui contiendra l?image qui est selectionnée 
  76.             var select:String; 
  77.              
  78.              
  79.             texteAlt.text = monXML.image[1].attribute("alt"); 
  80.             texteAlt.setTextFormat(formatTitre); 
  81.              
  82.             //On attache le Loader à la scene 
  83.             this.addChild(photoPrincipale); 
  84.              
  85.             /*Pour les miniatures*/ 
  86.             for(var i:String in monXML.image) { 
  87.                 var uil:UILoader = new UILoader(); 
  88.                         uil.source = dossierImageMini+monXML.image[i].attribute("src"); 
  89.                         uil.buttonMode=true
  90.                         uil.name = i; 
  91.                         uil.x = 10
  92.                         uil.y = 300
  93.                         uil.y += int((int(i)/9))*0
  94.                 if(int(i)%9!=0){ 
  95.                         uil.x += (int(i)%50)*80
  96.                 } 
  97.                  
  98.                         uil.width = uil.height = 70
  99.                         uil.alpha = 0.5
  100.                         uil.scaleContent= true
  101.                         uil.autoLoad = true
  102.                          
  103.                         //Les écouteurs sur les miniatures 
  104.                         uil.addEventListener(MouseEvent.CLICK,clicImage); 
  105.                         uil.addEventListener(MouseEvent.MOUSE_OVER,overImage); 
  106.                         uil.addEventListener(MouseEvent.MOUSE_OUT,outImage); 
  107.                 monClip_mc.addChild(uil); 
  108.         } 
  109.         /*Quand on clique sur une miniature...*/ 
  110.         function clicImage(e:Event):void{ 
  111.             //e.currentTarget.name correspond à la position de l?image 
  112.             //Si l?image sur laquelle on a cliquée est déjà selectionnée, il ne se passe rien.... 
  113.             if(select == monXML.image[e.currentTarget.name].attribute("src")){ 
  114.                 return
  115.             } 
  116.              
  117.             select = monXML.image[e.currentTarget.name].attribute("src"); 
  118.             alt = monXML.image[e.currentTarget.name].attribute("alt"); 
  119.                  
  120.                  
  121.             var myTweentText:Tween = new Tween(texteAlt, "alpha", Strong.easeOut, 101true); 
  122.             var myTweenA:Tween = new Tween(photoPrincipale, "alpha", Strong.easeOut, 101true); 
  123.             var myTweenPPW:Tween = new Tween(photoPrincipale, "x", Strong.easeIn, translation[0], translation[1],1true); 
  124.             var myTweenPPA:Tween = new Tween(photoPrincipale, "alpha", Strong.easeIn, 101true); 
  125.             myTweenA.addEventListener(TweenEvent.MOTION_FINISH, changeImage); 
  126.              
  127.         } 
  128.          
  129.         /*Quand on veut changer d?image (logiquement après avoir cliqué sur une miniature)*/ 
  130.         function changeImage(e:Event):void{ 
  131.             //On change la source de l?image 
  132.             photoPrincipale.source = dossierImage+select; 
  133.              
  134.             //On change le texte descriptif 
  135.             texteAlt.text = alt; 
  136.             texteAlt.setTextFormat(formatTitre); 
  137.              
  138.             //Et la photo arrive de façon élégante 
  139.             var myTweenPPA2:Tween = new Tween(photoPrincipale, "alpha", Strong.easeOut, 011true); 
  140.             var myTweenPPW2:Tween = new Tween(photoPrincipale, "x", Strong.easeOut, translation[1], translation[0], 1true); 
  141.             var myTweentText2:Tween = new Tween(texteAlt, "alpha", Strong.easeOut, 011true); 
  142.         } 
  143.          
  144.         /*Quand on passe la souris sur une miniature...*/ 
  145.         function overImage(e:Event):void{ 
  146.             //Ombre sur miniatures 
  147.             var monOmbre:DropShadowFilter = new DropShadowFilter(); 
  148.                         monOmbre.distance = 3
  149.                         monOmbre.color = 0xAAAAAA
  150.                         monOmbre.blurX = 5
  151.                         monOmbre.blurY = 5
  152.                         monOmbre.quality = 3
  153.                         e.currentTarget.filters = [monOmbre]; 
  154.             //Effets cools de transitions                
  155.             var myTweenMA2:Tween = new Tween(e.currentTarget, "alpha", Strong.easeOut, 0.511true); 
  156.             var myTweenMW2:Tween = new Tween(e.currentTarget, "width", Elastic.easeOut, e.currentTarget.width, 751true); 
  157.             var myTweenMH2:Tween = new Tween(e.currentTarget, "height", Elastic.easeOut, e.currentTarget.height, 751true); 
  158.         } 
  159.          
  160.         /*Quand on quitte la miniature*/ 
  161.         function outImage(e:Event):void{ 
  162.             //Ombre sur miniatures 
  163.             var monOmbre:DropShadowFilter = new DropShadowFilter(); 
  164.                         monOmbre.distance = 0
  165.                         monOmbre.color = 0x888888
  166.                         monOmbre.blurX = 0
  167.                         monOmbre.blurY = 0
  168.                         monOmbre.quality = 3
  169.             e.currentTarget.filters = [monOmbre]; 
  170.             //Effets cools de transitions 
  171.             var myTweenMA:Tween = new Tween(e.currentTarget, "alpha", Strong.easeOut, 10.51true); 
  172.             var myTweenMW:Tween = new Tween(e.currentTarget, "width", Elastic.easeOut, e.currentTarget.width, 701true); 
  173.             var myTweenMH:Tween = new Tween(e.currentTarget, "height", Elastic.easeOut, e.currentTarget.height, 701true); 
  174.              
  175.         } 
  176.  
  177.  
  178. //Save the horizontal center 
  179. var centerX:Number = stage.stageWidth / 2
  180.  
  181. //Save the width of the whole gallery 
  182. var galleryWidth:Number = 1400
  183.  
  184. trace(monClip_mc.width); 
  185. trace(gallerie.width); 
  186.  
  187. //Speed of the movement (calculated by the mouse position in the moveGallery() function) 
  188. var speed:Number = 0
  189.  
  190. //Add an ENTER_FRAME listener for the animation 
  191. addEventListener(Event.ENTER_FRAME, moveGallery); 
  192.  
  193. function moveGallery(e:Event):void { 
  194.  
  195.     //Calculate the new speed 
  196.     speed = -(0.05 * (mouseX - centerX)); 
  197.  
  198.     //Update the x coordinate 
  199.     gallerie.x+=speed; 
  200.  
  201.     //Check if we are too far on the right (no more stuff on the left edge) 
  202.     if (gallerie.x>0) { 
  203.  
  204.         //Update the gallery?s coordinates 
  205.         gallerie.x= (-galleryWidth/2); 
  206.     } 
  207.  
  208.     //Check if we are too far on the left (no more stuff on the right edge) 
  209.     if (gallerie.x<(-galleryWidth/2)) { 
  210.  
  211.         //Update the gallery?s coordinates 
  212.         gallerie.x=0
  213.     } 
  214.  
  215.  


dimanche 12 juillet 2009 à 05:53:46 | Re : Récupérer width d'un MovieClip dynamique

oloufemi

Salut,
Je ne comprends pas bien ton probleme, est ce que tu cherche a redimensionner automatiquement la grande image?


Cette discussion est classée dans : var, tween, true, uil, currenttarget


Répondre à ce message

Sujets en rapport avec ce message

AS3 Supprimer une fonction via intéraction de la timeline [ par dieudesdieu ] Salut a tous! Bon alors voila je viens car j'ai un script que je n'arrive pas à arrêter. C'est un visualisateur d'image que je voudrais mettre sur un Probleme chargement image [ par jobe06 ] Bonjour, J'ai créer une animation en flash avec une fonction qui fait apparaitre l'image charger avec une transition et du texte... Jaimerai que te carrousel et appel aléatoire [ par seth1 ] Bonjour à tous et à toutes,je réalise actuellement un carrousel (vous savez, ces menus rotatifs) en flash et as2 avec appel XML.Ce dernier fonctionne Problème tween sous AS3 [ par biguiz ] Bonjour à tous et à toutes, Je cherche des solutions sur le web depuis un moment déjà mais sans réponses. Voici mon problème : je crée un cdrom dans l Problème de gestion d'un fichier xml dans un site [ par ximeng ] Bonsoir ! Je suis débutant en AS, je n'utilise jamais le xml et j'ai intégré un code dans mon site qui me rend un peu fou depuis quelques jour, j'ai t Tweeners Rollover /Rollout Clignotement :-( [ par alphacrash ] Salut à tous ! Je suis tout nouveau dans le monde de l'AS3 et je tente de mettre en place une gallerie photo XML avec un rollover sur chaque thumbnai animation de bouton (balancement) [ par Soa3 ] Bonjour, je réalise une application en Action Script 2 et je débute; J'ai des boutons que je souhaite faire se balancer mais j'ai deux problèmes : je actionscript defnition d'une duree entre clip [ par ludo4432 ] Salutations à vous tous [^^happy17] j'aurais une petite question à vous posez [^^drapeaublanc] je voudrais savoir comment je pourrais définir une va Probleme de codage Action script AS3 [ par stef97232 ] Bonjour, Je suis totalement novice dans le codage d'AS3 sur Flash CS4, mon but était de faire une porte qui coulisse latéralement, code que j'ai récu Pile ou face [ par Zedbar1 ] Salut les ptits loups :)Je cherche à faire passer deux clip du premier à l'arrière plan alternativement mais je trouve pas la solution; je me doute qu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales