Цитата:
Можешь объяснить на пальцах, как дочерние классы слушают-подписываются на эти изменения?
|
Им не надо ничего слушать. Задание скейл фактора происходит в главном классе, сразу после "устаканивания" размера сцены, так как на андроиде ее размеры меняются, пока приложение не развернется. Напиши просто какой-то отдельный метод, который будет все делить на этот скейл.
Я сделал так:

Код AS3:
// scaled pixels
public function sp(value:Number):Number {
return value / Main.scaleFactor;
}
и вынес эту функцию на уровень пакета.
А где надо что-то сделать с относительным скейлом, например задать ширину контейнера с параллаксом, я делаю так:

Код AS3:
someContainer.width = sp(500); // на экране 800х480 скейл получается 1.28, значит вместо 500 ширина в итоге будет 390,625
someContainer.height = sp(300);
someContainer.x = sp(20);
someContainer.y = sp(100);
Таким образом, всё делается строго с нужным скейлом. На всех экранах в итоге выглядит одинаково.
п.с. Ну и если проект делается на старлинге, то этот же скейл фактор нужно передать ассет менеджеру при инициализации, чтобы он все текстуры создавал тоже с учетом этого скейла.