[CORRIGÉ] Charger une image et l'étirer

Charger une image et l'étirer [CORRIGÉ] - Flash/ActionScript - Programmation

Marsh Posté le 07-05-2008 à 14:45:12    

Salut à tous
 
en Flash AS 3, je charge une image avec la classe Loader, puis, je l'insère dans un MovieClip vide.  

Code :
  1. MCImage.addChild(loaderImage);


Jusque là, tout va bien, et l'image affiche correctement.
 
ensuite, je veux agrandir l'image jusqu'à la taille du stage, alors j'utilise .width (ou Xscale, le résultat est le même), et l'image, au lieu de s'agrandir, dirparaît... comment régler ça?


Message édité par karminator98 le 07-05-2008 à 17:26:17
Reply

Marsh Posté le 07-05-2008 à 14:45:12   

Reply

Marsh Posté le 07-05-2008 à 15:02:49    

montre nous ton code pour agrandir l'image, ça sera plus parlant
au passage c'est _width et _xscale

Reply

Marsh Posté le 07-05-2008 à 15:19:33    

_width c'est en ActionScript 2.0 .
je travaille en ActionScript 3.0 ...
 

Code :
  1. var loader2:Loader = new Loader();
  2. image.addChild(loader2);
  3. var requested:URLRequest = new URLRequest(photo);
  4. try {
  5. loader2.load(requested);
  6. loader2.width = stage.width;
  7. loader2.width = stage.width;
  8. /*
  9. ou :
  10. var xfactor = stage.width / loader2.width;
  11. var yfactor = stage.height / loader2.height;
  12. loader2.scaleX = xfactor;
  13. loader2.scaleY = yfactor;
  14. les 2 codes arrivent au même résultat : la disparition de l'image
  15. */
  16. } catch (err:Error) {
  17. changeMessageWidth = true;
  18. }

Reply

Marsh Posté le 07-05-2008 à 15:41:37    

ha, reflexe as2...
 
fait ton resize après que l'image soient chargée (après Event.COMPLETE), ça marchera mieux

Reply

Marsh Posté le 07-05-2008 à 16:19:10    

maintenant, l'image apparaît, mais elle ne s'agrandit pas...
 

Code :
  1. var loader2:Loader = new Loader();
  2. image.addChild(loader2);
  3. //...
  4. loader2.addEventListener(Event.COMPLETE, reajuster);
  5. function reajuster(ev:Event) {
  6. loader2.width = stage.width;
  7. loader2.height = stage.height;
  8. // ou
  9. image.width = stage.width;
  10. image.height = stage.height;
  11. //ou
  12. var xscale = stage.width / loader2.width;
  13. var yscale = stage.height / loader2.height;
  14. loader2.scaleX = xscale;
  15. loader2.scaleY = yscale;
  16. //ou
  17. var xscale = stage.width / loader2.width;
  18. var yscale = stage.height / loader2.height;
  19. image.scaleX = xscale;
  20. image.scaleY = yscale;
  21. }

Reply

Marsh Posté le 07-05-2008 à 16:28:55    

attention l'évènement est sur le LoaderInfo :

Code :
  1. loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, reajuster);

Reply

Marsh Posté le 07-05-2008 à 16:59:39    

ça étire.. mais trop maintenant... j'ai fait une erreur quelque part ? (les 4 codes différents étirent trop l'image)

Reply

Marsh Posté le 07-05-2008 à 17:21:50    

essaye avec stage.stageWidth et stage.stageHeight

Reply

Marsh Posté le 07-05-2008 à 17:25:46    

merci :D
 
ça fonctionne :D

Reply

Sujets relatifs:

Leave a Replay

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