Redimensionnement et mise à l'échelle des objets

La taille d'un objet d'affichage peut être obtenue et modifiée de deux façons, en utilisant soit les propriétés de dimensions (width et height) ou les propriétés d'échelle (scaleX et scaleY).

Chaque objet d'affichage possède une propriété width et une propriété height, qui sont initialement définies avec la taille de l'objet en pixels. Il est possible de lire les valeurs de ces propriétés pour mesurer la taille de l'objet. Vous pouvez aussi spécifier de nouvelles valeurs pour modifier la taille de l'objet :

// redimensionnement d'un objet d'affichage.
square.width = 420;
square.height = 420;

// détermination du rayon d'un objet de type cercle.
var radius:Number = circle.width / 2;

La modification de la propriété height ou width d'un objet d'affichage provoque une mise à l'échelle de cet objet, si bien que son contenu est étiré ou rétréci pour l'adapter à la nouvelle zone. Si l'objet ne contient que des formes vectorielles, ces dernières sont retracées à la nouvelle échelle, sans perte de qualité. Par contre, tout élément bitmap figurant dans l'objet sera mis à l'échelle, et non pas redessiné. Ainsi, une photo numérique dont la largeur et la hauteur sont augmentées au-delà des dimensions réelles des informations de pixels de l'image subira une pixellisation, d'où un effet d'escaliers.

Si vous modifiez les propriétés width ou height d'un objet d'affichage, Flash Player actualise aussi en conséquence les propriétés scaleX et scaleY de l'objet. Ces propriétés représentent la taille relative de l'objet d'affichage par rapport à sa taille originale. Les propriétés scaleX et scaleY utilisent des valeurs décimales pour représenter des pourcentages. Par exemple, si la propriété width d'un objet a été réduite à la moitié de sa largeur originale, la propriété scaleX de cet objet prendra la valeur 0,5, soit 50 %. Si sa hauteur a été doublée, sa propriété scaleY prendra la valeur 2, soit 200 %.

// circle est un objet d'affichage dont  la largeur et la hauteur sont de 150 pixels.
// à sa taille originale, les valeurs de scaleX et scaleY sont de 1 (100%).
trace(circle.scaleX);// sortie : 1
trace(circle.scaleY);// sortie : 1

si les propriétés width et height sont modifiées, 
// Flash Player modifie les propriétés scaleX et scaleY en conséquence.
circle.width = 100;
circle.height = 75;
trace(circle.scaleX);// sortie : 0.6622516556291391
trace(circle.scaleY);// sortie : 0.4966887417218543

Les changements de taille ne sont pas proportionnels. Autrement dit, si vous changez la propriété height d'un carré mais pas sa propriété width, ses proportions ne seront plus identiques et le carré deviendra un rectangle. Pour obtenir une modification relative de la taille d'un objet d'affichage, vous pouvez modifier les valeurs des propriétés scaleX et scaleY afin de redimensionner l'objet, plutôt que ses propriétés width et height. Par exemple, le code suivant change la propriété width de l'objet d'affichage square, puis modifie l'échelle verticale (scaleY) pour qu'elle soit identique à l'échelle horizontale, afin de préserver les proportions du carré.

// changer directement la largeur.
square.width = 150;

// changer l'échelle verticale pour qu'elle soit identique à l'échelle horizontale, 
// afin de préserver les proportions du carré.
square.scaleY = square.scaleX;

Flash CS3

 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000156.html