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
), soit 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 sur la taille de l’objet en pixels. Vous pouvez lire les valeurs de ces propriétés pour mesurer la taille de l’objet d’affichage. Vous pouvez également stipuler de nouvelles valeurs pour modifier la taille de l’objet, comme suit :
// Resize a display object.
square.width = 420;
square.height = 420;
// Determine the radius of a circle display object.
var radius:Number = circle.width / 2;
Modifier les propriétés
height
ou
width
d’un objet d’affichage modifie l’échelle de ce dernier. En d’autres termes, son contenu est étiré ou comprimé en fonction de la taille de la nouvelle zone. Si l’objet d’affichage ne contient que des formes vectorielles, elles sont redessinées à la nouvelle échelle, sans perte de qualité. Tout élément graphique bitmap de l’objet d’affichage est mis à l’échelle au lieu d’être redessiné. Ainsi, une photo numérique dont la largeur et la hauteur augmentent de sorte à dépasser les dimensions réelles des informations relatives aux pixels de l’image est pixellisée, ce qui lui donne un aspect irrégulier.
Lorsque vous modifiez les propriétés
width
ou
height
d’un objet d’affichage, Flash Player et AIR mettent également à jour les propriétés
scaleX
ou
scaleY
de l’objet.
Remarque :
les objets TextField ne respectent pas ce comportement de mise à l’échelle. Les champs de texte doivent se redimensionner automatiquement pour gérer le retour à la ligne automatique et les tailles de police. Leurs valeurs scaleX et scaleY sont donc réinitialisées à 1 au terme du redimensionnement. Toutefois, si vous ajustez la valeur scaleX ou scaleY d’un objet TextField, les valeurs de largeur et de hauteur sont modifiées en fonction des valeurs de mise à l’échelle que vous indiquez.
Ces propriétés représentent la taille relative de l’objet d’affichage par rapport à sa taille d’origine. Les propriétés
scaleX
et
scaleY
utilisent des valeurs exprimées sous forme de fractions (décimales) pour représenter le pourcentage. Par exemple, si la propriété
width
d’un objet d’affichage 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 doublé, sa propriété
scaleY
prendra la valeur
2
, soit 200 %.
// circle is a display object whose width and height are 150 pixels.
// At original size, scaleX and scaleY are 1 (100%).
trace(circle.scaleX); // output: 1
trace(circle.scaleY); // output: 1
// When you change the width and height properties,
// Flash Player changes the scaleX and scaleY properties accordingly.
circle.width = 100;
circle.height = 75;
trace(circle.scaleX); // output: 0.6622516556291391
trace(circle.scaleY); // output: 0.4966887417218543
Les changements de taille ne sont pas proportionnels. En d’autres termes, si vous modifiez la
hauteur
d’un carré, mais non sa
largeur
, ses proportions ne sont plus identiques et il devient un rectangle au lieu d’un carré. Si vous souhaitez modifier relativement la taille d’un objet d’affichage, vous pouvez définir les valeurs des propriétés
scaleX
et
scaleY
pour redimensionner l’objet, plutôt que définir les propriétés
width
ou
height
. Par exemple, ce code modifie la propriété
width
de l’objet d’affichage appelé
square
, puis modifie l’échelle verticale (
scaleY
) en fonction de l’échelle horizontale, afin que la taille du carré demeure proportionnelle.
// Change the width directly.
square.width = 150;
// Change the vertical scale to match the horizontal scale,
// to keep the size proportional.
square.scaleY = square.scaleX;