At this point, we have two choices. First, we can add the loader to the LoadSystem’s main timeline:

addChild(loader);

This statement adds the loader as a display object child to the SWF file’s main Timeline. The loader is at depth 0 in the display of the main Timeline (i.e., movieClip) object. We know that by from these two trace statements:

trace("the 'loader' object descends/is contained in this specific DisplayObjectContainer:"+loader.root);
trace("depth of 'loader' object = "+getChildIndex(loader));

they return:

The 'loader' object descends/is contained in this specific DisplayObjectContainer:[object MainTimeline].
depth of 'loader' object = 0.

Second, we can add the loader to the Stage so it’s at dept 0 in Stage’s child list:

stage.addChild(loader);

If we use these trace statements:

trace("The 'loader' object descends/is contained in this specific DisplayObjectContainer:"+loader.root);
trace("Object at index 1 is: "+stage.getChildAt(1));
trace("Depth of 'loader' object = "+stage.getChildIndex(loader));

they return:

The 'loader' object descends/is contained in this specific DisplayObjectContainer:[object Stage].
Object at index 1 is: [object Loader].
Depth of 'loader' object = 1

So which should we use? Colin Moock in Chapter 20 of Essential ActionScript 3.0 suggests adding it to the Stage.  To be honest, I’m not sure what the advantages or disadvantages are, and this “brief” tutorial is becoming rather long, so since he’s Colin Moock, I’ll just play it smart and follow his example.