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

AS3 : Débuts difficiles => Resizer une image apres chargement - Flash/ActionScript - Programmation

Marsh Posté le 17-06-2008 à 18:29:55    

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

Reply

Marsh Posté le 17-06-2008 à 18:29:55   

Reply

Marsh Posté le 17-06-2008 à 19:16:13    

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
Reply

Marsh Posté le 18-06-2008 à 09:56:09    


 
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 ! :)

Reply

Marsh Posté le 18-06-2008 à 10:01:44    

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

Reply

Marsh Posté le 18-06-2008 à 11:27:20    

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
Reply

Marsh Posté le 18-06-2008 à 11:47:47    

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);

Reply

Marsh Posté le 18-06-2008 à 12:18:39    

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
Reply

Marsh Posté le 18-06-2008 à 14:34:46    

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. }


Reply

Marsh Posté le 18-06-2008 à 15:20:09    

Meme pas le trace ?


---------------
Mon Topik  -- Mon feed
Reply

Marsh Posté le 18-06-2008 à 15:37:22    

non rien du tout ! :(

Reply

Marsh Posté le 18-06-2008 à 15:37:22   

Reply

Marsh Posté le 18-06-2008 à 15:43:37    

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
Reply

Marsh Posté le 18-06-2008 à 17:01:23    

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. }

Reply

Marsh Posté le 18-06-2008 à 17:33:40    

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
Reply

Marsh Posté le 19-06-2008 à 10:43:12    

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

Reply

Marsh Posté le 19-06-2008 à 11:13:16    

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


---------------
Mon Topik  -- Mon feed
Reply

Marsh Posté le 18-08-2008 à 10:12:36    

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
Reply

Marsh Posté le 24-08-2008 à 16:29:30    

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
Reply

Sujets relatifs:

Leave a Replay

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