Есть ли конкретная причина, по которой вы устанавливаете для параметра useWeakReference значение true? В противном случае вы можете просто позвонить:
timer.addEventListener(TimerEvent.TIMER_COMPLETE, openWindow2);
Однако в этой строке кода есть ошибка. Событие TIMER_COMPLETE наступает, когда таймер завершает все свои циклы. Вы установили таймер на «огонь» бесконечно. Так что он никогда не завершит свои циклы.
Вам нужно изменить эту строку кода следующим образом, и вы должны получить ожидаемые результаты:
timer.addEventListener(TimerEvent.TIMER, openWindow2);
<ч />
Чтобы ответить на ваш второй вопрос (почему window1 не появляется за приложением). Судя по возвращаемому значению функции orderInBackOf:
Boolean — true if the window was succesfully sent behind;
false if the window is invisible or minimized.
Кажется, что упорядочение не выполняется, если окно невидимо. Может случиться так, что, имея код в обработчике creationComplete, вы вызываете эту функцию до того, как окно приложения сможет отобразить себя. Попробуйте переместить этот код в вашу функцию openWindow2. Yeilding:
private function openWindow2(event:TimerEvent):void
{
window1.orderInBackOf(this);
window2.open(false);
window2.orderInBackOf(window1);
}
Надеюсь, это как-то поможет,
РЕДАКТИРОВАТЬ: за мой последний комментарий попробуйте это,
private function openWindow2(event:TimerEvent):void
{
window1.depth = 5; //arbitrary number
window2.depth = 4;
window1.open(false); //assumes window1 isn't opened before
window2.open(false);
}