I've used this technique successfully -- start a timer when you call the loader (You may need to adjust the timing depending on the weight of the assets you're bringing in) If the timer fires before your load finishes, show the progress animation...
// -------------------------------------------------------------------
var queue : LoaderMax;
var loader : ImageLoader;
var t : Timer;
queue = new LoaderMax({name:"loader"});
loader = new ImageLoader("http://someimage.jpg", {onProgress: onLoadProgress, onComplete: onLoadComplete } );
queue.append(loader);
t = new Timer(500, 1);
addEventListener(TimerEvent.TIMER, onTimer);
load();
function load():void
{
// start the load process and the timer
queue.load();
t.start();
}
function onTimer(e:TimerEvent):void
{
// load hasn't finished yet, and the timer has gone off
// build your progress animation into a sprite or movie clip that starts out hidden
// and show it if the timer goes off
TweenMax.to(progressAnimation, .5, { autoAlpha: 1 } );
}
function onLoadProgress(e:LoaderEvent):void
{
// do something based on the load progress
progressAnimation.scaleX = ImageLoader(e.target).bytesLoaded / ImageLoader(e.target).bytesTotal;
}
function onLoadComplete(e:LoaderEvent):void
{
// load is done, stop the timer
t.stop();
}