Sim vi o arquivo, está indo no caminho certo.
O código não está errado, só a lógica aplicada que sim.
Cada objeto vai ter posição X e Y diferente. Certo?
Os valores de posição X e Y de alguns objetos que você passou no arquivo, estão praticamente com valores iguais!
Por isso, os objetos que tem valores iguais, ficarão sempre sobreposto uns aos outros.
O exemplo que passei antes, foi apenas exemplo. No caso eu quis posicionar aqueles objetos baseando no exemplo do site que você passou antes.
Não é uma regra essa posição dos objetos que passei. O truque é achar um valor que mude sempre, no caso um valor que muda sempre são os valores do stage(seu swf).
Pois esse valores sempre irão mudar quando o swf sofre alteração de tamanho.
Sabendo disso, faço uma conta simples de somar/subtrair/dividir esse valor do stage(que mudam sempre) com valores fixos. Assim tenho resultado com posição diferente pra cada objeto.
Basta dar valores diferente pra cada diferente objeto.
Por exemplo, atualizei o seu código do seu arquivo que você passou.
Repare que nenhum momento os valores dos objetos podem ser iguais. Se não, eles vão sempre sobrepor uns aos outros.
CÓDIGO
Stage.align = "tl"; //alinha no topo esquerdo pra layout liquido
Stage.scaleMode = "noScale"; //nao sofrera escala no coteudo
//cadastra evento pra saber quando altera tamanho do swf(stage)
Stage.addListener(this);
this.onResize = onUpdateResolution;
//executa função e atualiza no começo posição dos objetos
onUpdateResolution();
//funcao de evento, dispara quando stage sofrera mudança no tamanho
function onUpdateResolution():Void
{
//aqui você alinha todos os objetos que tem nome
//de instancia pra adequar de acordo com tamanho do stage
//pra manter proporção de escala de um objeto use essa formula
imgBgMc._height = Stage.height;//imagem segue altura do stage
imgBgMc._xscale = imgBgMc._yscale; //mantem proporção na escala
//alinha posicao
imgBgMc._x = Stage.width-imgBgMc._width;
imgBgMc._y = Stage.height-imgBgMc._height;
//menu no canto superior esquerdo valores fixos
menuMc._x = 0;
menuMc._y = 0;
//texto sempre centralizado,
//pego valor do stage(que sera dinamico)
//e aplico uma conta pra centralizar no eixo x e y
textos._x = (Stage.width/2)-(textos._width/2);
textos._y = (Stage.height/2)-(textos._height/2);
//fica no canto superior direito com espaço de +30 pixels nas bordas
logo._x = Stage.width - (logo._width+30);
logo._y = 30;
//fica no rodapé sempre centralizado
bottomMc._x = (Stage.width/2)-(bottomMc._width/2);
bottomMc._y = Stage.height-bottomMc._height;
}
Só fazer testes de valores diferentes e ver como fica, assim você entende como funciona e vai modelando posição de cada objeto.

Uma coisa importante entender antes como o stage trabalha e faz a referencia de tamanho e posição dele mesmo.
Sugiro conferir esse artigo:
http://mundodrigo.blogspot.com/2008/05/loc...oordenadas.htmlMas por padrão, o stage é centralizado na tela, ou seja o ponto de registro do eixo X e Y(que são de valor zero) também mudam de posição quando modifica o tamanho do swf.
Nesse caso, perde "referência fixa" e as contas de posição dos objetos também podem dar erradas caso queira fazer "layout liquido".
Por isso que devemos antes sempre alinhar o ponto de registro do stage pra ficar no canto "superior esquerdo (TopLeft)" usando o código
Stage.align = "TL"; pra AS2), e garantir que temos um ponto fixo de referencia, depois começar fazer contas de posição dinâmicas dos objetos sem problemas.
Abraço.