Для начала, замерьте, какие участки загрузки - самые толстые. Измерить можно с помощью
getTimer():

Код AS3:
var time:Number = getTimer();
// Big loading resources 1
trace('Loading 1, duration:', getTimer() - time);
time = getTimer();
// Big loading resources 2
trace('Loading 2, duration:', getTimer() - time);
time = getTimer();
// ...
Таким образом, узнаете, какие участки необходимо разбить. Как именно разбить загрузку ваших ресурсов - виднее только вам. Но в любом случае, вам понадобиться подписаться на
timer, или
enterFrame.
Один из вариантов, это последовательный вызов функций, достаточно ламерский способ:

Код AS3:
// Start loading
loadingPart1();
function loadingPart1():void{
// ...
setTimeout(loadingPart2, 1000)
}
function loadingPart2():void{
// ...
setTimeout(loadingPart3, 1000)
}
function loadingPart3():void{
// ...
setTimeout(startGame, 1000)
}
function startGame():void{
// Start Game!
}
Хорошим способом, будет подписать порций загрузки к enterFrame или лучше к таймеру. Определённым образом спроектировать игру. Это довольно сложно.