Avatar billede schwaner Nybegynder
15. februar 2005 - 11:28 Der er 11 kommentarer

Gemme i en fil - Hente fra en fil.

Hej med jer.

I en multimedie præsentation (der skal køre lokalt på en maskine - Ikke over internettet) har jeg bruge for at kunne gemme indtastninger lavet i en Flash fil og derefter hente dem frem senere hen.

Et eksempel kunne være at jeg skal have gemt variablen "A"'s værdi og senere hente den frem når jeg starter præsentationen igen. Har I nogle forslag til hvordan jeg gør det?

/Schwaner.
Avatar billede thulstrup Nybegynder
15. februar 2005 - 11:41 #1
Det kan du klare med SharedObjects.

Actionscripts.org har en god tutorial om emnet:
http://actionscripts.org/tutorials/intermediate/SharedObjects/index.shtml
Avatar billede schwaner Nybegynder
16. februar 2005 - 14:53 #2
OK. Nu har jeg så prøvet med følgende kode for at gemme et object:
mySO = SharedObject.getLocal("calc_input");
mySO.inst_a = this.inst_Indhold1.inst_a.text;

Og følgende kode for at hente det igen når jeg starter præsentationen for anden gang:
this.inst_Indhold1.inst_a.text = mySO.inst_a

Flash påstår desværre at værdierne er "undefined". Hvad gør jeg galt?
Avatar billede schwaner Nybegynder
16. februar 2005 - 14:54 #3
KORREKTION - Erstatter sidste indsendte

OK. Nu har jeg så prøvet med følgende kode for at gemme et object:
mySO = SharedObject.getLocal("calc_input");
mySO.inst_a = this.inst_Indhold1.inst_a.text;

Og følgende kode for at hente det igen når jeg starter præsentationen for anden gang:
mySO = SharedObject.getLocal("calc_input");
this.inst_Indhold1.inst_a.text = mySO.inst_a;

Flash påstår desværre at værdierne er "undefined". Hvad gør jeg galt?
Avatar billede thulstrup Nybegynder
16. februar 2005 - 15:01 #4
Det må være fordi du gemme undefined i din sharedobject. Hvis du prøver med nedenstående, virker det jo fint:

mySO = SharedObject.getLocal("calc_input");
mySO.inst_a = "test";

mySO = SharedObject.getLocal("calc_input");
trace(mySO.inst_a);
Avatar billede schwaner Nybegynder
16. februar 2005 - 15:56 #5
Ja det virker, men kun når det kører. Lige så snart jeg lukker Flash-playeren er værdien tabt. Jeg har forsøgt at sætte:

mySO = SharedObject.getLocal("calc_input");
mySO.data.inst_a = "test";

i filen 1.swf
og

mySO = SharedObject.getLocal("calc_input");
inst_test.text = mySO.inst_a;

i filen 2.swf

Når man så kører først 1.swf, lukker den og derefter kører 2.swf så burde den da hvis strengen "test" i 2.swf, ikke? Altså som en slags cookie, eller er jeg helt ude på et sidespor?
Avatar billede thulstrup Nybegynder
16. februar 2005 - 17:20 #6
Hov, du skal selvfølgelig huske at bruge data. Altså:

mySO.data.inst_a = "test";
Avatar billede schwaner Nybegynder
17. februar 2005 - 10:20 #7
Det har jeg også prøvet, men uden held. Den skriver stadigvæk "undefined" i tekstfeltet??? Meget mærkeligt
Koderne ser nu sådan ud:

Fil 1:
mySO = SharedObject.getLocal("calc_input");
mySO.data.inst_a = "test";

Fil 2:
mySO = SharedObject.getLocal("calc_input");
inst_test.text = mySO.data.inst_a;
Avatar billede schwaner Nybegynder
17. februar 2005 - 12:51 #8
OK. Fandt ud af det. Det object som man ønsker at share skal skrives fra og hentes ind i den samme fil - Man kan ikke gøre det på tværs af SWF. Tak for hjælpen.
Avatar billede schwaner Nybegynder
17. februar 2005 - 12:59 #9
Thulstrup - Opretter du et svar så du kan få lidt points?
Avatar billede thulstrup Nybegynder
17. februar 2005 - 13:30 #10
Det kan godt lade sig gøre, man skal bare huske at sætte localPath til roden, så SharedObject bliver gemt og hentet fra samme sted:

Fil 1:
mySO = SharedObject.getLocal("calc_input", "/");
mySO.data.inst_a = "test";
mySO.flush();

Fil 2:
mySO = SharedObject.getLocal("calc_input", "/");
trace(mySO.data.inst_a);
Avatar billede thulstrup Nybegynder
22. februar 2005 - 12:54 #11
Kan du få det til at virke?
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