#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;
Проще и менее подвержен ошибкам, чем отслеживать / обновлять соотношение сторон самостоятельно.