Я кстати тоже делал подобным образом, только более варварски. У меня были в главной вьюхе (main) были private static переменные mainWidth и mainHeight, у которых были только геттеры. И точно также по событию Event.RESIZE у каждого ребенка вызывалась функция .resize(). По разному я делал - иногда width и height были статическими переменными мэйна, иногда - передавались в каждого ребенка. Кажется, тогда я так и не определился, какой вариант оптимальнее)) Хотя сейчас кажется очевидным, что можно по ресайзу менять эти переменные в модели, которая будет рассылать события по всем и вся.
Appleman
Цитата:
|
А откуда твоя главная вьюха "знает", в каких пределах и на какие значения должны измениться те или иные компоненты?
|
главная вьюха об этом ничего не знает. Она даже может не знать, сколько этих самых дочерних вьюх, если рассматривать вариант с моделью. В каждом спрайте, который имплементирует iResizeble, своя соб ственная функция resize(), в которую либо приходят размеры стейджа, либо она их забирает из модели и уже самостоятельно принимает решение об изменении.
Добавлено через 3 минуты
хотя блин, что я говорю, ведь каждый спрайт имеет доступ к stage.stageWidth и stageHeight)) Правда, это если он добавлен на сцену. А у меня просто размер менялся из js окружения, поэтому параметры ширины приходили из ExternalInterface