Ciao a tutti,
vi segnalo questo problema che ho con questo menu fatto con flash mx.
Sullo stage ho 4 pulsanti : home, who we are (chi siamo), products, contacts.
Poi ho inserito un MC contenente una animazione che riproduce l’effetto porta scorrevole che visualizza le varie sezioni di un sito. A questo MC ho dato il nome istanza doors.
Ho creato l’animazione di apertura e chiusura (precisamente dal fotogramma 1-10 c’è l’apertura, dal frame 11-20 c’è la chiusura e poi dal frame 21-30 c’è una nuova apertura. Sui frame 1-10 e 30 ho inserito uno stop)
Il filmato deve fare questo:
Quando clicco su home, si deve aprire in senso orizzontale doors (proprio come le porte scorrevoli di un autobus) e deve visualizzare la sezione home. Se io riclicco su home, il MC doors si chiude e si apre automaticamente e mi deve continuare a visualizzare home.
Poi, clicco su un altro pulsante per esempio who we are che deve chiudere la sezione aperta precedentemente (se è aperta come in questo caso) e automaticamente aprire la sezione who we are.
Così devono fare tutti gli altri pulsanti. Fin qua tutto bene.
L’inghippo sta quando le sezioni devono cambiare. Faccio un esempio.
All’inizio il MC doors è chiuso (OK?) e ho fatto in modo che inizialmente le sezioni siano invisibili. A questo punto, voglio aprire home.
Allora, la sezione home deve essere già dietro le porte quando clicco sul pulsante home e prima che si attivi l’animazione delle porte.
Il problema è questo: ho notato che quando apro una sezione ad es. home e poi vado su who we are si nota lo scambio di sezione che ovviamente non si deve vedere.
Come posso fare in modo che non si noti lo scambio di sezioni?
Adesso, vi riporto il codice con i commenti.
1) Sulla root:
status=false; //lo status è il momento in cui le porte all’inizio sono chiuse.
//funzione di apertura.
function open_win(){
tellTarget ("_root.doors") {
gotoandplay(2);
}
}
//funzione di chiusura e apertura automatica.
Dal frame 11 al 20 apertura e dal 21 al 30 chiusura.
function close_win(){
tellTarget ("_root.doors") {
gotoandplay(11);
}
}
2) Sui pulsanti: //section 1 è il nome istanza della sezione home.
//section 2 è il nome istanza della sezione who we are.
//section 3 è il nome istanza della sezione products.
//section 4 è il nome istanza della sezione contacts.
Il codice cambia qui, al posto di section1 si mette section2, ecc:
_root.doors.section1._visible=true;
on (release) {
if(_root.status==false){
_root.doors.section1._visible=true; //il momento in cui home si rende visibile.
_root.open_win(); //apertura porte.
_root.status=true; // si aggiorna status perchè le porte sono aperte.
}else if(_root.status==true){ //controlla e legge il nuovo valore.
_root.close_win(); //adesso le porte si chiudono e si aprono
_root.doors.section1._visible=true; //viene resa visibile home.
_root.doors.section2._visible=false; //viene resa invisibile who we are.
_root.doors.section3._visible=false; //viene resa invisibile products.
_root.doors.section4._visible=false; //viene resa invisibile contacts.
}
}
3) le sezioni le ho inserite all’interno di doors e hanno questo codice per renderle invisibili all’inizio del clip:
Per la sezione home:
onClipEvent (load) {
_root.doors.section1._visible=false; //anche qui section1 cambia.
}
Per la sezione who we are:
onClipEvent (load) {
_root.doors.section2._visible=false;
}
Per la sezione products:
onClipEvent (load) {
_root.doors.section3._visible=false;
}
Per la sezione contacts:
onClipEvent (load) {
_root.doors.section4._visible=false;
}
Grazie in anticipo

Rispondi quotando
