Постараюсь написать подробнее.
Есть игра в которой два уровня. Первый уровень в 1 кадре основной сцены, второй уровень во 2 кадре. Когда персонаж доходит до выхода на первом уровне, он переходит на второй кадр (gotoAndStop(2)) - второй уровень.
В первом уровне все отлично, но как только переходи во второй уровень то в событии Event.ENTER_FRAME у какого либо класса участвующего в игре параметр (root as MovieClip) почему-то равено null
через раз!
То есть грубо говоря если сделать trace(root as MovieClip) то во втором уровне в консоле видно:
[Object Engine]
null
[Object Engine]
null
[Object Engine]
null
Из-за этого валится куча ошибок во всех строках где участвует обращение к чему-либо через (root as MovieClip) во втором уровне.
Пришлось в 10 местах кода вставлять подобное:

Код AS3:
if ((root as MovieClip) != null)
{
if (this.hitTestObject((root as MovieClip).exit)) {
(root as MovieClip).ChangeLevel(2);
}
}
Т.е. как видно по этому коду даже при проверке банального столкновения игрока (в классе игрока) с символом выхода с уровня (root as MovieClip) виден через раз и не получается сослаться на мувиклип выхода без ошибок.
Понятно что это не выход. Хочется понять почему "пляшет" root?
Язык AS3, все по классам.
Помогите пожалуйста, всю голову сломал уже.