Hola a todos y en especial a raider33.
Debo entender que tu problema es, que quieres que los botones del menú se mantrengan en el escenario cuando los movieclip se intercambien?.
El problema se soluciona creando los botones en una capa distinta y superior a la que utilizas para los movieClip.
Para trer los MovieClip al escenario crearia una función la que llamaría en cada botón:
Código ActionScript :
function traer (mc, posX, posY, vel) {
mc.onEnterFrame = function () {
mc._x += (posX - mc._x) / vel;
mc._y += (posY - mc._y) / vel;
if (mc._x == posX && mc._y == posY) {
delete mc.onEnterFrame;
}
};
}
//
Asimismo otra función para devolverlos a su posición inicial al llamar al siguiente movieclip:
Código ActionScript :
function volver (a) {
if (a == movi1_mc) {
traer (a,x1,y1,5);
} else if (a == movi2_mc) {
traer (a,x2,y2,5);
} else if (a == movi3_mc) {
traer (a,x3,y3,5);
} else if (a == movi4_mc) {
traer (a,x4,y4,5);
}
}
Previamente es necesario haber establecido la posición original de los movieClip:
Código ActionScript :
var x1:Number = movi1_mc._x;
var y1:Number = movi1_mc._y;
var x2:Number = movi2_mc._x;
var y2:Number = movi2_mc._y;
var x3:Number = movi3_mc._x;
var y3:Number = movi3_mc._y;
var x4:Number = movi4_mc._x;
var y4:Number = movi4_mc._x;
Declaramos la variable que recoge el movieClip que está en el escenario actualmente:
Código ActionScript :
var a:MovieClip;
Y finalmente definimos el comportamiento a los botones:
Código ActionScript :
btn1_mc.onRelease = function () {
volver (a);
traer (movi1_mc,0,0,5);
a = movi1_mc;
};
//
btn2_mc.onRelease = function () {
volver (a);
traer (movi2_mc,0,0,5);
a = movi2_mc;
};
//
btn3_mc.onRelease = function () {
volver (a);
traer (movi3_mc,0,0,5);
a = movi3_mc;
};
//
btn4_mc.onRelease = function () {
volver (a);
traer (movi4_mc,0,0,5);
a = movi4_mc;
};
El código completo para cuatro movieClip y consecuentemente cuatro botones, quedaría así:
Código ActionScript :
function traer (mc, posX, posY, vel) {
mc.onEnterFrame = function () {
mc._x += (posX - mc._x) / vel;
mc._y += (posY - mc._y) / vel;
if (mc._x == posX && mc._y == posY) {
delete mc.onEnterFrame;
}
};
}
//
function volver (a) {
if (a == movi1_mc) {
traer (a,x1,y1,5);
} else if (a == movi2_mc) {
traer (a,x2,y2,5);
} else if (a == movi3_mc) {
traer (a,x3,y3,5);
} else if (a == movi4_mc) {
traer (a,x4,y4,5);
}
}
//
var a:MovieClip;
//
//Posicion incial de los movieClip
var x1:Number = movi1_mc._x;
var y1:Number = movi1_mc._y;
var x2:Number = movi2_mc._x;
var y2:Number = movi2_mc._y;
var x3:Number = movi3_mc._x;
var y3:Number = movi3_mc._y;
var x4:Number = movi4_mc._x;
var y4:Number = movi4_mc._x;
//
btn1_mc.onRelease = function () {
volver (a);
traer (movi1_mc,0,0,5);
a = movi1_mc;
};
//
btn2_mc.onRelease = function () {
volver (a);
traer (movi2_mc,0,0,5);
a = movi2_mc;
};
//
btn3_mc.onRelease = function () {
volver (a);
traer (movi3_mc,0,0,5);
a = movi3_mc;
};
//
btn4_mc.onRelease = function () {
volver (a);
traer (movi4_mc,0,0,5);
a = movi4_mc;
};
Esto todo en el primer fotograma de la linea de tiempo principal.
Esta es mi versión de lo que yo entiendo que es tu problema, si no he acertado de pleno, espero que al menos algo de lo que expongo te pueda servir.
Saludos.