![]() |
Проблема - при 2 кадрах в сцене root периодически равен null
Постараюсь написать подробнее.
Есть игра в которой два уровня. Первый уровень в 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:
Понятно что это не выход. Хочется понять почему "пляшет" root? Язык AS3, все по классам. Помогите пожалуйста, всю голову сломал уже. |
В то время, как проигрывается первый кадр, второй не находится в дисплей листе и наоборот.
|
А при чем здесь пропадение ссылки на root? ведь root есть в обоих кадрах, причем как я понимаю в каждом кадре он свой (в первом кадре на нем свои элементы расставлены, а во втором - свои).
Как решить проблему? |
Откуда root возьмется, когда дисплей объект не добавлен в дисплей лист?
|
Но ведь у меня в обоих кадрах stop. Ведь раз я вижу уровень и все прорисовано и все работает, то root уже создался?)
Подскажите как мне выйти из этой ситуации! Добавлено через 2 минуты Вообще код написанный у меня в классе ОСНОВНОГО документа, в конструкторе, выполняется каждый кадр заново или только один раз при запуске swf? Как мне решить проблему? Если вместо кадров я буду подгружать мувики содержащие уровни - такой проблемы не будет? |
Возможно, у Вас существует два экземпляра того, у чего Вы проверяете root. Также возможно, что при переходе на второй кадр Вы забыли отписать первый экземпляр от Event.ENTER_FRAME. Т.е. когда нечто не находится в DisplayList, то и parent у него будет null.
Цитата:
|
| Часовой пояс GMT +4, время: 10:00. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.