Avatar billede larsen1 Nybegynder
31. marts 2008 - 16:09 Der er 7 kommentarer

Funktionskald i ekstern .as fil

Jeg er ved at skrive en ekstern .as fil til at loade billeder via en xml fil. Jeg kan dog ikke lige se hvad jeg gør galt her - Det er lige som om der er noget jeg ikke har forstået. Her er min kode - kogt ned til problemet.

private function init():Void {
    loadxml();
}

private function loadxml():Void {
    trace("loadxml");
    var xmlFile:XML = new XML();
    xmlFile.ignoreWhite = true;
    xmlFile.load(_nXMLpath);
    xmlFile.onLoad = function(success) {
        if (success){                            trace("xml loaded");
            trace(this.firstChild.attributes.imgPath);
            loadPicture();
        } else {
            trace("failed loading xml");
        }                   
    } 
}

private function loadPicture():Void {
    trace("loadPicture");
}   

Den tracer alting fint, undtagen den sidste funktion "loadpicture". Hvis jeg kalder funktionen loadPicture fra min "init" funktion i stedet for inde i "onload" funktionen funker det fint. Men jeg vil jo gerne vente med at loade mit billede ind, indtil jeg ved hvad det er for et billede. Hvad er det lige jeg gør galt?
Avatar billede andersbro Nybegynder
31. marts 2008 - 16:16 #1
Det er dit scope, den er gal med. Dit loadPicture-kald ligger inde i xmlFile's scope. Dvs. at du kalder en ikke-eksisterende loadPicture-funktion på xmlFile-objektet.

Det burde virke med _root.loadPicture() eller _parent.loadPicture().
Avatar billede larsen1 Nybegynder
31. marts 2008 - 16:22 #2
Ja jeg tænkte også at det var noget i den stil, men hverken _root.loadPicture() eller _parent.loadPicture() virker.

Jeg har også prøvet at kalde funktion public i stedet for private, men det gjorde intet.
Avatar billede larsen1 Nybegynder
31. marts 2008 - 16:57 #3
Det skal lige siges at det hele ligger inde i :

class com.raketfart.Slideshow extends MovieClip {
}

Jeg ved ikke om det gør nogen forskel...
Avatar billede larsen1 Nybegynder
31. marts 2008 - 17:08 #4
hmmm... nu har jeg eksperimenteret lidt - parent til xmlFile er "undefined" - og _root er for langt ude.

Det virker hvis jeg navngiver mit instance i fla filen, og skriver _root.mitMC.loadPicture, men det er ikke synderligt dynamisk.
Avatar billede andersbro Nybegynder
31. marts 2008 - 17:42 #5
Du kan prøve at definere xmlFile udenfor funktionen eller at sætte en eventlistener på xmlFile, som så kalder loadPicture.
Bare et gæt...
Avatar billede larsen1 Nybegynder
02. april 2008 - 08:52 #6
Hmmm... jeg fik det til at virke ved at definere mit movieclip uden for loadxml funktionen, og så kalde den med _root[movieclipnavn]

Læg et svar, så smider jeg nogle point som tak for hjælpen.
Avatar billede andersbro Nybegynder
16. april 2008 - 22:19 #7
Nå, har været på ferie. Jeg behøver ingen point, bare du fandt ud af det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester