Ho tre pulsanti, premendo ciascuno dei tre devo caricare un testo diverso da file esterni.
La prima volta che entro nel movieclip che contiene i tre pulsanti "forzo" la funzione legata ad uno dei tre in modo che mi carichi comunque il primo testo.
Ecco cosa ho scritto:
function sceltaStoria (event:MouseEvent):void
{
var pathFile:String = "comitato-storia.txt"
try {
loader.load(requestUrl);
} catch (error:Error) {
trace("function sceltaStoria - File Not Found!!!");
trace(requestUrl);
}
};
function sceltaComitato (event:MouseEvent):void
{
var pathFile:String = "comitato-comitato.txt"
try {
loader.load(requestUrl);
} catch (error:Error) {
trace(requestUrl);
trace("function sceltaComitato - File Not Found!!!");
}
};
function sceltaAttività (event:MouseEvent):void
{
var pathFile:String = "comitato-attività.txt"
try {
trace ("sto per fare il loader");
trace (requestUrl);
loader.load(requestUrl);
} catch (error:Error) {
trace(requestUrl);
trace("function sceltaAttività - File Not Found!!!");
}
};
pulComComitato.addEventListener(MouseEvent.CLICK, sceltaComitato);
pulComAttività.addEventListener(MouseEvent.CLICK, sceltaAttività);
pulComStoria.addEventListener(MouseEvent.CLICK, sceltaStoria);
var pathFile:String = "comitato-storia.txt";
var loader:URLLoader = new URLLoader();
var requestUrl:URLRequest = new URLRequest(pathFile);
loader.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(event:Event):void {
trace ("sono in completeHandler");
var loader:URLLoader = URLLoader(event.target);
var dateTxt:String = loader.data;
txtComitato.htmlText = dateTxt;
trace (dateTxt);
}
sceltaStoria(null);
stop();
Il primo caricamento va bene, il testo viene caricato dall'esterno e visualizzato correttamente.
Se poi però faccio click su un altro pulsante il testo non cambia.
Il problema è che da "dentro" le funzioni imposto la variabile "path" correttamente ma quando scatta la funzione completeHandler (chiamata dal listener) che è definita esternamente, va a prendere il valore della variabile "path" vecchio perchè è fuori dalla funzione.
Come risolvere?
Grazie mille