Retailler une image en conservant ses proportions

Soyez le premier à donner votre avis sur cette source.

Vue 21 575 fois - Téléchargée 3 767 fois

Description

Bonjour les Amis !!
Voici une petite source qui permet de redimensionner une image en conservant ses proportions sous FLASH 8 (utilisation de (MovieClipLoader).

Source / Exemple :


La classe resizer contient la fonction : Resize avec laquelle on lui passe en paramètres dans cet ordre :
La position d?affichage en x de l?image
La position d?affichage en y de l?image
Le clip de réception
La taille en pixel voulue.

?	J?utilise MovieClipLoader qui est bien pratique puisqu?il permet de créer à la volée un clip vide pour positionner notre image.
?	J?ai écris en plus une fonction de gestion d?erreur (bien pratique lorsque l?image n?est pas présente) Il suffira de récupérer le code d?erreur et de le traduire en Français à l?aide par exemple d?un switch (Error) et de connecter sur la traduction en fonction du code d?erreur.
?	J?ai également mis la fonction onLoadComplete avec la récupération de la taille en octets de l?image (ça sert toujours par exemple pour ? préloader? et faire patienter vos visiteurs). Vous pouvez également utiliser ma source qui permet de charger des clips à la queue leuleu pour éviter de consommer toute la bande passante de la connexion internet de vos chers visiteurs ;-))
?	Enfin il suffit de lancer l?appli pour voir ce que ça donne

Conclusion :


Votre image sera positionnée exactement là où vous le désirez et à la taille voulue en pixels.

J?ai mis dans la source 3 images (un rectangle en longueur, 1 en largeur et un carré pour bien constater que l?image ne subit pas d?écrasement ou d?étirement après sa retaille).
Je précise que l?image sera retaillée en longueur ou en largeur suivant sa forme.
Par exemple on retaillera un rectangle long sur sa longueur et un rectangle haut sur sa hauteur.
Pour un carré, c?est le plus simple car la proportion est de 1 !

On pourrait directement donner le pourcentage de l?image ou préciser si on veut un agrandissement ou une réduction sur la longueur ou sur la hauteur.
A vous d?améliorer ce code pour ce faire ?.

A bientôt ?.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
19
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
25 août 2009

trouvé !!
Ecouteur.onLoadInit = function (cible){//trace("initialisé dans : "+cible);
precharge.init("clp_image");
Resize(11,11,cible,110);
contener._rotation+=20;
}
Messages postés
19
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
25 août 2009

Heu ... autre question : est-il possible de charger une image et de lui définir un angle (visualisation d'une image oblique)
je ne sais pas si cela est faisable.
merci
Messages postés
19
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
25 août 2009

Bonjour,

Ce script est nickel pour apprendre ... mais j'ai une petite question : est il possible de charger une image sans le btn "Chargement" ? heu ... je suis novice est j'essaie de comprendre.

Merci d'avance pour la réponse
Stéphanie
Messages postés
1596
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
9 juin 2011
2
Ton idée est en tout cas pas la bonne!!
Voilà une solution par exemple :

var cont:MovieClip = this.createEmptyMovieClip("conteneur", 1);

cont.loadMovie("test.jpg");

function reduire():Void{
cont._xscale cont._yscale cont._xscale*0.4;
}

function deplacer(sens:Number):Void{
clearInterval(id);
this.cont._x += sens;
if(this.cont._x < 150 && sens > 0){
this.id = setInterval(this, "deplacer", 20, 1);
}else if(this.cont._x > 0 && sens < 0){
this.id = setInterval(this, "deplacer", 20, -1);
}else if(this.cont._x >= 150){
this.id = setInterval(this, "deplacer", 20, -1);
}else if(this.cont._x <= 0){
this.id = setInterval(this, "deplacer", 20, 1);
}
}

setTimeout(this, "reduire", 2000);

this.id setInterval(this, "deplacer", 20, 1);
> Remplace le loadMovie par un MovieClipLoader et tu fais la reduction sur l'évènement onLoadInit et tu lances le déplacement sur le même évènement.

Tu colles ça dans un nouveau document flash, tu l'enregistres dans un dossier et dans ce même dossier, il faut juste que tu mettes une image "test.jpg" pour voir ce que ça donne.

@+! Samy
Messages postés
3
Date d'inscription
jeudi 14 octobre 2004
Statut
Membre
Dernière intervention
6 octobre 2006

Euh... Tu fais comment? :)
J'ai essayé pas mal de trucs du genre onEnterFrame qui marche nickel...mais sans le scale. Donc au final, ce que j'ai fais c de mettre une position _x et _y sur chaque frame. Ca fonctionne bien mais j'ai ete obligé deja de mettre mon animation en 120 fps pour que ce soit plus fluide. Le seul probleme est que ca sacade dans tous les cas (qd on fait du frame par frame, y parait que ca fait tjs ca).
Enfin voila! Je recommencerai pas mon animation car elle est trop avancée maintenant mais j'aimerai bien avoir une solution pour peut etre un futur projet. :)
Afficher les 24 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.