Codice PHP:
// creo una variabile che mi verrà riempita a secnda dell'area su cui passo, al rollover sull'area attiva
var rollArea = "";
// creo un array che mi contiene i quattro stati, che dovranno anche essere i nomi di istanza
// delle aree della cornice
var aree = new Array("alto", "basso", "destro", "sinistro");
// attivo un ciclo sui quattro pulsanti, per evitare di riscrivere mille volte lo stesso codice ad ogni pulsante
for(var i = 0; i<aree.length; i++) {
// disattivo la visualizzazione della manina sugli elementi della cornice
this[aree[i]].useHandCursor = false;
// assegno la variabile da cui dipendono i clip della cornice, per poterla richiamare con "this"
// da dentro alle azioni (onRollOver, onRollOut);
this[aree[i]].i = i;
// assegno l'azione di rollover ad ogni pulsante e gli dico che al rollover deve riempire la variabile
// "rollArea" con il proprio nome (quindi "alto" o "basso" ecc...)
this[aree[i]].onRollOver = function(){
rollArea = aree[this.i];
}
// al rollout verifico, su quale clip mi trovo utilizzando la condizione switch...case e in base
// a questo, faccio la relativa azione
this[aree[i]].onRollOut = function(){
switch(this._name){
case "alto":
// qui ci va il gotoAndPlay corrispondente all'azione da eseguire,
// se esco dall'alto
gotoAndPlay("BOH1");
rollArea = "";
break;
case "basso":
// se esco dal basso
gotoAndPlay("BOH2");
rollArea = "";
break;
case "destro":
// se esco da destra
gotoAndPlay("BOH3");
rollArea = "";
break;
case "sinistro":
// se esco da sinistra
gotoAndPlay("BOH4");
rollArea = "";
break;
}
}
}
// assegno al pulsante "area attiva" il rollover
// la cui gestione è identica a quella del rollout visto in alto
// ma con la differenza di verificare la variabile "rollArea"
// e a seconda di questa, attivare la relativa animazione
activeArea.onRollOver = function(){
switch(rollArea){
case "alto":
// se entro dall'alto
gotoAndPlay("BOH1");
rollArea = "";
break;
case "basso":
// se entro dal basso
gotoAndPlay("BOH2");
rollArea = "";
break;
case "destro":
// se entro da destra
gotoAndPlay("BOH3");
rollArea = "";
break;
case "sinistro":
// se entro da sinistra
gotoAndPlay("BOH4");
rollArea = "";
break;
}
}