Нужен совет.
Есть проект на нативном флеше, в котором логика работы базируется на:
1. событиях, связанных с анимацией (ENTER_FRAME, COMPLETE)
2. событиях, связанных с проигрыванием звуковых файлов (COMPLETE)
3. отложенных вызовах функций (setTimeout или завершение выполнения других функций)
4. вызовах функций по таймеру
Так сложилось исторически, плюс по геймплею действительно необходимо, чтобы в случаях 1-2 это было именно так (например, анимация в некоторых случаях для слабых машин удлиняется по времени, чтобы обеспечить "гладкость", пусть и в замедленном варианте).
После портирования в мобильный вариант на Starling'е естественным образом столкнулся с ситуацией, что при сворачивании приложения на девайсе анимация останавливается:

Код AS3:
NativeApplication.nativeApplication.addEventListener( Event.DEACTIVATE, function ( e : * ) : void
{
if ( Starling.current ) Starling.current.stop( true );
} );
но все остальное живет своей жизнью.
Сейчас в размышлении. Либо дорабатывать каждый из сервисов звука и времени отдельно (в т.ч., делать свой setTimeout с возможностью заморозки), либо организовать единый FreezeService и регистрировать в нем звуки, таймеры, отложенные вызовы, а затем все фризить и восстанавливать централизованно.
Интересует, кто и как решает задачу заморозки.
ЗЫ. Посмотрел аналогичные приложения для Android'а, мнгие пошли по пути упрощения (например, отказались от фоновой музыки), но это не мой путь точно.