Mooncar, огромное спасибо за возню со мной. Просить сделать все за меня не собираюсь, потому как это ущербная практика и я сам в таком случае так ничему и не научусь. Смотреть на мои исходники вам вряд-ли захочется, потому что на сегодняшний день fla-файл весит 38 метров (подлинкованные музыка/звуки/графика/партиклы и все такое) и состоит из сотен страниц кода, в котором разбираться - врагу не пожелаешь.
Managemenu есть свой (что вполне очевидно, пауза-то реализована давно), а само состояние паузы представлено единственной глобально переменной isPaused : Boolean;
Все слушатели мыши/клавиатуры, все обсчеты движения/столкновений/таймеров/счетчиков и вообще всего, чего только можно зависят от значения этой переменной. То есть, когда я в процессе игры тыкаю на ESC, isPaused принимает значение true и все останавливается, а меню "Выйти? ДА/НЕТ" становится видимым и активным (оно все это время лежало прямо посреди игрового экрана, но пока isPaused == false оно прозрачно, а кнопки !visible и !enabled)
Цитата:
|
Сообщение от mooncar
Вообще никогда не пишите код на мувиках.
|
Хм. Учился работать с AS по учебникам типа "Macromedia Flash MX. Создание игр с помощью ActionScript". Оттуда собственно и идея создавать за пределами сцены мувиклип с логикой.
Цитата:
|
Сообщение от mooncar
Мувик null_mc должен находится во всех кадрах уровней
|
Уровней много, а кадр - один. Генерация/уничтожение объектов окружения/врагов/фона/бонусов и всего такого идет динамически, основываясь на индексе текущего уровня
Цитата:
|
Сообщение от mooncar
Попробуйте допилить. Запишите все функции в первом кадре, а действия в кадре текущего уровня.
|
Дело в том, что в кадре текущего уровня есть такая штука как stop(), ибо после него есть еще несколько вспомогательных кадров (анимация завершения уровня, анимация начала уровня, анимация смены левелпака, анимация геймовера). Выходит (если я все правильно понимаю), эти самые действия

Код AS1/AS2:
null_mc.onKillFocus = pauseFunc; // при потере фокуса приостанавливают игру
startShowCount(); //установка функции EnterFrame для _level0
не станут выполняться постоянно, а отработают только один раз, пока головка не наткнется на stop(). Значит надо их сунуть в какой-то onEnterFrame видимо, только в какой...
P.S.: Игра уже на 100% готова (за исключением обсуждаемой фичи), поэтому любые изменения структуры кода отметаются сразу, ибо нету времени потом все эти изменения тестировать на предмет каких-нибудь случайных косяков (не говоря уже о том, что возможно придется половину игры переписать, только для того, чтобы в этом злополучном кадре stop() не стоял)