(código en el primer frame)
Código :
//declaramos botones y mcs.
var principal_mc:MovieClip=this.createEmptyMovieClip("principal_mc",5);
var altura:Number;
var institut_btn:Button;
trace(institut_btn.getDepth());//-16355
var departaments_btn:Button;
var organitzacio_btn:Button;
var subseccion_mc:MovieClip=this.createEmptyMovieClip("subseccion_mc",1);
var boton_btn:Button=subseccion_mc.boton_btn;
var estudis_btn:Button;
var activitats_btn:Button;
var administracio_btn:Button;
var fct_btn:Button;
var revista_btn:Button;
var alturaBotongrande:Number;
var alturaBotongrande = institut_btn._height;
//creamos la funcion restablecer xa q los botones vayan a su origen. Esta funcion se invoca cada vez q pulsemos un boton, lo primero de todo.
function restablecer(){
institut_btn._x=0;
institut_btn._y=0;
departaments_btn._x=0;
departaments_btn._y=34.4;
organitzacio_btn._x=0;
organitzacio_btn._y=69.0;
estudis_btn._x=0;
estudis_btn._y=102.0;
activitats_btn._x=0;
activitats_btn._y=136.0;
administracio_btn._x=0;
administracio_btn._y=170.0;
fct_btn._x=0;
fct_btn._y=205.0;
revista_btn._x=0;
revista_btn._y=240.0;
}
La programación que os adjunto ahora es la que esta dentro de uno de los botones. Para el resto de botones se repite casi igual.
Código :
on (release) {
restablecer();//xa q los botones vuelvan a su posición inicial
removeMovieClip(_root.subseccion_mc);
trace("removeMovieClip");
var myMenu:XML = new XML();//creo la variable xml
myMenu.ignoreWhite = true;//le digo q ignore los espacios
myMenu.load("institut.xml");//cargo el xml
myMenu.onLoad = function() {
//esta variable (altura)sirve xa el tween. xa saber cuánto han de bajar los botones de las secciones.
altura = this.firstChild.childNodes[0].childNodes.length*17+alturaBotongrande+5;
//le digo q ejecute la funcion q más abajo se especifica. cn la variable altura
transicion(altura);
for (var i = 0; i<this.firstChild.childNodes[0].childNodes.length; i++) {
//aki q atache las subbsecciones según el num d childs. (childNodes.length)
//_root sirve xa decir q en la raíz o sea en la parte principal de nuestra película, agregamos una copia del MC subseccion
btn = _root.attachMovie("subseccion_mc", "subseccion_mc"+i,_root.getDepth());//si pongo i en lugar de _root.getDepth() m carga todas las subsecciones xo no las descarga. si pongo _root..solo carga una subseccion (la más arriba) y sí que las descarga.[b]AQUÍ ESTÁ EL PROBLEMA[/b]
//trace(altura);
//colocamos las subsecciones en sus coordenadas.
btn._x = 0;
//y=la altura dl bnt grande(el d secciones) + la suma de las alturas de las subsecciones q cargamos dsd el xml.
btn._y = alturaBotongrande+(btn._height*i);
//q escriba dntro dl textfield lo q ponga en cada child dl nodo 0
btn.label1_txt.text = myMenu.firstChild.childNodes[0].childNodes[i].firstChild.nodeValue;
//aki indicamos q al pulsar al boton q ay dentro del movieclip "subsecciones_mc" ahora llamado btn, vaya al link especificado en su child.
btn.boton_btn.link = this.firstChild.childNodes[1].childNodes[i].firstChild.nodeValue;
//lo mismo aki, si no ponemos .boton_btn no se verá el boton activo, no funcionará el "sobre".
btn.boton_btn.onRelease = function() {//he cambiado la ruta, añadiendo boton_btn dsp d btn. ahora sí q se ve el boton activo on over, xo no va el link.
getURL(this.link);
};
}
//aki hacemos la funcion xa q haga el tween. En nuestro caso le hemos hecho el tween a cada boton x separado. Me hubiera gustado x movieclips completos o haciendo una funcion más copacta. Más adelante lo optimizaremos.
function transicion(altura:Number) {
import mx.transitions.Tween;
import mx.transitions.easing.*;
//var miTween:Tween = new Tween(obj, prop, func, begin, finish, duration, useSeconds)
var miTween:Tween = new new Tween(departaments_btn, "_y", Regular.easeOut, departaments_btn._y, altura+2, 0.5, true)();
var miTween:Tween = new new Tween(organitzacio_btn, "_y", Regular.easeOut, organitzacio_btn._y, altura+2+alturaBotongrande, 0.5, true)();
var miTween:Tween = new new Tween(estudis_btn, "_y", Regular.easeOut, estudis_btn._y, altura+2+alturaBotongrande*2, 0.5, true)();
var miTween:Tween = new new Tween(activitats_btn, "_y", Regular.easeOut, activitats_btn._y, altura+2+alturaBotongrande*3, 0.5, true)();
var miTween:Tween = new new Tween(administracio_btn, "_y", Regular.easeOut, administracio_btn._y, altura+2+alturaBotongrande*4, 0.5, true)();
var miTween:Tween = new new Tween(fct_btn, "_y", Regular.easeOut,fct_btn._y, altura+3+alturaBotongrande*5, 0.5, true)();
var miTween:Tween = new new Tween(revista_btn, "_y", Regular.easeOut, revista_btn._y, altura+4+alturaBotongrande*6, 0.5, true)();
//revista_btn._visible=false;
}
};
}
Espero comprendais la duda. Muchas gracias.
