Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1208 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  AS3 : Débuts difficiles => Resizer une image apres chargement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

AS3 : Débuts difficiles => Resizer une image apres chargement

n°1747755
freed102
Arayashiki
Posté le 17-06-2008 à 18:29:55  profilanswer
 

Bonjour à tous !
 
Cela fait belle lurette que je n'ai pas fait appel à vos services... Je me mets tout doucement à l'actionscript 3, c'est top ! mais ya pas mal de choses qui m'échappent encore, là en l'occurence j'essaie de redimensionner un MovieClip apres le chargement pour cela j'utilise les addEventListener, mais j'ai l'impression que dès qu'on essaie de les imbriquer ça ne fonctionne pas....
 
ce que j'ai fait pour le moment c'est ça :
 

Code :
  1. //Event Handler
  2. function eventHandler(event:ItemEvent) {
  3.         switch(ItemEvent.CHANGE){
  4.                 case ItemEvent.CHANGE:
  5.                 root['title'].htmlText ="<b>"+event.item.title+"</b>";
  6.    root['desc'].htmlText = event.item.description;
  7.    root['credits'].htmlText = root['monXML'].item[root["photoflip"].selectedIndex].credits;
  8.    root['date_pub'].htmlText ="<b>Date de publication : </b>"+root['monXML'].item[root["photoflip"].selectedIndex].date_pub;
  9.    root['MCDiapo'].MCFade._alpha=0;
  10.    new Tween(root['MCDiapo'].MCFade, "alpha", Strong.easeOut,100, 0, 1, true);
  11.    // création du conteneur de l'image  
  12.    var conteneurImage:Loader = new Loader();
  13.    // url de l'image à charger  
  14.    var image:URLRequest = new URLRequest(root['monXML'].item[root["photoflip"].selectedIndex].@path);
  15.    // Le chargement est terminé  
  16.    conteneurImage.load(image);
  17.    root['MCDiapo'].MCPhoto.addChild(conteneurImage); // affichage du conteneur
  18.   break;
  19.         }
  20. }
  21. //Add Event Listener
  22. root['photoflip'].addEventListener(ItemEvent.CHANGE,eventHandler);


 
Là ça s'affiche bien.. mais l'image est trop grande, j'aimerai la redimensionner et la repositionner. mais je pense que, comme en AS2, on ne peut pas accèder aux propriétés width et height tant que l'image n'est pas chargée... C'est donc pourquoi on doit utiliser un autre addEventListener pour attendre la fin du chargement avant de redimensionner... simplement.. quand je tente d'en mettre un autre à l'interieur.. il me fait des erreurs  
 
TypeError: Error #2007 : Le paramètre listener ne peut être null
 
... alors comme toutes les fameuses erreurs que j'ai pu voir jusqu'à présent sur Flash CS3... je n'y capte rien ! c'est toujours très ambigue et ne me mets jamais sur la voie pour la corriger... bref ! c pas encore gagné !
 
Si déja on pouvait me dire comment je peux redimensionner l'image.. j'aurai fait un grand pas en avant en AS3 !
 
Merci d'avance !
 
Freed

mood
Publicité
Posté le 17-06-2008 à 18:29:55  profilanswer
 

n°1747777
Mav_69
Paella Certified
Posté le 17-06-2008 à 19:16:13  profilanswer
 

Tu peux affecter plusieurs Listener, et donc plusieurs event au meme objet.
 
(et root caytraymal)
 
Par contre j'aurai pas du tout fais comme cela pour ton systeme...
 
Pourquoi tu ne load pas tout en cache, et tu addChild une fois fini ?
Tu aurais un meilleur controle la dessus...
 
Ceci dit, pour ton code, voila un petit bout pour t'aider
 

Code :
  1. var NewHeight:int = // ta nouvelle hauteur;
  2. var NewWidth:int = // ta nouvele largeur;
  3. conteneurImage.addEventListener(Event.COMPLETE, loadingComplete);
  4. conteneurImage.addEventListener(ProgressEvent.PROGRESS, loadingProgress);
  5. conteneurImage.addEventListener(Event.INIT, loadingInit);
  6. function loadingComplete(e:Event):Void
  7. {
  8. trace ("loading fini !" );
  9. addChild(conteneurImage);
  10. new Tween(conteneurImage, "width", Regular.easeIn, e.target.width, NewWidth, 1, true);
  11. new Tween(conteneurImage, "height", Regular.easeIn, e.target.height, NewHeight, 1, true);
  12. }
  13. function loadingProgress(p:ProgressEvent):Void
  14. {
  15. trace ("loading en cours : "+p.bytesLoaded+" sur : "+p.bytesTotal+" chargés " );
  16. }
  17. function loadingInit(e:Event):Void
  18. {
  19. trace ("loading" );
  20. }


 
Ya surement des fautes mais c'est une base de travail :)


---------------
Mon Topik  -- Mon feed
n°1748010
freed102
Arayashiki
Posté le 18-06-2008 à 09:56:09  profilanswer
 


 
Merci pour ta réponse !
 

Mav_69 a écrit :

Tu peux affecter plusieurs Listener, et donc plusieurs event au meme objet.


 
 
On peut mettre plusieurs listener ça je sais, mais on ne peut pas mettre des listeners dans des listeners apparement.. mais peut etre que tu as raison il faut que je les extrais !
 

Mav_69 a écrit :

(et root caytraymal)


 
ça je suis d'accord avec toi ! mais j'ai pas encore trouvé comment on cible vers quelquechose qui est en dehors de la fonction ou comment on peut passer des variables dans un listener
 

Mav_69 a écrit :


Par contre j'aurai pas du tout fais comme cela pour ton systeme...
 
Pourquoi tu ne load pas tout en cache, et tu addChild une fois fini ?
Tu aurais un meilleur controle la dessus...


 
 
Et bien... je ne sais pas trop encore... je pense que j'ai trop envie de penser AS2 en faisant de l'AS3 encore... c peut etre pour ça que mes méthodes sont pas les plus optimales... ça viendra avec le temps ! pour l'instant je me considere comme bidouilleur AS3... je découvre et j'essaie de faire deja des choses qui marchent.. apres je pourrai me lacher dans des trucs plus conceptuels ! :)
 

Mav_69 a écrit :


Ceci dit, pour ton code, voila un petit bout pour t'aider
 

Code :
  1. var NewHeight:int = // ta nouvelle hauteur;
  2. var NewWidth:int = // ta nouvele largeur;
  3. conteneurImage.addEventListener(Event.COMPLETE, loadingComplete);
  4. conteneurImage.addEventListener(ProgressEvent.PROGRESS, loadingProgress);
  5. conteneurImage.addEventListener(Event.INIT, loadingInit);
  6. function loadingComplete(e:Event):Void
  7. {
  8. trace ("loading fini !" );
  9. addChild(conteneurImage);
  10. new Tween(conteneurImage, "width", Regular.easeIn, e.target.width, NewWidth, 1, true);
  11. new Tween(conteneurImage, "height", Regular.easeIn, e.target.height, NewHeight, 1, true);
  12. }
  13. function loadingProgress(p:ProgressEvent):Void
  14. {
  15. trace ("loading en cours : "+p.bytesLoaded+" sur : "+p.bytesTotal+" chargés " );
  16. }
  17. function loadingInit(e:Event):Void
  18. {
  19. trace ("loading" );
  20. }


 
Ya surement des fautes mais c'est une base de travail :)


Merci bcp je vais jeter un oeil ! :)

n°1748014
freed102
Arayashiki
Posté le 18-06-2008 à 10:01:44  profilanswer
 

voila bingo.. j'ai toujours ce probleme là :
 
addChild(conteneurImage) => 1120: Access of undefined property conteneurImage.

n°1748065
Mav_69
Paella Certified
Posté le 18-06-2008 à 11:27:20  profilanswer
 

Il faudrait tout ton code,

 

Mais en général ce problème vient de declaration des variables.

 

Au début de ta classe, il faut que tu la declare :

 
Code :
  1. private (public) var conteneurImage:Loader;
 

Et dans ton code apres

 
Code :
  1. conteneurImage = new Loader();
 


Sinon pour ton ciblage, essaye un truc du genre :

 
Code :
  1. private var ownerClip:MovieClip;
  2. ownerClip = this // en étant sur le root


Message édité par Mav_69 le 18-06-2008 à 11:29:06

---------------
Mon Topik  -- Mon feed
n°1748073
freed102
Arayashiki
Posté le 18-06-2008 à 11:47:47  profilanswer
 

Mais... je ne suis pas dans une classe mais bel et bien en programmation procedurale classique
 
je te donne tout mon code (sachant qu'il se trouve sur la premiere image clef d'un MovieClip nommé loadControler placé sur la scene (root)
 

Code :
  1. import flash.events.Event;
  2. import flash.events.*;
  3. import com.digicrafts.events.*;
  4. import fl.transitions.Tween;
  5. import fl.transitions.easing.*;
  6. stop();
  7. var ready=false;
  8. var path=root.loaderInfo.parameters.basechemin;
  9. if(path==undefined)
  10. {
  11. path="http://srvdvp/pls/";
  12. }
  13. var ruid=root.loaderInfo.parameters.ruid;
  14. if(ruid==undefined)
  15. {
  16. ruid="";
  17. }
  18. var page_int=root.loaderInfo.parameters.page_int;
  19. if(page_int==undefined)
  20. {
  21. page_int=7825;
  22. }
  23. var outil_id_int=root.loaderInfo.parameters.outil_id_int;
  24. if(outil_id_int==undefined)
  25. {
  26. outil_id_int=42;
  27. }
  28. var id_site=root.loaderInfo.parameters.id_site;
  29. if(id_site==undefined)
  30. {
  31. id_site=1;
  32. }
  33. var xmlFile:String=path+"e_toolbox/include/file_include/inc_photoflip_diapo_xml.php?nouveaute=1&ruid="+ruid+"&page_int="+page_int+"&outil_id_int="+outil_id_int+"&id_site="+id_site;
  34. // nous déclarons un objet URLLoader :
  35. var chargeur:URLLoader = new URLLoader ();
  36. XML.ignoreWhitespace=true;
  37. // nous créons un objet URLRequest qui contient l'url du fichier :
  38. var adresse:URLRequest = new URLRequest (xmlFile);
  39. // nous lançons le chargement du fichier, en indiquant l'adresse de celui ci par l'objet URLRequest :
  40. chargeur.load(adresse);
  41. // définition des évenements de l'objet chargeur
  42. chargeur.addEventListener(Event.COMPLETE, finDuChargement);
  43. // définition de la fonction exécutée par l'événement COMPLETE :
  44. // ( déclenchée lorsque le chargement se termine )
  45. function finDuChargement ( event:Event ) {
  46. var contenu = event.target.data;
  47. XML.ignoreWhitespace = true;
  48. root['monXML'] = new XML(contenu);
  49. if(root['monXML'].children().length()<1){
  50.  MovieClip(parent).gotoAndStop(2);
  51. }
  52. }
  53. root['photoflip'].load(xmlFile);
  54. root['reponse'].text=root['photoflip'].source;
  55. function getXMLLength(pEvt:Event){
  56. root['reponse'].text="Longueur XML : "+root['photoflip'].length;
  57. if(root['photoflip'].length<1){
  58.  MovieClip(parent).gotoAndStop(2);
  59. }
  60. }
  61. //fonction exécutée en réponse à l'événement
  62. function gotoNextItem(pEvt:Event):void
  63. {
  64. root['photoflip'].nextItem();
  65. root['autoflipControler'].gotoAndPlay(1);
  66. }
  67. function gotoPrevItem(pEvt:Event):void
  68. {
  69. root['photoflip'].prevItem();
  70. root['autoflipControler'].gotoAndPlay(1);
  71. }
  72. root['btnPrevious'].addEventListener(MouseEvent.CLICK, gotoPrevItem);
  73. root['btnNext'].addEventListener(MouseEvent.CLICK, gotoNextItem);
  74. //Event Handler
  75. function eventHandler(event:ItemEvent) {
  76.         switch(ItemEvent.CHANGE){
  77.                 case ItemEvent.CHANGE:
  78.                 root['title'].htmlText ="<b>"+event.item.title+"</b>";
  79.    root['desc'].htmlText = event.item.description;
  80.    root['credits'].htmlText = root['monXML'].item[root["photoflip"].selectedIndex].credits;
  81.    root['date_pub'].htmlText ="<b>Date de publication : </b>"+root['monXML'].item[root["photoflip"].selectedIndex].date_pub;
  82.    root['MCDiapo'].MCFade._alpha=0;
  83.    new Tween(root['MCDiapo'].MCFade, "alpha", Strong.easeOut,100, 0, 1, true);
  84.    var conteneurImage:Loader = new Loader();
  85.    // url de l'image à charger  
  86.    var image:URLRequest = new URLRequest(root['monXML'].item[root["photoflip"].selectedIndex].@path);
  87.    conteneurImage.load(image);
  88.    root['MCDiapo'].MCPhoto.addChild(conteneurImage);
  89.    var Ratio:Number = root['MCDiapo'].MCPhoto.width/root['MCDiapo'].MCPhoto.height;
  90.    var NewHeight:int = root['MCDiapo'].MCMask.height; // ta nouvelle hauteur;      
  91.    var NewWidth:int =root['MCDiapo'].MCPhoto.width*NewHeight/root['MCDiapo'].MCPhoto.height;  // ta nouvele largeur;  
  92.    trace("Width : "+conteneurImage.width+" Height : "+conteneurImage.height+" ratio : "+Ratio);
  93.    trace("NewWidth : "+NewWidth+" NewHeight : "+NewHeight);
  94.    new Tween(conteneurImage, "width", Regular.easeIn, root['MCDiapo'].MCPhoto.width, NewWidth, 1, true);
  95.    new Tween(conteneurImage, "height", Regular.easeIn, root['MCDiapo'].MCPhoto.height, NewHeight, 1, true)
  96.    //root['MCDiapo'].MCPhoto.addChild(conteneurImage); // affichage du conteneur
  97.   break;
  98.         }
  99. }
  100. //Add Event Listener
  101. root['photoflip'].addEventListener(ItemEvent.CHANGE,eventHandler);

n°1748087
Mav_69
Paella Certified
Posté le 18-06-2008 à 12:18:39  profilanswer
 

Ca ne t'empeche pas d'eviter le typage fort dans ta fonction, que ce soit une classe ou pas.
 
Declare la en haut avec ta var ready
 
(dailleurs) :
 

Code :
  1. var ready:Boolean = false;
  2. var conteneurImage:Loader;
  3. // et dans la fonction tu remplaces avec
  4. conteneurImage = new Loader();


---------------
Mon Topik  -- Mon feed
n°1748172
freed102
Arayashiki
Posté le 18-06-2008 à 14:34:46  profilanswer
 

Mav_69 a écrit :

Ca ne t'empeche pas d'eviter le typage fort dans ta fonction, que ce soit une classe ou pas.
 
Declare la en haut avec ta var ready
 
(dailleurs) :
 

Code :
  1. var ready:Boolean = false;
  2. var conteneurImage:Loader;
  3. // et dans la fonction tu remplaces avec
  4. conteneurImage = new Loader();



 
J'ai essayé ce que tu viens de me dire... je n'ai effectivement plus de message d'erreur... mais le addEventListener ne semble pas reagir... rien ne se passe !
 

Code :
  1. import flash.events.Event;
  2. import flash.events.*;
  3. import com.digicrafts.events.*;
  4. import fl.transitions.Tween;
  5. import fl.transitions.easing.*;
  6. stop();
  7. var ready:Boolean=false;
  8. var conteneurImage:Loader=new Loader();
  9. var path=root.loaderInfo.parameters.basechemin;
  10. if(path==undefined)
  11. {
  12. path="http://srvdvp/pls/";
  13. }
  14. var ruid=root.loaderInfo.parameters.ruid;
  15. if(ruid==undefined)
  16. {
  17. ruid="";
  18. }
  19. var page_int=root.loaderInfo.parameters.page_int;
  20. if(page_int==undefined)
  21. {
  22. page_int=7825;
  23. }
  24. var outil_id_int=root.loaderInfo.parameters.outil_id_int;
  25. if(outil_id_int==undefined)
  26. {
  27. outil_id_int=42;
  28. }
  29. var id_site=root.loaderInfo.parameters.id_site;
  30. if(id_site==undefined)
  31. {
  32. id_site=1;
  33. }
  34. var xmlFile:String=path+"e_toolbox/include/file_include/inc_photoflip_diapo_xml.php?nouveaute=1&ruid="+ruid+"&page_int="+page_int+"&outil_id_int="+outil_id_int+"&id_site="+id_site;
  35. // nous déclarons un objet URLLoader :
  36. var chargeur:URLLoader = new URLLoader ();
  37. XML.ignoreWhitespace=true;
  38. // nous créons un objet URLRequest qui contient l'url du fichier :
  39. var adresse:URLRequest = new URLRequest (xmlFile);
  40. // nous lançons le chargement du fichier, en indiquant l'adresse de celui ci par l'objet URLRequest :
  41. chargeur.load(adresse);
  42. // définition des évenements de l'objet chargeur
  43. chargeur.addEventListener(Event.COMPLETE, finDuChargement);
  44. // définition de la fonction exécutée par l'événement COMPLETE :
  45. // ( déclenchée lorsque le chargement se termine )
  46. function finDuChargement ( event:Event ) {
  47. var contenu = event.target.data;
  48. XML.ignoreWhitespace = true;
  49. root['monXML'] = new XML(contenu);
  50. if(root['monXML'].children().length()<1){
  51.  MovieClip(parent).gotoAndStop(2);
  52. }
  53. }
  54. root['photoflip'].load(xmlFile);
  55. root['reponse'].text=root['photoflip'].source;
  56. function getXMLLength(pEvt:Event){
  57. root['reponse'].text="Longueur XML : "+root['photoflip'].length;
  58. if(root['photoflip'].length<1){
  59.  MovieClip(parent).gotoAndStop(2);
  60. }
  61. }
  62. //fonction exécutée en réponse à l'événement
  63. function gotoNextItem(pEvt:Event):void
  64. {
  65. root['photoflip'].nextItem();
  66. root['autoflipControler'].gotoAndPlay(1);
  67. }
  68. function gotoPrevItem(pEvt:Event):void
  69. {
  70. root['photoflip'].prevItem();
  71. root['autoflipControler'].gotoAndPlay(1);
  72. }
  73. root['btnPrevious'].addEventListener(MouseEvent.CLICK, gotoPrevItem);
  74. root['btnNext'].addEventListener(MouseEvent.CLICK, gotoNextItem);
  75. //Event Handler
  76. function eventHandler(event:ItemEvent):void {
  77.         switch(ItemEvent.CHANGE){
  78.                 case ItemEvent.CHANGE:
  79.                 root['title'].htmlText ="<b>"+event.item.title+"</b>";
  80.    root['desc'].htmlText = event.item.description;
  81.    root['credits'].htmlText = root['monXML'].item[root["photoflip"].selectedIndex].credits;
  82.    root['date_pub'].htmlText ="<b>Date de publication : </b>"+root['monXML'].item[root["photoflip"].selectedIndex].date_pub;
  83.    root['MCDiapo'].MCFade._alpha=0;
  84.    new Tween(root['MCDiapo'].MCFade, "alpha", Strong.easeOut,100, 0, 1, true);
  85.    // url de l'image à charger  
  86.    var image:URLRequest = new URLRequest(root['monXML'].item[root["photoflip"].selectedIndex].@path);
  87.    conteneurImage.load(image);
  88.    //root['MCDiapo'].MCPhoto.addChild(conteneurImage);
  89.   break;
  90.         }
  91. }
  92. //Add Event Listener
  93. root['photoflip'].addEventListener(ItemEvent.CHANGE,eventHandler);
  94. //trace(conteneurImage)
  95. conteneurImage.addEventListener(Event.COMPLETE, loadingComplete);
  96. conteneurImage.addEventListener(ProgressEvent.PROGRESS, loadingProgress);
  97. conteneurImage.addEventListener(Event.INIT, loadingInit);
  98. function loadingComplete(e:Event):void{
  99. trace ("loading fini !" );
  100. root['MCDiapo'].MCPhoto.addChild(conteneurImage);
  101. var Ratio:Number = root['MCDiapo'].MCPhoto.width/root['MCDiapo'].MCPhoto.height;
  102. var NewHeight:int = root['MCDiapo'].MCMask.height; // ta nouvelle hauteur;      
  103. var NewWidth:int =root['MCDiapo'].MCPhoto.width*NewHeight/root['MCDiapo'].MCPhoto.height;  // ta nouvele largeur;  
  104. new Tween(conteneurImage, "width", Regular.easeIn, e.target.width, NewWidth, 1, true);
  105. new Tween(conteneurImage, "height", Regular.easeIn, e.target.height, NewHeight, 1, true);
  106. }
  107. function loadingProgress(p:ProgressEvent):void{
  108. trace ("loading en cours : "+p.bytesLoaded+" sur : "+p.bytesTotal+" chargés " );
  109. }
  110. function loadingInit(e:Event):void{
  111. trace ("loading" );
  112. }


n°1748226
Mav_69
Paella Certified
Posté le 18-06-2008 à 15:20:09  profilanswer
 

Meme pas le trace ?


---------------
Mon Topik  -- Mon feed
n°1748245
freed102
Arayashiki
Posté le 18-06-2008 à 15:37:22  profilanswer
 

non rien du tout ! :(

mood
Publicité
Posté le 18-06-2008 à 15:37:22  profilanswer
 

n°1748262
Mav_69
Paella Certified
Posté le 18-06-2008 à 15:43:37  profilanswer
 

En haut de ton code, enleve

Code :
  1. = new Loader(); // pour avoir var conteneurImage:Loader;
  2. //dans ta fonction eventHandler tu remet a la place comme avant
  3. conteneurImage = new Loader();
  4. // mais sans var :Loader


---------------
Mon Topik  -- Mon feed
n°1748388
freed102
Arayashiki
Posté le 18-06-2008 à 17:01:23  profilanswer
 

Mav_69 a écrit :

En haut de ton code, enleve

Code :
  1. = new Loader(); // pour avoir var conteneurImage:Loader;
  2. //dans ta fonction eventHandler tu remet a la place comme avant
  3. conteneurImage = new Loader();
  4. // mais sans var :Loader



 

Citation :

TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
 at photoFlip_fla::loadControler_1/photoFlip_fla::frame1()[photoFlip_fla.loadControler_1::frame1:139]


 
le code complet :  
 

Code :
  1. import flash.events.Event;
  2. import flash.events.*;
  3. import com.digicrafts.events.*;
  4. import fl.transitions.Tween;
  5. import fl.transitions.easing.*;
  6. stop();
  7. var ready:Boolean=false;
  8. var conteneurImage:Loader;
  9. var path=root.loaderInfo.parameters.basechemin;
  10. if(path==undefined)
  11. {
  12. path="http://srvdvp/pls/";
  13. }
  14. var ruid=root.loaderInfo.parameters.ruid;
  15. if(ruid==undefined)
  16. {
  17. ruid="";
  18. }
  19. var page_int=root.loaderInfo.parameters.page_int;
  20. if(page_int==undefined)
  21. {
  22. page_int=7825;
  23. }
  24. var outil_id_int=root.loaderInfo.parameters.outil_id_int;
  25. if(outil_id_int==undefined)
  26. {
  27. outil_id_int=42;
  28. }
  29. var id_site=root.loaderInfo.parameters.id_site;
  30. if(id_site==undefined)
  31. {
  32. id_site=1;
  33. }
  34. var xmlFile:String=path+"e_toolbox/include/file_include/inc_photoflip_diapo_xml.php?nouveaute=1&ruid="+ruid+"&page_int="+page_int+"&outil_id_int="+outil_id_int+"&id_site="+id_site;
  35. // nous déclarons un objet URLLoader :
  36. var chargeur:URLLoader = new URLLoader ();
  37. XML.ignoreWhitespace=true;
  38. // nous créons un objet URLRequest qui contient l'url du fichier :
  39. var adresse:URLRequest = new URLRequest (xmlFile);
  40. // nous lançons le chargement du fichier, en indiquant l'adresse de celui ci par l'objet URLRequest :
  41. chargeur.load(adresse);
  42. // définition des évenements de l'objet chargeur
  43. chargeur.addEventListener(Event.COMPLETE, finDuChargement);
  44. // définition de la fonction exécutée par l'événement COMPLETE :
  45. // ( déclenchée lorsque le chargement se termine )
  46. function finDuChargement ( event:Event ) {
  47. var contenu = event.target.data;
  48. XML.ignoreWhitespace = true;
  49. root['monXML'] = new XML(contenu);
  50. if(root['monXML'].children().length()<1){
  51.  MovieClip(parent).gotoAndStop(2);
  52. }
  53. }
  54. root['photoflip'].load(xmlFile);
  55. root['reponse'].text=root['photoflip'].source;
  56. function getXMLLength(pEvt:Event){
  57. root['reponse'].text="Longueur XML : "+root['photoflip'].length;
  58. if(root['photoflip'].length<1){
  59.  MovieClip(parent).gotoAndStop(2);
  60. }
  61. }
  62. //fonction exécutée en réponse à l'événement
  63. function gotoNextItem(pEvt:Event):void
  64. {
  65. root['photoflip'].nextItem();
  66. root['autoflipControler'].gotoAndPlay(1);
  67. }
  68. function gotoPrevItem(pEvt:Event):void
  69. {
  70. root['photoflip'].prevItem();
  71. root['autoflipControler'].gotoAndPlay(1);
  72. }
  73. root['btnPrevious'].addEventListener(MouseEvent.CLICK, gotoPrevItem);
  74. root['btnNext'].addEventListener(MouseEvent.CLICK, gotoNextItem);
  75. //Event Handler
  76. function eventHandler(event:ItemEvent):void {
  77.         switch(ItemEvent.CHANGE){
  78.                 case ItemEvent.CHANGE:
  79.                 root['title'].htmlText ="<b>"+event.item.title+"</b>";
  80.    root['desc'].htmlText = event.item.description;
  81.    root['credits'].htmlText = root['monXML'].item[root["photoflip"].selectedIndex].credits;
  82.    root['date_pub'].htmlText ="<b>Date de publication : </b>"+root['monXML'].item[root["photoflip"].selectedIndex].date_pub;
  83.    root['MCDiapo'].MCFade._alpha=0;
  84.    new Tween(root['MCDiapo'].MCFade, "alpha", Strong.easeOut,100, 0, 1, true);
  85.    // url de l'image à charger  
  86.    conteneurImage=new Loader();
  87.    var image:URLRequest = new URLRequest(root['monXML'].item[root["photoflip"].selectedIndex].@path);
  88.    conteneurImage.load(image);
  89.    //root['MCDiapo'].MCPhoto.addChild(conteneurImage);
  90.   break;
  91.         }
  92. }
  93. //Add Event Listener
  94. root['photoflip'].addEventListener(ItemEvent.CHANGE,eventHandler);
  95. //trace(conteneurImage)
  96. conteneurImage.addEventListener(Event.COMPLETE, loadingComplete);
  97. conteneurImage.addEventListener(ProgressEvent.PROGRESS, loadingProgress);
  98. conteneurImage.addEventListener(Event.INIT, loadingInit);
  99. function loadingComplete(e:Event):void{
  100. trace ("loading fini !" );
  101. root['MCDiapo'].MCPhoto.addChild(conteneurImage);
  102. var Ratio:Number = root['MCDiapo'].MCPhoto.width/root['MCDiapo'].MCPhoto.height;
  103. var NewHeight:int = root['MCDiapo'].MCMask.height; // ta nouvelle hauteur;      
  104. var NewWidth:int =root['MCDiapo'].MCPhoto.width*NewHeight/root['MCDiapo'].MCPhoto.height;  // ta nouvele largeur;  
  105. new Tween(conteneurImage, "width", Regular.easeIn, e.target.width, NewWidth, 1, true);
  106. new Tween(conteneurImage, "height", Regular.easeIn, e.target.height, NewHeight, 1, true);
  107. }
  108. function loadingProgress(p:ProgressEvent):void{
  109. trace ("loading en cours : "+p.bytesLoaded+" sur : "+p.bytesTotal+" chargés " );
  110. }
  111. function loadingInit(e:Event):void{
  112. trace ("loading" );
  113. }

n°1748441
Mav_69
Paella Certified
Posté le 18-06-2008 à 17:33:40  profilanswer
 

Oui il a pas l'air d'acceder au conteneur Image hors de la fonction....
 
Essaye de placer tes enregistrement de listener dans le eventHandler
 
(Si ca passe pas essayes de virer le break; )
 
Et si ca passe toujours pas, contactes moi en mp je verrai ca avec toi de chez moi ce soir apres le boulot


---------------
Mon Topik  -- Mon feed
n°1748766
freed102
Arayashiki
Posté le 19-06-2008 à 10:43:12  profilanswer
 

bon ben... j'ai essayé tout ça mais en vain... les listeners ne répondent en rien !!! (snif !)
 
je ne sais plus koi faire !

n°1748788
Mav_69
Paella Certified
Posté le 19-06-2008 à 11:13:16  profilanswer
 

contactes moi sur mon mail que je t'ai mis en mp ;)


---------------
Mon Topik  -- Mon feed
n°1774030
Never Surr​ender
Posté le 18-08-2008 à 10:12:36  profilanswer
 

Pour passer des arguments à une fonction dans le listener, vas voir du côté des fonctions "delegate" sur google ou sur le poste suivant où j'en utilise un.
 
http://forum.hardware.fr/hfr/Progr [...] 7243_1.htm
 
Je suis conscient que ça ne résout pas ton problème, mais j'ai cru lire en passant que tu ne voyais pas comment passer les arguments, ce qui est dommage :p


Message édité par Never Surrender le 18-08-2008 à 10:14:39
n°1776709
matmamat
Posté le 24-08-2008 à 16:29:30  profilanswer
 

Salut, j'ai eu un peu le même problème, et j'ai trouver la solution sur le site d'adobe, quand tu utilises un loader(conteneurImage), il ne faut pas écouter directement les évènements sur cet objet, mais sur conteneurImage.contentLoaderInfo, ce qui donne donc :
 

Code :
  1. conteneurImage.contentLoaderInfo.addEventListeneur(Event.COMPLETE, onComplete);


 
j'espère que ça t'aidera.


Message édité par matmamat le 24-08-2008 à 16:30:16

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  AS3 : Débuts difficiles => Resizer une image apres chargement

 

Sujets relatifs
Visionneuse d'image dans un popup[Resolu]Delphi/Directx : Plus d'image en grande résolution
Probleme reassemblage d'imageSuperposition d'image et fond cliquable
Redimensionner une image pour reso inferieurimpossible de trouver le problème : affichage d'image
comment enregistrer une image une fois redimensionnéeTraitement d'image en C++
Proteger un fomulaire d'upload d'image?[PHP] Découper une image
Plus de sujets relatifs à : AS3 : Débuts difficiles => Resizer une image apres chargement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR