Столкнулся сегдня с такой проблемой, есть метод

Код AS3:
private function onEnterFrame(e:EnterFrameEvent):void {
if (stage == null) return;
if (_centerText) {
_centerText.x -= _scrollSpeed;
if (_centerText.x + _centerText.width < -100) {
_centerText.x = stage.stageWidth + 100;
_scrolledTimes++;
if (_scrolledTimes >= _maxScrolls) {
removeFromParent();
dispatchEvent(new Event(Event.COMPLETE));
_scrolledTimes = 0;
}
}
}
if (_topText) {
if (_topText.width > stage.stageWidth) { // вот в этом месте после удаления с экрана родительского объекта, выдает null reference error и stage == null
if (_topText.x + _topText.width < stage.stageWidth || _topText.x > 0) {
_topMultiplier *= -1;
}
_topText.x -= (5 * _topMultiplier);
}
}
}
В комменте помечено проблемное место.
Вопрос, как это вообще возможно? Оо
Ведь в начале метода стоит проверка if (stage == null) return;
Это не нативный объект stage, а 100% из старлинга. Как может stage занулиться еще до полного выполнения метода? Видимо тут какой-то энтерфрейм не феншуйный)
Добавлено через 3 минуты
Понял сам в чем проблема)
вызов removeFromParent() в середине и нет return после этого
туплю)