Это уже меня беспокоило.Как вы обрабатываете этап Event.RESIZE в приложении ActionScript3?
При использовании стадии изменения размера, вы могли бы сказать что-то вроде этого:
public class Preload extends MovieClip
{
protected var main:Main;
public function preloader()
{
this.main = new Main();
this.addChild(this.main);
stage.addEventListener(Event.RESIZE, this.onResize);
}
protected function onResize(e:Event): void
{
this.main.x = stage.stageWidth>>1;
this.main.y = stage.stageHeight>>1;
}
}
Что если нужно Main также изменить размер? У меня много систем, которые реагируют на событие изменения размера, и я не знаю, должен ли я просто добавлять слушатель сцены Event.RESIZE на каждый экран или если это нужно контролировать из одного места.
Например, добавьте this.main.resize() в прослушиватель onResize, а затем реализуйте интерфейс IResizable на моих экранах, например?
Что такое лучшая практика?
EDIT: Или изменить размер быть частью чего-то более общего, как Invalidate()
В зависимости от размера приложения и количества вещей в масштабе у вас есть несколько вариантов, также в зависимости от того, что вы хотите. Вы хотите откликнуться, а затем добавить слушателя изменения размера для всех вещей, которые вы хотите изменить и/или изменить. Если вы просто хотите масштабировать все, лучше просто создать контейнер и установить scaleX и scaleY для контейнера movieclip – Marijn
Спасибо Marijn. (Я не масштабирую). Как вы можете видеть, я бы тоже взял этот маршрут, но я слышал, что несколько слушателей работают медленно. См. Пирс. – user1059939