Ciao a tutti. Sono un neofita di Flash (uso la CS4) ed ActionScript (2.0).
Debbo realizzare un clip filmato (posizionato sulla Scena 1) che contenga un menu verticale stile accordion.
Sul Clip filmato (Scena 1) ho due pulsanti, sensibili al passaggio del mouse, che fanno scorrere il Menu contenuto nel medesimo Clip filmato rispettivamente in alto e in basso; il Clip filmato ha un nome istanza "MyCoolMap".
Per chiarire. Questo progetto contiene due tipologie di animazione verticale: quella tipica dell'accordion verticale (con i singoli item che si estendono e comprimono al passaggio del mouse; questa animazione appartiene al Menu) e un'altra che fa scorrere il Clip filmato (dentro il quale c'è il Menu) in alto e in basso (questa azione, quindi, è associata al Clip filmato).
Ho realizzato il Menu verticale, e funziona perfettamente; non funziona più nel momento in cui lo inserisco dentro il Clip filmato. Vi descrivo come è strutturato questo semplice Menu verticale. In esso ho tanti livelli quanti sono gli item, un livello che contiene i box "contratti", un livello che contiene il box nelle dimensioni "distese" e un livello che, in un singolo frame, contiene le azioni dell'accordion.
Ho realizzato, in un file diverso, un Clip filmato di prova (senza inserire il Menu suddetto) che, attraverso due pulsanti e relativi action script, scorre in alto e in basso al passaggio del mouse.... e funziona perfettamente.
Quando inserisco il Menu dentro il Clip filmato, i singoli item non si aprono al passaggio del mouse, ovvero non prende avvio l'animazione dell'accordion verticale (le cui azioni sono dentro un livello del Menu verticale).
Per aggirare il problema, ho provato anche un LoadMovie che carichi, dall'esterno, il Menu.swf dentro il clip filmato, ma non funziona.
Secondo me (consapevole della limitatezza delle mie intuizioni giacché conosco troppo poco Flash e ActionScript), il problema è causato dalla "_root" contenuta nelle azioni del Menu verticale. Perciò ho provato a sostituire "_root" con "this", senza alcun risultato.
Di seguito, inserisco le azioni dell'accordion contenute nel Menu, e che non funzionano più quando inserisco il Menu dentro il Clip filmato.
Aspetto i vostri consigli!!
stop();
speed = 20;
initial_height = 20;
target_height = 205;
sp = rect1._y;
this.createEmptyMovieClip("emptymc", 0);
emptymc.onEnterFrame = function() {
for (i=1; i<=10; i++) {
if (_root.hit.hitTest(_root._xmouse, _root._ymouse, true)) {
if (_root["rect"+i].hitTest(_root._xmouse, _root._ymouse, true)) {
new_y = (_root.sp-(20*(i-1)))-rect1._y;
rect1._y += new_y/speed;
n_height = target_height-_root["rect"+i]._height;
_root["rect"+i]._height += n_height/speed;
} else {
n_height2 = initial_height-_root["rect"+i]._height;
_root["rect"+i]._height += n_height2/speed;
}
} else {
new_y = _root.sp-rect1._y;
rect1._y += new_y/(speed+50);
n_height2 = initial_height-_root["rect"+i]._height;
_root["rect"+i]._height += n_height2/(speed-1);
}
_root["rect"+(i+1)]._y = _root["rect"+i]._y+_root["rect"+i]._height;
_root["movie"+i]._y = _root["rect"+i]._y-1;
}
};

Rispondi quotando