Hvorfor er funktionerne 'out of scope'
Hej Flash-haj.Prøv lige at se nedenstående kodeudsnit (jeg bruger Adobe remoting-komponenten og AMFPHP ver. 1.2) - koden virker som den skal:
if (fejl == false) {
var _service:Service = new Service(gatewayUrl, null, 'Logind', null, null);
var pc:PendingCall = _service.say(this.brugernavn, this.kodeord);
pc.responder = new RelayResponder(this, "handleResult", "handleError");
}
function handleResult(re:ResultEvent) {
trace("Denne BLIVER kaldt: "+re.result);
}
function handleError(fe:FaultEvent) {
trace('Fejl!');
}
Prøv så at se DENNE kode:
if (fejl == false) {
var _service:Service = new Service(gatewayUrl, null, 'Logind', null, null);
var pc:PendingCall = _service.say(this.brugernavn, this.kodeord);
pc.responder = new RelayResponder(this, "handleResult", "handleError");
function handleResult(re:ResultEvent) {
trace("Denne bliver ikke kaldt - hvorfor ikke?!?!?: "+re.result);
}
function handleError(fe:FaultEvent) {
trace('Fejl');
}
}
Jeg fandt ud af, at modtagefunktionerne skulle sættes udenfor if-sætningen - men jeg kunne godt tænke mig at vide, HVORFOR den nederste ikke fungerer... for en alm. if-sætning burde da ikke sætte funktionerne ude af scope, vel?!?