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-Key: 212872

Url: https://administrator.de/contentid/212872

Printed on: April 26, 2024 at 04:04 o'clock

Member: colinardo
colinardo Jul 30, 2013 updated at 09:19:00 (UTC)
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.
Member: B-free
B-free Jul 30, 2013 updated at 09:55:22 (UTC)
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
Member: colinardo
colinardo Jul 30, 2013 at 10:47:56 (UTC)
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
Member: B-free
B-free Jul 30, 2013 at 10:51:08 (UTC)
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
Member: B-free
B-free Jul 30, 2013 updated at 11:25:05 (UTC)
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 :|
Member: B-free
B-free Jul 30, 2013 at 11:59:15 (UTC)
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