Из описания Event.RENDER
Цитата:
|
Отправляется перед обновлением и визуализацией списка отображения. Это событие дает последнюю возможность объектам, прослушивающим данное событие, внести изменения перед визуализацией списка отображения
|
Просто так оно не отправляется. Для того, что оно отправилось, нужно сделать stage.invalidate ()
Схема такая:
1. Идет рассылка событий типа клика мыши или нажатия клавиши
2. Идет рассылка события Event.ENTER_FRAME
3. Идет рассылка события Event.EXIT_FRAME
4. Идет рассылка события загрузки, типа Event.INIT, Event.OPEN, Event.COMPLETE и тп.
5. Идет рассылка события Event.RENDER, если в любом из этапов 1-4 был вызван stage.invalidate ()
6. Плеер выводит графику.
Допустим у нас есть спрайт с нарисованным квадратом 100 на 100, у которого переопределен width.
Когда мы его меняем на этапе 1-4, допустим на 200, то сохраняем его значение в _width и вызваем stage.invalidate ().
Если после этого, кто-то обратится к свойству width, то он вернет значение _width, то есть 200.
Когда все события разосланы и плеер собирается отрисовать графику, рассылается последнее событие Event.RENDER, которые вызывает наш redraw, где мы что-то делаем. Допустим стираем graphics и рисуем новый прямоугольник, но с шириной равной _width.