Ciao foro!
Sto un po' impicciato su un menu.
Mi sarei scritto questa bella (?!) funZioncina qua:
Codice PHP:
function doButtonActions(mc, url) {
if (mc != page) {
mc.onRollOver = function() {
c = new Color(this);
c.setRGB(0x004481);
};
mc.onRollOut = function() {
c = new Color(this);
c.setRGB(0x79889C);
};
mc.onPress = function() {
getURL(url);
};
} else {
c = new Color(this);
mc.setRGB(0xFF0000);
}
}
sul primo frame della timeline che - nelle mie intenzioni - in italiano dovrebbe voler dire:
"SE il nome dell'istanza del movieclip è diverso dal valore della variabile "page" (che recupero dal parametro FlashVars), attiva il cambio di colore al mouseover e al mouseout come specificato e aggiungi l'URL.
SENNÒ non fare niente di tutto quello che ho detto fin qui e lìmitati a colorare il (testo del) mc in rosso".
Mo'... Il primo problema è che non so dove richiamare la funzione.
Su ogni singolo mc, o nella timeline sul frame dove ci sono tutti i mc "pronti"?
Poi, conseguenza del primo problema (e del fatto che non so una sega di AS), tanto per provare l'ho richiamata sui singoli mc, ma non funzia.
Allora ho scritto direttamente il codice centrale della funzione su ogni singolo mc, con un paio di varianti:
Codice PHP:
var mc = "nome_del_mc";
var url = mc+".php";
if (mc != page) {
mc.onRollOver = function() {
c = new Color(this);
c.setRGB(0x004481);
};
mc.onRollOut = function() {
c = new Color(this);
c.setRGB(0x79889C);
};
mc.onPress = function() {
getURL(url);
};
} else {
c = new Color(this);
mc.setRGB(0xFF0000);
}
Però mi dice che le inizializzazioni delle variabili e l'"if" le vuole dentro un "on/onClipEvent".
Allora, per farlo contento, ho messo tutto in un "onClipEvent(enterFrame)" ("enterFrame" mi pareva la cosa più logica, anche se ancora non so bene chevvordi').
Quindi ora sono messo così:
Codice PHP:
onClipEvent(enterFrame) {
var mc = "nome_del_mc";
var url = mc+".php";
if (mc != page) {
mc.onRollOver = function() {
c = new Color(this);
c.setRGB(0x004481);
};
mc.onRollOut = function() {
c = new Color(this);
c.setRGB(0x79889C);
};
mc.onPress = function() {
getURL(url);
};
} else {
c = new Color(this);
mc.setRGB(0xFF0000);
}
}
che - curiosamente - funzia anche, non fosse che sembra ignorare completamente l'if e l'else; quindi, a dispetto di quale pagina sia caricata, tutti i movieclip del menu si comportano allo stesso modo.
Ho pensato fosse un problema di flashVars, ma stampando la variabile "page" in un campo testo dinamico vedo che effettivamente il valore è giusto e viene correttamente inviato e recuperato dal filmaggio.
Al momento sto apportando modifche a casaccio al codice, quindi se qualcuno mi ferma e mi dà una qualche dritta magari finisco 'sto lavoro e mi dedico a cose marginali tipo, chessò, averci una vita sociale o mangiare qualcosa.
TIA
cià
ale