Manipulação do tamanho e dimensionamento de objetos

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

É 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;