Масштабировать спрайт в as3?

#actionscript-3

#actionscript-3

Вопрос:

У меня есть спрайт в коде as3, я хочу ввести его высоту, чтобы изменить его размер, как я могу соответствующим образом масштабировать ширину?

 sprite.height = 200;
sprite.width = ??
 

Спасибо

Ответ №1:

Если вы хотите масштабировать спрайт, почему бы не использовать методы use scale?

 sprite.scaleX = 2;
sprite.scaleY = 2;
 

В противном случае вам нужно будет применить соотношение, например, ширина / высота.

Допустим, ваш спрайт был шириной: 150, высотой: 100. Это означает, что ширина в 1,5 раза превышает высоту.

 // calculate ratio of scale factor
var ratio:Number = sprite.width / sprite.height; // 1.5

// apply ratio your sprite's original dimensions:
sprite.height = 200;
sprite.width = sprite.height * ratio; // 300
 

Это также может быть достигнуто с помощью матричного преобразования.

Ответ №2:

Свойства масштаба обновляются при установке ширины / высоты, поэтому вы можете использовать их для масштабирования другого измерения:

 sprite.height = 200;
sprite.scaleX = sprite.scaleY;
 

Проще и менее подвержен ошибкам, чем отслеживать / обновлять соотношение сторон самостоятельно.