Измерить размер экранного объекта и манипулировать им можно двумя способами: либо с помощью свойств измерений (
width
и
height
), либо с помощью свойств масштаба (
scaleX
и
scaleY
).
Каждый экранный объект имеет свойства
width
и
height
, которые исходно приравниваются к размеру объекта в пикселах. Значения этих свойств можно считать, чтобы измерить размер экранного объекта. Можно также указать новые значения, чтобы изменить размер объекта следующим образом:
// Resize a display object.
square.width = 420;
square.height = 420;
// Determine the radius of a circle display object.
var radius:Number = circle.width / 2;
Изменение свойств
height
или
width
экранного объекта приводит к масштабированию объекта. При этом его содержимое растягивается или сжимается, чтобы вместиться в новую область. Если экранный объект содержит только векторные фигуры, то они будут отрисованы с новым масштабом без потери качества. Любые растровые графические элементы в экранном объекте будут отрисованы вместо масштабирования. Итак, например, цифровая фотография, ширина и высота которой увеличиваются, превосходя фактические размеры, заданные для пикселной информации в изображении, будет пикселизирована, а изображение станет зубчатым.
При изменении свойств
width
или
height
экранного объекта Flash Player и AIR обновляют также свойства
scaleX
и
scaleY
объекта.
Примечание.
Объекты TextField являются исключением из этого поведения при масштабировании. Текстовые поля должны изменять свой размер, чтобы вместить перенос текста и размеры шрифта, поэтому после изменения размеров они сбрасывают свои значения scaleX и scaleY до единицы. Однако при изменении значений scaleX или scaleY объекта TextField значения width и height (ширина и высота) также изменяются, чтобы применить заданные значения масштабирования.
Эти свойства отражают относительный размер экранного объекта в сравнении с его исходным размером. Свойства
scaleX
и
scaleY
используют дробные десятичные значения при расчете процентных значений. Например, если значение
width
экранного объекта изменилось так, что оно составляет половину исходного размера, свойству
scaleX
будет присвоено значение
.5
, равное 50 процентам. В случае удвоения высоты его свойству
scaleY
будет присвоено значение
2
, равное 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
Изменения размера непропорциональны. Иными словами, если вы изменяете высоту (
height
) квадрата, не трогая ширину (
width
), его пропорции больше не будут прежними, и вместо квадрата вы получите прямоугольник. Если вы хотите внести относительные изменения в размер экранного объекта, можно установить значения свойств
scaleX
и
scaleY
, чтобы изменить размер объекта вместо установки свойств
width
или
height
. Например, этот код изменяет свойство
width
экранного объекта
square
, а затем изменяет масштаб по вертикали (
scaleY
), приравнивая его к масштабу по горизонтали, чтобы размеры квадрата оставались пропорциональными.
// 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;