Probleme mit _root und session-Abfrage

seckes

Grünschnabel
Hallo,

ich möchte einen Flash-Film einem Besucher nur einmal
beim Seitenaufruf anzeigen.
Hierfür übergebe ich Flash mit folgendem parameter die Session:

PHP:
<param name="FlashVars" value="session=<?php echo session_id(); ?>">

Nun habe ich in meiner fla (welche aus einer Szene besteht)
auf der untersten Ebene im Bild 50(Schlüsselfeld) folgendes
Actionscript hinterlegt:

PHP:
var session_help;
if( _root.session == session_help ){
	stop();
}
else{
	session_help = _root.session;
}

Mein Problem ist nun, dass der Film IMMER an diesem Schlüsselfeld anhält!
Hab ich n Problem in der Logik oder übergebe ich die Session falsch.....?

Wäre super, wenn mir hierbei Jemand weiterhelfen könnte!

Danke und Gruß
 
Hi,

welchen Wert enthält den "_root.session"? Lass Ihn Dir doch mal in einem Textfeld anzeigen.

Zudem: "session_help" wird bei jedem Aufruf der Flashdatei undefiniert sein, und ist damit als Kontrolle, ob der Film schon abgespielt wurde nutzlos (der Film wird ja auch immer neu geladen).

Sinnvoller wäre es wohl, PHP-seitig zu prüfen, ob z.B. der Wert $_SESSION["abgespielt"] existiert. Ist der Wert nicht gesetzt, übergibst Du an Flash ein Flag (z.B. "abspielen=true") und setzt den Wert auf true. Ist der Wert gesetzt, übergibst Du nichts an Flash.

Ist nun _root.abspielen == "true", so kannst Du Deine Animation abspielen lassen.

Gruß
.
 
Hallo Tobias,

zuerst mal vielen Dank für deinen Post!
Ich werde versuchen, das ganze so wie von dir vorgeschlagen umzusetzen!
Derzeit habe ich allerdings Probleme, dass Flash schlicht weg nicht auf meine
Abfrage:

PHP:
if (_root.abspielen == 'false'){
   stop();
}

Ich konnte bisher im Netz oder sonst wo genaue Infos zu _root finden.
Steht mir _root in jeder Szene und jedem Layer zur Verfügung oder
gibt es hier irgendwelche Vorgaben?
Wenn ich meine .fla öffne bin ich sofort in "Szene 1". Hier habe ich auf
einem eigenen Layer das Actionscript in Schlüsselbild an Stelle 50 eingefügt!

Hast du noch ne Idee, woran es liegen könnte?
 
Hi,

auf _root (die Hauptzeitleiste) kannst Du von überall aus zugreifen (_lockroot & co. mal außen vor gelassen).

Lass Dir doch die Variable mal in einem Textfeld ausgeben, dann siehst Du, ob sie korrekt übergeben wurde (möglicherweise hast Du ja bei der Übergabe via FlashVars etwas falsch gemacht).

Gruß
.
 
Hey Tobias,

vielen Dank noch einmal für deine schnellen und brauchbaren
Hilfestellungen

Also, wie schon geschrieben habe ich deinen Vorschlag umgesetzt und
dachte vorerst es würde nicht funktionieren!
Nun hat sich herausgestellt, dass es nur im Firefox 2.0.. nicht funktioniert!
Im IE 7 funktioniert hingegen wunderbar!

Derzeit lasse ich mir die session "abspielen" wie von dir geratern im
Film anzeigen! Beim IE wird der Wert der Variablen auch angezeigt.
Im Firefox hingegen nicht!

Hast du oder Jemand anderes hierzu irgendne Idee woran es liegen könnte?

Danke und Gruß
 
Alles klar, bin jetzt im Netz doch noch fündig geworden:
Firefox ignoriert wohl den <param>-Tag und somit hab ich
zusätzlich die FlashVars im <embed>-Tag integriet; JETZT S

Also......noch mal THANKS A LOT
 
... hatte mir schon gedacht, dass es ggf. daran liegt, dass Du das embed-Tag (in der Tat verwendet FF nur dieses) vergessen hast - ich bin allerdings davon ausgegangen, dass Du den IE verwendest, und wollte mich erst einmal an das Problem herantasten. ;)

Gruß
.
 
Zurück