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

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  redimensionner automatiquement des images issues d'un XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

redimensionner automatiquement des images issues d'un XML

n°1959520
Ch'DUP
Posté le 21-01-2010 à 21:07:59  profilanswer
 

bonjour à tous  :hello:  
 
Je souhaite afficher des images dans un clip vide via un loadMovie.
Jusque la pas de souci.
des boutons  me permettent de defiler dans ces images qui sont appelées via un fichier xml.
 
maintenant je souhaiterai redimensionner automatiquement les images (qui sont toutes de tailles differentes),  
soit avec une largeur de 70% de la scene si l'image est en payasage
soit avec une hauteur de 70% de la scene si l'image est en portrait.
et ce, en conservant le rapport H/L d'origine !!
 
voici ma fonction affichage :

Citation :

function affichage(variable) {
 unload (monClipConteneur);
 loadMovie(mesURLImages[variable], monClipConteneur);
 chargeur.onEnterFrame = function() {
   if ((monClipConteneur.getBytesLoaded() == monClipConteneur.getBytesTotal()) && (monClipConteneur.getBytesTotal()>0)) {  
    delete this.onEnterFrame;
    largeur = monClipConteneur._width;
    hauteur = monClipConteneur._height;
    rapport = largeur / hauteur;
    if (largeur > hauteur) {
     monClipConteneur._width = Stage.width*.7;
     monClipConteneur._height = monClipConteneur._width/rapport;
    } else {
 
     monClipConteneur._height = Stage.height*.7;
     monClipConteneur._width = monClipConteneur._height/rapport;
    };
   };
  };
};


 
 
Ca fonctionne tres bien à l'affichage de la premiere photo.
Mais à partir de la 2eme, et meme si je reviens sur la 1ere, monClipConteneur._height garde la taille de l'affichage de l'image precedente.
si je trace monClipConteneur._height à la fin du chargement (sur la ligne au dessus du delete) il n'a pas la taille de mesURLImages[variable], comme je pensais qu'il aurait.
Y'a-t-il moyen de recuperer mesURLImages[variable]._x et ._y ?
 
merci de votre aide !!

mood
Publicité
Posté le 21-01-2010 à 21:07:59  profilanswer
 

n°1959592
abais
Posté le 22-01-2010 à 09:53:22  profilanswer
 

C'est normal, tu as beau "unloader" monClipConteneur, ça n'en supprime pas les propriété pour autant, il garde donc sa taille...
 
plutôt qu'un unload, essaye un delete


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1959613
Ch'DUP
Posté le 22-01-2010 à 10:51:01  profilanswer
 

effectivement, tu as bien cerné mon souci je pense, merci !
 
mais :
le resultat est le meme avec delete
trace(monClipConteneur._width); me renvoie la taille de l'ancien monClipConteneur, meme placé 1 ligne sous le delete, le delete ne semble pas supprimer non plus les propriétés
 
Ce que je ne comprend pas c'est que le meme trace placé en 1ere ligne du if qui verifie la fin du chargement me renvoie egalement la taille de l'ancien monClipConteneur.
 
 
edit :
j'ai trouvé !!
 
en fait il faut que monClipConteneur soit créé "dynamiquement en AS via createEmptyMovieClip("monClipConteneur",0);  
(je l'avais créé dans la bibliotheque flash)
 
du coup, pas besoin de delete ni meme de unload, le ClipConteneur prend bien les dimensions de l'image chargée à chaque fois.
et j'ai pu faire mes operations de redimensionnement.
 
merci de ton coup de pouce.


Message édité par Ch'DUP le 22-01-2010 à 11:23:17
n°1959650
abais
Posté le 22-01-2010 à 12:02:27  profilanswer
 

Oui, c'est ce que j'aurai pu te dire, mais j'aurai pensé que le delete aurait solutionner la chose...
Honte à l'AS2 qui par sa sur-tolérance n'aide pas à comprendre les problème...  
 
L'AS3 a une philosophie bien différente...
 
Tu pourras juste par curiosité essayer ce script :
en plus du unload, j'ecrase monClipConteneur en redéfinissant un nouveau MovieClip...

Code :
  1. function affichage(variable) {
  2.     monClipConteneur = new MovieClip();
  3.     monClipConteneur.loadMovie(mesURLImages[variable]);
  4.     chargeur.onEnterFrame = function() {
  5.             if ((monClipConteneur.getBytesLoaded() == monClipConteneur.getBytesTotal()) && (monClipConteneur.getBytesTotal()>0)) {    
  6.                 delete this.onEnterFrame;
  7.                 largeur = monClipConteneur._width;
  8.                 hauteur = monClipConteneur._height;
  9.                 rapport = largeur / hauteur;
  10.                 if (largeur > hauteur) {
  11.                     monClipConteneur._width = Stage.width*.7;
  12.                     monClipConteneur._height = monClipConteneur._width/rapport;
  13.                 } else {
  14.  
  15.                     monClipConteneur._height = Stage.height*.7;
  16.                     monClipConteneur._width = monClipConteneur._height/rapport;
  17.                 };
  18.             };
  19.         };
  20. };



---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1959667
Ch'DUP
Posté le 22-01-2010 à 12:30:19  profilanswer
 

(info importante : je suis un gros boulet en AS, j'ai ouvert flash pour la premiere fois de ma vie il y a 15 jours)
 
à priori ce que tu me demandes d'essayer ne fonctionne pas. Il n'y a aucune image de chargée.
j'ai cette erreur : Cible introuvable : Cible="undefined" Base="_level0"
 
en fait, dans mon ancien AS (qui fonctionne) j'ai " createEmptyMovieClip("monClipConteneur",0);" qui est DANS la function
donc recréé à chaque fois.
dis moi si tu veux que j'essaie autre chose

n°1959670
abais
Posté le 22-01-2010 à 12:37:18  profilanswer
 

non c'est ok pour moi, j'ai pigé... heureusement que je suis passé à ll'AS3 :o


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1959682
Ch'DUP
Posté le 22-01-2010 à 12:58:24  profilanswer
 

arf
va peut etre falloir que je m'y mette alors.

n°1959850
Ch'DUP
Posté le 23-01-2010 à 11:08:25  profilanswer
 

Je me permets de rouvrir ce topic pour demander à nouveau de l'aide !!
en fait mon code ne fonctionne pas avec une image en 3872 X 2592 alors qu'il fonctionne avec la meme image redimensionnée en 1024 X 685
 
de quoi cela peut-il venir ?

n°1959852
abais
Posté le 23-01-2010 à 11:13:58  profilanswer
 

La limite bitmapData de flash qui est de 2880px ...
En AS2 je sais pas si il y a une parade, mais en AS3 il y en a une qui permet de repousser ses limites un peu plus loin...
Je sais que Flash Player 10 supporte plus en théorie : http://kb2.adobe.com/cps/496/cpsid_49662.html


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
n°1959859
Ch'DUP
Posté le 23-01-2010 à 11:34:20  profilanswer
 

fais gaffe , tu vas devenir ma bible AS/flash  :D  
 
merci de ton explication, je vais me pencher la dessus.


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

  redimensionner automatiquement des images issues d'un XML

 

Sujets relatifs
Signature et Cryptage fichier XML avec phpDéfilement images background
Editer un fichier XML sous windowsProbleme Java FO XML
Recherche d'images similaires[PHP] Extraire automatiquement une image d'un site (cf.Facebook share)
Firefox souligne toutes les imagesimages bibliotheque flash
SEO: images sur un nom de domaine différentPb avec XML en AS3 [Résolu]
Plus de sujets relatifs à : redimensionner automatiquement des images issues d'un XML


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