Avatar billede vizone Nybegynder
09. april 2004 - 08:16 Der er 20 kommentarer

handling efter variabel

Jeg har lavet et txt dokument som jeg uploader alt efter om der står "et" "to" eller "tre" i dokumentet skal falsh gå til forskellige steder. i flash loader jeg txtfilen således:

System.useCodepage = true;
loadVariables("http://www.vizone.dk/uldbjerg/antal.txt", this);

derudover har jeg en kode der hedder:

stop();
if (_root.antal==et) {
    gotoAndStop(2);

}
stop();
if (_root.antal==to) {
    gotoAndStop(3);

}
stop();
if (_root.antal==tre) {
    gotoAndStop(4);

}

men det virker ikke, hvis jeg kun har en if sætning virker det, men når der er flere tager den bare den sidste altså gotoAndStop(4); og så er den ligeglad med hvad der står i txtdokumentet.
er der en der har en løsning????
Avatar billede erikjacobsen Ekspert
09. april 2004 - 09:33 #1
stop();
if (_root.antal==et) {
    gotoAndStop(2);

} else if (_root.antal==to) {
    gotoAndStop(3);

} else if (_root.antal==tre) {
    gotoAndStop(4);

}
stop();

Men mener du ikke "et", "to" og "tre" ?
Avatar billede vizone Nybegynder
09. april 2004 - 10:27 #2
nej det virker ikke hverken hvis jeg bruger "" eller lader være....
er det mon fordi den loader det fra et eksternt txt-dok?? for det virker udemærket hvis jeg selv skriver i feltet... altså så den ikke loader det
Avatar billede pyroman Nybegynder
09. april 2004 - 10:47 #3
Jeps... fejlen ligger først og fremmest i at du har glemt "" udenom et, to og tre - de skal nemlig defineres som tekststrenge...
Men en fejl kunne også være at dine variabler fra din txt ikke er hentet ind endnu...
Dette problem kan løses ved at du bruger den nye metode til at hente variabler ind med (MX og MX 2004):

txtVars = new LoadVars();
txtVars.load("http://www.vizone.dk/uldbjerg/antal.txt");
txtVars.onLoad = function(success){
  if(success){
    if(this.antal == "et") _root.gotoAndStop(2);
    else if(this.antal == "to") _root.gotoAndStop(3);
    else if(this.antal == "tre") _root.gotoAndStop(4);
  }
}

/Filip
Avatar billede vizone Nybegynder
09. april 2004 - 11:47 #4
jeg har lige prøvet din metode, men når der kommer "" på så stopper den bare ved frame et hvor der også er en stopfunktion
Avatar billede erikjacobsen Ekspert
09. april 2004 - 11:52 #5
Findes http://www.vizone.dk/uldbjerg/antal.txt  ?
Hvad er det egentlig du vil?
Avatar billede mat Nybegynder
09. april 2004 - 11:57 #6
eftersom antal.txt indeholder "antal=fire" er det jo klart at der ikke sker noget ved ovenstående script?
Avatar billede vizone Nybegynder
09. april 2004 - 11:58 #7
ja adressen findes...
Jeg vil have det sådan at jeg kan uploade et nyt tekstdokument hvor jeg fx. skriver :
antal=fire
i stedet for antal=3
derved skal flash vise noget forskelligt, så når der er uploadet et txt-dok med antal=3 så får flash til frame 4 osv.
Avatar billede vizone Nybegynder
09. april 2004 - 12:02 #8
jeg har selvfølgelig bygget videre på den så der også er else if(this.antal == "fire") _root.gotoAndStop(5)
Avatar billede mat Nybegynder
09. april 2004 - 12:07 #9
Du har en newline i din tekstfil - hvis du tjekker op mod: else if(this.antal == "fire\n") så virker det - sørg for at der ikke er "unødig" whitespace i din tekstfil.

(debug er en god feature ;)

mvh mat
Avatar billede vizone Nybegynder
09. april 2004 - 12:13 #10
Unskyld men det fatter jeg ikke så meget af...
hvad er en newline? og whitespace og debug??
ja i må undskylde at jeg er lidt tung at danse med
Avatar billede erikjacobsen Ekspert
09. april 2004 - 12:17 #11
Debug: prøv at udskrive hvad der er i this.antal
Linieskiftet gør nu nok ikke noget ;)
Avatar billede mat Nybegynder
09. april 2004 - 12:21 #12
newline = et linieskift, sådan et ser sådan ud -> \n, det betyder at du har lavet et linieskift i din tekstfil - det skal du fjerne.

whitespace er bare en betegnelse for alt der ikke er "synlige" karakterer.

I test miljøet i flash (det du kommer ind i når du trykker ctrl+enter) er der en menu og i den et punkt der hedder "debug", prøv at vælge "list variables" så vil du se antal´s værdi.

mvh mat
Avatar billede vizone Nybegynder
09. april 2004 - 12:24 #13
men kan jeg ikke bare bruge "fire\n"
Avatar billede mat Nybegynder
09. april 2004 - 12:27 #14
joeh men det er da lidt fjollet, du kan jo bare fjerne linieskiftet? :)
Avatar billede vizone Nybegynder
09. april 2004 - 12:31 #15
linjeskiftet i txt-dokumentet???
jeg har prøvet, men måske er det fordi jeg sidder på mac at den laver et linjeskift??
\n betyder det bare minus linjeskift eller hvad?
Avatar billede erikjacobsen Ekspert
09. april 2004 - 12:32 #16
Linieskiftet er uden betydning. Man kan have flere linier, med flere variabler, adskilt af linieskift.

Hvad siger den, når du udskriver this.antal ?
Avatar billede vizone Nybegynder
09. april 2004 - 12:36 #17
men hvad mener du så med at jeg bare skal fjerne linjeskiftet???
hvis jeg skriver:
trace(antal);
skriver den bare:
undefined
Avatar billede mat Nybegynder
09. april 2004 - 12:59 #18
ericjacobsen > Så tjek selv - den streng vizone loader ind i flash ser sådan her ud: "fire\n" (på mit system (PC)). Jeg kan ikke lige gennemskue hvor og hvornår flash tolker newlines som del af strengen.

Men med:

txtVars = new LoadVars();
txtVars.load("antal.txt");
txtVars.onLoad = function(success){
  if(success){
    trace(this.a);
    trace(this.b);
  }
}

og en tekstfil der ser ud som:

a=1&
b=2

output:

1
undefined

a=1
&b=2

output:

1


2

(linieskift)
a=1&
b=2

output:

undefined
undefined

a=1&b=2(linieskift)

output:

1
2

(linieskift)a=1&b=2

output:

undefined
2

a=1&b=2

output:

1
2

Så kan man jo selv fortsætte med kombinationer og tyde et mønster (evt prøve med encodings) men et eller andet betyder linieskift nu nok (nogengange)? :)
Avatar billede mat Nybegynder
09. april 2004 - 15:42 #19
..men under alle omstændigheder vil jeg gætte på at problemet forsvinder hvis du tilføjer et & tegn efter "fire"? altså:

antal=fire&
Avatar billede pyroman Nybegynder
09. april 2004 - 15:44 #20
I en txt som skal hentes ind i flash må der ALDRIG være nye linjer... hold dig fra <enter> - Undgå også mellemrum før og efter "=" tegnet...
Flash læser alt dette på en mærkelig måde sådan at man ikke får noget resultat ud...

Alt indhold fra en variabel i en txt, vil Flash tolke som en textstreng... derfor skal der "" udenom det tal eller ord du skriver efter "==" i if-koden...

HVis du har fx "antal=3" i din txt og du i flash vil have at "3" skal tolkes som et tal skal lige lave sådan en her under din "if(success){"

antal = Number(antal);

Og hvis du så ellers har gjort alt hvad der er angivet... så burde det 100% virke! Dit flash er jo ikke anderledes end vores andres...
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel