Votre question

Actionscript 3 : movieClip vide

Tags :
  • Target
  • Programmation
Dernière réponse : dans Programmation
7 Mars 2010 22:47:36

Bonjour à tous !

Je tente de réaliser une classe qui hérite de MovieClip et dont l'objectif est qu'à la fin de son execution, ce clip contienne toutes les news de mon site.
Ces news sont stockées dans des fichiers txt nommés "newsI.txt" (I étant le numéro de la news) allant de 1 jusqu'à n.

Voici le code en question :

  1. public class ExtracteurNews extends MovieClip
  2. {
  3. private var conteneurTextes:URLLoader;
  4. private var fichier:URLRequest;
  5. private var numero:int = 1;
  6. private var news:Array;
  7.  
  8. public function ExtracteurNews()
  9. {
  10. news = new Array();
  11. extraireNews(1);
  12. }
  13.  
  14. public function extraireNews(num:int):void
  15. {
  16. var loadListener:Object = new Object();
  17.  
  18. conteneurTextes = new URLLoader();
  19. fichier = new URLRequest("news/news"+num+".txt");
  20.  
  21. conteneurTextes.addEventListener(Event.COMPLETE, onComplete);
  22. conteneurTextes.addEventListener(IOErrorEvent.IO_ERROR, fin);
  23. conteneurTextes.load(fichier);
  24. }
  25.  
  26. // Le chargement est terminé
  27. private function onComplete(evt:Event):void
  28. {
  29. var conteneur:Sprite = new Sprite();
  30. var donnees:URLVariables = new URLVariables(evt.target.data);
  31.  
  32. var format3:TextFormat = new TextFormat();
  33. format3.size = 17;
  34. format3.align = TextFormatAlign.CENTER;
  35. format3.font = "St Charles";
  36.  
  37. var contenu:TextField = new TextField();
  38. contenu.text = donnees.contenu;
  39. contenu.setTextFormat(format3);
  40. contenu.width = 285;
  41. contenu.wordWrap = true;
  42. contenu.mouseWheelEnabled = false;
  43. contenu.selectable = false;
  44. contenu.autoSize = TextFieldAutoSize.CENTER;
  45. conteneur.addChild(contenu);
  46.  
  47. var format2:TextFormat = new TextFormat();
  48. format2.size = 15;
  49. format2.font = "St Charles";
  50.  
  51. var auteurDate:TextField = new TextField();
  52. auteurDate.text = "News postee par "+donnees.auteur+" le "+donnees.date;
  53. auteurDate.setTextFormat(format2);
  54. auteurDate.width = 280;
  55. auteurDate.y = 50;
  56. conteneur.addChild(auteurDate);
  57.  
  58. news.push(conteneur);
  59.  
  60. numero++;
  61. extraireNews(numero);
  62. }
  63.  
  64. private function fin(evt:IOErrorEvent):void
  65. {
  66. var conteneur:Sprite;
  67. var posy:int = 0
  68.  
  69. while(news.length>0)
  70. {
  71. conteneur = news.pop();
  72. conteneur.y = posy;
  73.  
  74. addChild(conteneur);
  75. posy += conteneur.height + 100;
  76. }
  77.  
  78. this.dispatchEvent(new Event("newsChargee"));
  79. }
  80. }



Mon problème maintenant :
Au cours de ma boucle while, tout à la fin, je sais que ma variable conteneur n'est pas vide. Elle a une hauteur définie qui dépend, en toute logique, de la taille de ma news.
La taille de mon MovieClip, en revanche, reste à zéro malgré que je lui ajoute plusieurs conteneurs... Et si je tente de la forcer à autre chose que zéro, mon MovieClip est désespérément vide...

Help ?... :sweat: 

Autres pages sur : actionscript movieclip vide

a c 232 L Programmation
10 Mars 2010 00:18:57

Salut,

Je ne connais pas ActionScript, mais il faudrait peut être définir une hauteur à ton movieclip de la taille de ton conteneur non ?
m
0
l
10 Mars 2010 22:47:55

Salut et merci pour ta réponse.


Malheureusement non, normalement la taille du MovieCLip est supposée s'adapter à ce qu'on lui fait contenir.

J'ai quand même essayé de lui fixer une taille mais le problème persistait.


Finalement j'ai trouvé d'où venait le soucis... Après des heures de recherches et de bidouilles il s'est avéré que je devais remplacer :

  1. addChild(conteneur);


par :

  1. this.addChild(conteneur);


Je suis dégouté d'avoir passé des heures sur un truc pareil... D'autant plus que je ne comprends pas à quoi d'autre que "this" il pouvait bien ajouter mon conteneur...

Enfin problème réglé, c'est le principal.
m
0
l
a c 232 L Programmation
11 Mars 2010 01:14:37

Je te comprend.
Bizarre que changer ça fonctionne... je ne suis pas expert Actionscript3, mais c'est vraiment mal foutu si c'est le cas...
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS