Показать сообщение отдельно
Старый 27.03.2010, 16:31
dedalx вне форума Посмотреть профиль Отправить личное сообщение для dedalx Найти все сообщения от dedalx
  № 1  
Ответить с цитированием
dedalx

Регистрация: Mar 2010
Сообщений: 25
По умолчанию Проблема - при 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:
			if ((root as MovieClip) != null) 
			{
				if (this.hitTestObject((root as MovieClip).exit)) {
 
					(root as MovieClip).ChangeLevel(2);
 
				}
			}
Т.е. как видно по этому коду даже при проверке банального столкновения игрока (в классе игрока) с символом выхода с уровня (root as MovieClip) виден через раз и не получается сослаться на мувиклип выхода без ошибок.

Понятно что это не выход. Хочется понять почему "пляшет" root?

Язык AS3, все по классам.

Помогите пожалуйста, всю голову сломал уже.