Avatar billede grinebidder Nybegynder
01. juli 2006 - 00:09 Der er 6 kommentarer og
1 løsning

Fejl i loop?

Jeg får den klassiske fejlbesked om, at Flash kører langsomt og vil vide om den skal afbryde scriptet eller ej. Den XML-fil, jeg indlæser, fylder mx 5 KB, så jeg tvivler på, at det er størrelsen af den, der er til besvær.

Sådan ser det ud, når jeg indlæser filen:


var ref:MovieClip = this;
var menu:XML = new XML();

function knapOver() {
    this.gotoAndStop(2);
    this.label_txt.textColor = 0x97BF0D;
}
function knapOut() {
    this.gotoAndStop(1);
    this.label_txt.textColor = 0x000000;
}
function knapRelease() {
    getURL(this.link);
}

menu.onLoad = function(success:Boolean) {
    if (success) {
        var base:Object = this.firstChild.childNodes;
        var knap:MovieClip;
        for (var i = 0; i<base.length; i++) {
            knap = ref.attachMovie("knap", "knap"+i, i);
            knap._y = 17*i;
            knap.label_txt.text = base[i].childNodes[0].firstChild.nodeValue;
            knap.link = base[i].childNodes[1].firstChild.nodeValue;
            knap.onRollOver = knapOver;
            knap.onRollOut = knapOut;
            knap.onRelease = knapRelease;
        }
        info_clip._visible = false;
        info_clip._height = base.length*17;
    } else {
        trace("Listen blev ikke indlæst");
    }
};
menu.ignoreWhite = true;
menu.load("xml/refListe2.php");


Menuen, som indlæses, ligger i et movieclip, så ligger i en række andre movieclips, så den ligger ikke i _root.

Nogen der kan se, hvad der er galt? Eller har et forslag til en løsning?
Avatar billede _k Nybegynder
01. juli 2006 - 11:50 #1
Hvordan ser din xml ud? Umiddelbart lyder det som om "base.length" i din for-løkke bliver noget andet end et tal og derfor aldrig bliver færdig.
Du kan evt. selv tjekke det ved at udkommentere for-løkken og trace "base.length" ud for at se hvad "tallet" bliver.

...hov, ser lige at "base" sættes til at være et objekt. Skal det ikke være XML? Prøv at lav det om til "var base:XML = ...."
Avatar billede grinebidder Nybegynder
02. juli 2006 - 14:13 #2
At ændre til var base:XML gør, at base.length ikke kan bruges. Ved at udkommentere for-løkken, bliver kun det første punkt fra xml-filen hentet ind.

XML-filen er bygget op sådan:

<?xml version="1.0" encoding="utf-8"?>
<menu>
    <knap>
        <navn>Knap 1</navn>
        <url>link</url>
    </knap>
    <knap>
        <navn>Knap 2</navn>
        <url>link</url>
    </knap>
    <knap>
        <navn>Knap 3</navn>
        <url>link</url>
    </knap>
</menu>
Avatar billede _k Nybegynder
02. juli 2006 - 18:30 #3
Nu har jeg kigget på scriptet, og selvom det er skruet lidt anderledes sammen end jeg ville, så virker det upåklageligt.

Jeg forstår ikke helt: "Menuen, som indlæses, ligger i et movieclip, så ligger i en række andre movieclips, så den ligger ikke i _root."
Men det tyder jo på at du får lavet nogle uhensigtsmæssige rekursive kald. SMider du scriptet i en frame på main timeline? Forklar gerne hvad du vil opnå og/eller smid gerne din fla op et sted - så giver jeg den gerne et kig.
Avatar billede grinebidder Nybegynder
03. juli 2006 - 10:11 #4
Jeg har smidt det op på et testsite, men det giver mig ingen problemer :/ Så noget kunne tyde på at problemet med hukommelsen opstår, fordi der skal indlæses 3 små Flash-film på samme side.

http://silkjaer.dk/flashtest/test.fla
Avatar billede grinebidder Nybegynder
04. juli 2006 - 12:50 #5
Jeg tror, jeg har fået løst problemet. Fejlen lå åbenbart i XML-filerne, men tak for hjælpen. Hvis du opretter et spørgsmål kan du lige få pointene.
Avatar billede _k Nybegynder
04. juli 2006 - 16:24 #6
Nice at du har fået fikset det. Snup bare pointene selv, jeg bidrog jo ikke med det helt store ;)
Avatar billede grinebidder Nybegynder
06. juli 2006 - 12:17 #7
Fair nok :)
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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