Avatar billede andersdp Nybegynder
16. juni 2003 - 20:44 Der er 6 kommentarer og
1 løsning

global variabel tilgængelig i ekstern loadet swf?

Jeg er ved at lave et site, hvor brugeren logger ind med brugernavn og password. Brugernavnet (user) gemmer jeg i global variabel. Fra den main swf som indeholder brugernavnet loader jeg nogle eksterne swf'er - de skal bruge brugernavnet for at loade de rigtig txt filer der hører til brugeren.

Men har den eksterne swf adgang til at læse en global variabel i en anden swf? Og hvordan gør jeg i givet fald?

Funktionen der loader txt filerne i den eksterne swf ser sådan ud:

_global.EXroot = this;

Tekst= new LoadVars();
Tekst.load (user+".txt");
Tekst.onLoad = function()
{
EXroot.clientdata.htmlText = this.clientdata;
EXroot.projectdescription.htmlText = this.description;
}

Anders
Avatar billede barklund Nybegynder
16. juni 2003 - 21:37 #1
Lige så snart variablen ligger på _global, så kan du til en hver tid bare skrive variablens navn på en hver tidslinie i en hver film og så har du fat i den rigtige reference. Med mindre du selvfølgelig har en lokal variabel med samme navn...

Så det ovenstående script er helt rigtigt konstrueret. Hvad er spørgsmålet helt præcist?
Avatar billede andersdp Nybegynder
16. juni 2003 - 21:38 #2
Variablen er defineret sådan her i hoved swf'en:

_global.user;

Er det ikke korrekt?
Avatar billede andersdp Nybegynder
16. juni 2003 - 21:45 #3
Der er kun den ene variabel med det navn.

Problemet er jo at min txt fil ikke loades i den swf jeg loader ind.
Det skyldes at jeg ikke fanger "user" variablen som er defineret i den anden swf. Og jeg ved ikke hvad jeg gør forkert - har forsøgt med ovenstående og andre varianter...
Avatar billede barklund Nybegynder
16. juni 2003 - 22:22 #4
har du prøvet for sjovs skyld at lave en trace(user)?

I hvilken rækkefølge loades dine film og udføres dine handlinger? Det kan godt tænkes, at variablen ikke er sat, når du prøver at hente den...
Avatar billede andersdp Nybegynder
16. juni 2003 - 22:31 #5
Ja, den tracer fint.

Det kan være at det hjælper hvis du lige får en url, så er det måske nemmere at overskue. Når du taster user og pass, tjekkes der for tekstfiler på serveren, hvis de stemmer overens lukkes du ind.

Det jeg tester er det første menupunkt - project data. Det er denne eksterne swf som ikke fanger min globale variabel. Meningen er at den loader de txt filer (i en bestemt mappe) som matcher brugernavnet.

http://www.freiheits.com/extranet/
user og pass står på siden.
Avatar billede andersdp Nybegynder
17. juni 2003 - 00:45 #6
Jeg bruger en loadVariables til at tjekke om user og password passer med de oprettede txt filer, og det er vist efter jeg har brugt denne at min globale user variabel forsvinder.... Kan det passe, at loadVariables sletter den?

Koden ser sådan ud:
**********************
login = user+".txt";
loadVariables(login, this);

if (pass != password) {
    gotoAndPlay("error");
} else if (pass eq password) {
    _root.gotoAndPlay(gotoframe); //sender til frame 2
}
stop();
**********************

Jeg kan ihvertfald ikke trace user, i andre movieclips end det movieclip den er oprettet i... Hvad går der galt?

Til info, så er opbygningen af min fla således:
Består af to frames - den første indeholder et mc med login formen, det er her _global.user erklæres.

Den anden frame generer menuen v.hj.a. xml der indeholde de links der bruges...

Håber på noget hjælp....
Avatar billede andersdp Nybegynder
21. juni 2003 - 16:49 #7
Lukker spørgsmålet
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