b-free
Goto Top

AS3 sharedObject will nicht. es tut sich nicht einmal etwas (gutes)!!!

Hi Leute!

Ich habe ein Problem:

trace (sharedObject.data["done"]);  


if (sharedObject.data["done"]) {  
	trace ("schon erledigt");  
}

else {
	var sharedObject:SharedObject;
	sharedObject = SharedObject.getLocal('beautifycode', "/", false);  
	 
	sharedObject.data["done"] = "true";  
	sharedObject.flush();
	
	trace ("jetzt das erste mal gemacht!");  
	}

Was ich will dass es macht:
beim erstenmal sagen:
"jetzt das erste mal gemacht!"
danach:
"schon erledigt"
...

was es macht:
NICHTS!!!
ausser: (ausgabe. nicht compiler Fehler)
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
	at WurzelziehenmitdemTaschenrechner_Szene1_fla::MainTimeline/frame166()
	at flash.display::MovieClip/gotoAndStop()
	at WurzelziehenmitdemTaschenrechner_Szene1_fla::MainTimeline/fl_ClickToGoToAndStopAtFrame_2()


ich bin ratlos.

Tschau
B-free

*edit*
auch ohne
trace (sharedObject.data["done"]);  
am anfang macht es nichts!

Content-ID: 212872

Url: https://administrator.de/forum/as3-sharedobject-will-nicht-es-tut-sich-nicht-einmal-etwas-gutes-212872.html

Ausgedruckt am: 23.12.2024 um 12:12 Uhr

colinardo
colinardo 30.07.2013 aktualisiert um 11:19:00 Uhr
Goto Top
Hallo B-free,
wie wär's wenn du die Variable sharedObject mal aßerhalb des IF-Blocks deklarierst, sonst ist diese nur innerhalb des else-teils verfügbar ...

var sharedObject:SharedObject; 

if (sharedObject.data["done"]) {   
..
.

Grüße Uwe
Gelöste Beitrage bitte auch als solche markieren.Danke.
B-free
B-free 30.07.2013 aktualisiert um 11:55:22 Uhr
Goto Top
Schon probiert. jetzt aber an einem anderen beispiel in einer anderen Datei!

var sharedObject:SharedObject;

if (sharedObject.data["sichtbar"] == "1") {  
	gemacht.visible = true;
}
else {
	gemacht.visible = false;
	}

und in einer anderen frame:

sharedObject = SharedObject.getLocal('beautifycode', "/", false);  
	 
sharedObject.data["sichtbar"] = 1;  
sharedObject.flush();

B-free

ps. immer noch der selbe ERROR
colinardo
colinardo 30.07.2013 um 12:47:56 Uhr
Goto Top
wenn dein Code in unterschiedlichen Frames ist kannst du natürlich nicht auf die Variable zugreifen, da diese jeweils nur im aktuellen Frame vorhanden ist.
Am besten legst du einen separaten Layer an bei dem du im ersten Frame deinen Code einfügst und den Inhalt über deine ganze Timeline verlängerst.
Alternativ musst du eine Dokumenten-Klasse verwenden(siehe dazu diesen Beitrag)

Grüße Uwe
B-free
B-free 30.07.2013 um 12:51:08 Uhr
Goto Top
Der besagte "TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich." besagt, dass ich ein "futzel" code (Eventlistener und so) nicht auf mit einem Objekt "gepaart" habe...


das ist allerdings nicht der fall. es läuft ohne das sharedObject alles rund.


face-sad

B-free
B-free
B-free 30.07.2013 aktualisiert um 13:25:05 Uhr
Goto Top
Ich denke, dass ich alles richtig gemacht habe:

neue ebene, erste Frame auswählen, auf "Aktionen" gehen und
var sharedObject:SharedObject; 
einfügen.


allerdings:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
	at Testtesttest_Szene1_fla::MainTimeline/frame1()

face-sad

*edit
Hab natürlich die andere Variablen definition gelöscht :|
B-free
B-free 30.07.2013 um 13:59:15 Uhr
Goto Top
JUCHU!
face-smile face-smile face-smile face-smile face-smile face-smile

ICH HABS GESCHAFT.

Alt:
var savegame:SharedObject;
if (savegame.data["visible"] == 1) {  
gemacht.visible = true;
}
else {
gemacht.visible = false;
	}

Neu:
var savegame:SharedObject;

savegame = SharedObject.getLocal('beautifycode', "/", false); // Das ist das was gefehlt hat!  

if (savegame.data["visible"] == 1) {  
gemacht.visible = true;
}
else {
gemacht.visible = false;
	}

Supi. geschafft. mach jetzt Pause.
B-free