É possível medir e manipular o tamanho de um objeto de exibição de duas formas, usando as propriedades de dimensão (
width
e
height
) ou as propriedades de escala (
scaleX
e
scaleY
).
Todo objeto de exibição tem uma propriedade
width
e uma propriedade
height
, que são definidas inicialmente como o tamanho do objeto em pixels. É possível ler os valores dessas propriedades para medir o tamanho do objeto de exibição. Você também pode especificar novos valores para alterar o tamanho do objeto, do seguinte modo:
// Resize a display object.
square.width = 420;
square.height = 420;
// Determine the radius of a circle display object.
var radius:Number = circle.width / 2;
Se você alterar a
altura
ou a
largura
de um objeto de exibição, esse objeto será dimensionado, ampliando ou reduzindo seu conteúdo para ajustá-lo na nova área. Caso o objeto de exibição tenha apenas formas vetoriais, essas formas serão redesenhadas na nova escala, sem prejudicar a qualidade. Todos os elementos gráficos de bitmap do objeto de exibição serão dimensionados, não redesenhados. Assim, por exemplo, uma foto digital cuja largura e altura são aumentadas além das dimensões reais das informações de pixels na imagem será pixelizada, ficando irregular.
Quando as propriedades
width
ou
height
de um objeto de exibição são alteradas, o Flash Player e o AIR também atualizam as propriedades
scaleX
e
scaleY
.
Nota:
Os objetos TextField são uma exceção a este comportamento de dimensionamento. Os campos de texto devem fazer o dimensionamento automático para acomodar textos com quebra e tamanhos de fonte variados, fazendo com que os valores scaleX ou scaleY sejam redefinidos como 1 após o redimensionamento. No entanto, se você ajustar os valores scaleX ou scaleY de um objeto TextField, os valores de largura e altura serão alterados para acomodar os valores de dimensionamento especificados.
Essas propriedades representam o tamanho relativo do objeto de exibição em comparação com o tamanho original. As propriedades
scaleX
e
scaleY
usam valores fracionários (decimais) para representar porcentagens. Por exemplo, se a
largura
de um objeto de exibição for alterada para ter metade do tamanho original, a propriedade
scaleX
terá o valor
.5
, que indica 50%. Se a altura for dobrada, a propriedade
scaleY
terá o valor
2
, que indica 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
As alterações de tamanho não são proporcionais. Em outras palavras, e você alterar a
altura
de um quadrado, mas não a
largura
, suas proporções não serão mais as mesmas e o resultado será um retângulo, em vez de um quadrado. Se desejar fazer alterações relacionadas ao tamanho de um objeto de exibição, defina os valores das propriedades
scaleX
e
scaleY
para redimensionar o objeto, em vez de definir as propriedades
width
ou
height
. Por exemplo, este código altera a
largura
do objeto de exibição chamado
square
e, em seguida, altera a escala vertical (
scaleY
) para corresponder à escala horizontal, mantendo o tamanho proporcional do quadrado.
// 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;