Avatar billede 4b4 Nybegynder
26. august 2004 - 13:17 Der er 20 kommentarer og
1 løsning

Tjekke om loaded

Jeg har en eksterne txt fil som jeg loader ind med: loadVariables("indhold.txt",_root);

.. text filen indeholder en masse skidt, og i bunden har jeg så indsat følgende: &hentet=ok

Denne variable 'hentet' vil jeg så bruge til at tjekke om textfilen er loaded ind.

I min main movie har jeg et loading movieclip med følgende kode på:

onClipEvent (enterFrame) {
    procentLoaded = parseInt(100*_root.getBytesLoaded()/_root.getBytesTotal());
    if(procentLoaded>=100){
        if(hentet == ok) {
            _root.play(); }
    }
}

Men det virker ikke.. jeg kan sætte ok til hvad som helst og den kører igennem alligevel ! .. Hvad er der galt?

Bruger mx.. så i lige ved det :)
Avatar billede thulstrup Nybegynder
26. august 2004 - 13:24 #1
Må jeg forslå dig at bruge LoadVars istedet:

var indhold_lv = new LoadVars();
indhold_lv.load("indhold.txt");
indhold_lv.onLoad = function(success) {
    if (success) {
        if (this.hentet == "ok") {
            // så er det i hvert fald loadet :o)
        }
    }
};
Avatar billede ask-m Nybegynder
26. august 2004 - 13:24 #2
if (hentet == "ok") {

- du skal huske 'gåse-øjne' om ok, ellers behandler flash ok som en ikke-defineret variabel.
dvs flash tror du spørger om variablen hentet indeholder det samme som variablen ok, og det gør den ikke for variablen hentet indeholder strengen "ok" og variablen ok er udefineret...

ask-m
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:29 #3
thul: hvad er forskellen på den bunke kode du bruger med loadvars og den simple et-linje kode en loadvariables bruger ?
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:30 #4
og det skal bruges sammen med den onClipEvent jeg har på mit loadobject/movieclip... Loadvariables virker fint.. slet ikke det spørgsmålet handler om. :)
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:30 #5
ask-m: skal der også være "" defineret i min txt fil el. kun inde i flash sourcen ?
Avatar billede thulstrup Nybegynder
26. august 2004 - 13:31 #6
Forskellen er at LoadVars har en indbygget funktion der fortæller dig hvornår teksten er loadet.
Avatar billede thulstrup Nybegynder
26. august 2004 - 13:32 #7
Nej det ved jeg, men det skader vel aldrig at give et godt råd :o)
Og der skal kun være "" om dine flash variabler.
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:32 #8
thul: kan ikke bruges her.
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:32 #9
jeg tester lige.. 2 sec :)
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:33 #10
onClipEvent (enterFrame) {
    procentLoaded = parseInt(100*_root.getBytesLoaded()/_root.getBytesTotal());
    if(procentLoaded>=100){
        if(hentet == "ok") {
            _root.play();
        }
    }
}


Så kører den slet ikke videre...
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:35 #11
har du en email, så kan jeg evt hurtigt sende fla,txt ? (vil helst ikke have det public)
Avatar billede ask-m Nybegynder
26. august 2004 - 13:36 #12
er din tekst-fil bygget op som variable=blablabalbalblablalb&variable2=21121221

eller?

der er nødt til at være et &-tegn inden hentet, ellers ved flash jo ikke at du forsøger at definere en variabel.

ask-m
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:41 #13
min textfil er defineret således:

&info=<b>Links</b><br><br>blablab
&links=<b>Links</b><br><br>blablabla
&hentet=ok

se: www.4b4.dk/cv/indhold.txt
Avatar billede thulstrup Nybegynder
26. august 2004 - 13:48 #14
Du mangler &hentet=ok i din tekstfil. Ellers burde det virke:

onClipEvent (load) {
    _root.hentet = false;
    loadVariables("indhold.txt", _root);
}
onClipEvent (enterFrame) {
    procentLoaded = _root.getBytesLoaded()/_root.getBytesTotal()*100;
    if (procentLoaded>=100) {
        if (_root.hentet == "ok") {
            _root.play();
        }
    }
}
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:49 #15
Avatar billede thulstrup Nybegynder
26. august 2004 - 13:49 #16
...og du kan altså godt bruge LoadVars :o)

onClipEvent (load) {
    var indhold_lv = new LoadVars();
    indhold_lv.load("indhold.txt");
    indhold_lv.onLoad = function(success) {
        if (success) {
            if (this.hentet == "ok") {
                _root.play();
            }
        }
    };
}
Avatar billede 4b4 Nybegynder
26. august 2004 - 13:54 #17
så virker det. smider i svar :)
Avatar billede thulstrup Nybegynder
26. august 2004 - 13:57 #18
yes yes
Avatar billede 4b4 Nybegynder
26. august 2004 - 14:03 #19
ask-m havde til dels ret, så hvis i deler?
Avatar billede ask-m Nybegynder
26. august 2004 - 14:04 #20
men thulstrup var hurtigst og mest ihærdig...

ask-m
Avatar billede barklund Nybegynder
26. august 2004 - 14:16 #21
4b4, bruger du Flash 5? Ellers er der ingen grund til de gammeldags, og uddaterede strukturer med loadVariables og eksplicitte movieclip event (onClipEvent).

Lyt istedet til råd fra andre, brug LoadVars og skriv det lidt pænere:

text_loaded = false;
function waitForLoad() {
    if (getBytesTotal() == getBytesLoaded()) {
        delete onEnterFrame;
        play();
    }
}
function onTextLoad() {
    onEnterFrame = waitForLoad;
}
texts = new LoadVars();
texts.onLoad = onTextLoad;
texts.load("indhold.txt");

Det kan smides som et framescript direkte i frame 1, og du slipper for alt muligt med movieclips med scripts på - og minimerer hukommelsesforbruget af dit script krafigt.

Ovenstående henter først teksten og derefter begynder den at tjekke, om alt indhold er loaded - ingen grund til at tjekke det før teksten er klar alligevel.

--
Morten Barklund
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