У меня есть собственный видовой стек, который автоматически применяет эффект вставки / выдвижения при изменении вида. Все идет гладко, когда представления облегчены, но становится нервным, когда следующий вид требует интенсивного рендеринга.
Вот соответствующие части кода:
_showEffect = new Parallel();
_contentMove = new Move();
_imageMove = new Move();
_showEffect.addChild(_contentMove);
_showEffect.addChild(_imageMove);
_showEffect.addEventListener(EffectEvent.EFFECT_END, effectEndHandler);
Я применяю параллельный эффект к showEffect каждого вида:
vis.setStyle("showEffect", _showEffect);
Я определяю свойство перемещений в зависимости от направления анимации, здесь слева (где _views - мой постоянный видовой стек в пользовательском компоненте):
_contentMove.xFrom = _views.width;
_contentMove.xTo = 0;
_contentMove.yFrom = 0;
_contentMove.yTo = 0;
_imageMove.xFrom = 0;
_imageMove.xTo = -_views.width;
_imageMove.yFrom = 0;
_imageMove.yTo = 0;
_imageMove перемещает изображение экрана предыдущего вида, которое устанавливается видимым при запуске анимации и скрывается при ее завершении.
Я пробовал некоторые способы взлома, такие как увеличение продолжительности анимации, когда следующая страница никогда не отображалась ранее, но это не совсем универсально, поскольку требуемая длительность для плавного перехода изменяется в зависимости от требований рендеринга.
Нет ли способа, как в других языках программирования, заставить процесс макета / рендеринга следующей страницы, пока она еще не видна?
Спасибо