[director 8/Lingo] Error: variable used b4 assigne

Pagina: 1
Acties:

  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
Ik krijg deze error: "variable used before assigning a value" terwijl de variabele zeker wel global is en de waarde 6 heeft voordat ik 'm gebruik.

Deze waarde is gegeven door het klikken op een castmember en later wil ik deze in een frame script gebruiken om
een bepaalde text weer te geven in een popupje.

Ik krijg steeds deze error alleen. De watcher geeft aan dat "deel = 6" (deel is de variabele) en met showGlobals in message window zegt ie dat deel een global is.

Waar kijk ik overheen? Dit moet morgen af :(

Human Bobby


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

P&W -> W&G

Doet iets met Cloud (MS/IBM)


Verwijderd

Kun je even het hele (relevante deel van het) script posten?

Verder is het je waarschijnlijk wel bekend dat op iedere script pagina je je globals moet declareren.

  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
global deel
on mouseEnter me
  the blend of sprite 14 = 100;
end
on mouseLeave
  the blend of sprite 14 = 0;
end

on mouseUp
  deel = 1
  put "60% chance to lose voice at age 40 or older" 
  into member("nadeel").line[2]
end mouseUp


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
global deel
on exitFrame me
  if deel = 1 then
    talent =  "singer"
  else if deel = 2 then
    talent =  "actor"
  else if deel = 3 then
    talent =  "teacher"
  else if deel = 4 then
    talent =  "dancer"
  else if deel = 5 then
    talent =  "leader"
  else if deel = 6 then
    talent =  "sportsman"
  else if deel = 7 then
    talent =  "comedian"
  else if deel = 8 then
    talent =  "artist"
  else if deel = 9 then
    talent =  "fighter"
  end if
  
  put "Calculation showed mismatch at target " into 
member("test").line[1]
  put talent after member("test").line[1]
  
end

excuses voor mijn zeer ongezond programmeerwerk *D

Human Bobby


Verwijderd

Misschien kun je sowieso beter switch ipv. if-then-else gebruiken? Kun je nog een default value meegeven ook, dan is een variabele 100% zeker een bepaalde waarde.

Geen idee hoeveel stacks Director hanteert, maar een stuk of 10 if'jes nesten moet toch wel kunnen, maar het is niet netjes, en imho ook niet wijs. Maar ik zie inderdaad ook geen fout, wellicht heb ik er nog wat te weinig ervaring mee :)

Verwijderd

[code]global deel
on exitFrame me
if deel = 1 then
talent = "singer"
else if deel = 2 then
talent = "actor"
...
else if deel = 9 then
talent = "fighter"
end if


ik zou er aan het eind van de if-loop nog een else talent="leeg" aan toevoegen voor die gevallen dat er niet aan de voorgaande voorwaarden voldaan wordt.
ik sluit me aan bij mij voorganger om switch te gebruiken; maakt de code wat transparenter.

Verwijderd

Het lijkt mij dat in dit script de exitframe handler eerder bereikt wordt dan de mouseup.
In dat geval heeft de variabele deel nog geen waarde.
Als je in een moviescript zet
global deel
on startMovie
deel=0
end

Dan moet het wel lukken, ik weet het wel zeker.
Pagina: 1