Avatar billede purup Nybegynder
19. december 2001 - 08:43 Der er 23 kommentarer og
2 løsninger

global variabel

Godt nok er jeg nybegynder i Flash, men jeg har programmeret i så meget andet, og efter hvad jeg kan læse mig til er der ikke noget galt her:

I mit frame: test = \"hallo\";

Jeg har en textbox der hedder status og et mc.
I mit mc:
onclipevent (mousemove){
  _root.status = test;
}

..men når jeg bevæger musen sker der ikke noget som helst! Hvis jeg indsætter test = \"hallo\" oven over _root.status = test; virker det.

Hvad er der galt? Er det bare mig der ikke kan finde ud af erklærer en global variabel.
Avatar billede Slettet bruger
19. december 2001 - 08:47 #1
Du erklærer ikke en global variable som sådan *S*

Hvis du f.eks. sætter en variable i en frame på main TimeLine, så skal den kaldes fra _root.

Modsvarende skal den kaldes fra det respektive MC som du måtte sætte variablen i...

Du kan nøjes med at ændre koden i dit mc til:

onClipEvent (mouseMove){
  _root.status = _root.test;
}

Det burde løse problemet ;o)

/M

http://www.fotx.net/molok
Avatar billede lingoman Nybegynder
19. december 2001 - 08:49 #2
Det er variablens scope
din test variable eksisterer kun imens du er i den frame da den deklareres i en frame action, selvom den er global.
Hvis den skal leve længere kan du sætte den på en MC. Så er den ikke glemt før MC\'en forsvinder fra stage
Avatar billede lingoman Nybegynder
19. december 2001 - 09:10 #3
Det må jeg trække tilbage igen... Jeg havde ikke læst dit spørgsmål ordentligt. molok har ret. Hvis du skriver

test = \"hallo\"; som en frame action i hovedtidslinien, hører din variabel \"test\" til _root. Derfor er den korrekte syntaks _root.test hvis du vil have adgang til den fra en anden tidslinie, Fks dit MC.

Det du gør i dit eksempel er at bede om variablen \"test\" i MC\'en, og ikke _root
Da du ikke tidligere har sat dets værdi er den undefined eller null
Avatar billede lingoman Nybegynder
19. december 2001 - 09:13 #4
Begrundelsen herfor er at Flash automatisk antager at variabler, funktioner eller objekter hører til den samme tidlinie som actionen kaldes fra med mindre man specificerer en anden tidslinie via fks _root.test
Avatar billede Slettet bruger
19. december 2001 - 09:16 #5
HEHEHE... Tak for den uddybende forklaring Lingoman. Jeg ved bare hvordan koden skal se ud, er ikke pædagogisk nok anlagt til at kunne forklare det, så; mange tak for supplementet :o)

/M

http://www.foxt.net/molok
Avatar billede lingoman Nybegynder
19. december 2001 - 09:19 #6
Jeg tabte jo ansigt...må hellere prøve at rette op på det igen ;)
Avatar billede Slettet bruger
19. december 2001 - 09:20 #7
Nogle gange er man bare for hurtig... Da jeg så dit svar blev jeg selv i tvivl *LOL*
Avatar billede purup Nybegynder
19. december 2001 - 09:24 #8
Tak for svaret - begge to.
Men hvem vil have de velfortjænte point?
Avatar billede Slettet bruger
19. december 2001 - 09:25 #9
Jeg vil for en gang skyld ikke stå tilbage *GF*

/M
Avatar billede purup Nybegynder
19. december 2001 - 09:27 #10
Jeg vil nødigt
Avatar billede lingoman Nybegynder
19. december 2001 - 09:28 #11
Jeg foretrækker en 0 point accept fremfor en afvisning...
Avatar billede Slettet bruger
19. december 2001 - 09:30 #12
Takker for points ;o)
Avatar billede lingoman Nybegynder
19. december 2001 - 09:30 #13
Hovsa ? Det var vel ikke meningen ??
Avatar billede purup Nybegynder
19. december 2001 - 09:31 #14
Ja så fik i begge to point jeg vil jo nødigt gøre nogen ked af det (..og så håber jeg jo på at lingoman måske kan løse mit andet (og lidt større) problem)
Avatar billede lingoman Nybegynder
19. december 2001 - 09:31 #15
Molok>> Jeg overfører lige point til dig...
Avatar billede lingoman Nybegynder
19. december 2001 - 09:33 #16
På min skærm står der at jeg fik alle 15 point, og molok fik 0 point ??? Opretter lige spørgsmålet med point til molok
Avatar billede purup Nybegynder
19. december 2001 - 09:34 #17
bare lige for at forstå det helt rigtigt:

hvis jeg i main timeline, frame 1 skriver:
test = \"hallo\"

hvordan kan jeg så refererer til test i senere frames? Og hvordan kan jeg refererer til test fra buttons og mc\'s?
Avatar billede Slettet bruger
19. december 2001 - 09:34 #18
hehehe... Synes nok at noget gik galt *G*
Avatar billede Slettet bruger
19. december 2001 - 09:35 #19
ved at referere til:

_root.test

den vil altid befinde sig dér...
Avatar billede purup Nybegynder
19. december 2001 - 09:36 #20
Jeg beklager hvis molok ikke fik nogle point. Jeg trykkede advanceret og skrev 15 point ud for jer begge to. Kan man ikke give flere point end oprindeligt angivet?
Jeg kan oprette et nyt spørgsmål til molok.
Avatar billede lingoman Nybegynder
19. december 2001 - 09:36 #21
molok>> du har point til gode her http://www.eksperten.dk/spm/148428
Avatar billede Slettet bruger
19. december 2001 - 09:38 #22
Alt er i skønneste orden nu..

Har lagt et svar ind under ovenstående ref.

Og pyt,,, Shit happens!?
Avatar billede purup Nybegynder
19. december 2001 - 09:39 #23
Vil du ikke hve nogle point lingoman?
Avatar billede lingoman Nybegynder
19. december 2001 - 09:47 #24
Nej, ellers tak! Jeg satser på at løse det andet spøgsmål på torsdag ;)
Avatar billede purup Nybegynder
19. december 2001 - 09:51 #25
Lyder som en rigtig god ide :)
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