Navigation zwischen zwei swf Filmen (.fla) in html Dokumenten

Hallo,

welcher Buttonbefehl ist der Richtige, wenn ich von einem swf Film (.fla) zu einem anderen swf Film (.fla) wechseln möchte (beide später in html Dateien eingebettet).

Und zwar zu einer bestimmten Szene (oder zu einem bestimmten Bild).

Besten Dank für Hilfe.

MfG
Haarentferner
 
Hi,

.fla-Dateien kannst Du auf html-Seiten überhaupt nicht anzeigen.

Um von einer SWF-Datei zu einer anderen zu springen, kannst Du entweder eine andere html-Seite mit der neuen Datei anspringen (mit getURL), oder die zweite SWF-Datei mit loadMovie bzw. loadMovieNum laden und abspielen.

Gruß
.
 
Hi,

okay, ich habe also zwei html Seiten (mit jeweils einer swf Datei als Inhalt).

Welches Actionscript muss ich beim Button einbauen, damit ich von dem einen html Dokument in das Andere gelange. Und zwar auf eine bestimmte Szene oder ein bestimmtes Bild der swf Datei.

Ich hoffe, das war deutlicher geschildert.

MfG
Haarentferner
 
Hi,

Ein bestimmtes Bild kannst Du mit reinen html-Mitteln nicht angeben (zumindest nicht ohne JavaScript oder PHP). Du kannst aber generell den Link so aufbauen:
PHP:
on(press) {
    getURL("andere_seite.php?scene=3&bild=15");
}
die "andere_seite.php" liest dann $_GET["scene"] und $_GET["bild"] aus, und schreibt die Werte als FlashVars in die Object- und Embed-Tags der Flashdatei. Dort stehen beide Variablen dann zur Verfügung und können verwendet werden, um die entsprechende Szene und das Bild anzusteuern.

Alternativ kannst Du den Query-String auch mit JavaScript parsen und den Flashfilm z.B. mit Flashplayermethoden steuern. Eine Methode, von der ich allerdings ob ihrer Fehleranfälligkeit abraten würde, wenn Dir PHP zur Verfügung steht.

Gruß
.
 
Hallo Datic,

ich habe mehrere Versuche gemacht und Deinen empfohlenen Link online verwendet. Darauf folgte leider immer die unten eingefügte Information im Browser.
-------
Multiple Choices
The document name you requested (/N/blablabla.php) could not be found on this server. However, we found documents with names similar to the one you requested.
Available documents:

/N/blablabla.html?scene=2&bild=1 (common basename)
/N/blablabla.swf?scene=2&bild=1 (common basename)
-------
So kann ich das ja nicht lassen.

Hast Du evtl. noch eine Idee, oder habe ich vielleicht was falsch verstanden?

Gruß
HE
 
[..] oder habe ich vielleicht was falsch verstanden?
Vermutlich.

Du sollst keine Dokumente anlegen, die den Query-String im Namen haben, sondern (in diesem Beispiel) ein PHP-Script (blablabla.php). Wenn Du nun dieses Script so aufrufst:
PHP:
getURL("blablabla.php?scene=3&frame=7");
, wird das Script ausgeführt und die Variablen "scene" sowie "frame" stehen im Superglobalen Array $_GET[] zur Verfügung (wie man die ausliest und weiterverarbeitet, erfährst Du im PHP-Forum/den PHP-FAQ). Beide Variablen schreibst Du nun in die FlashVars für Deinen Film:
PHP:
<?php
$fvars = '<param name="flashvars" value="scene='.$_GET['scene'].'&frame='.$_GET['frame'].'" />';
$fvars2 = 'flashvars="scene='.$_GET['scene'].'&frame='.$_GET['frame'].'"';
?>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="320" height="240" id="meinfilm" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="meinfilm.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<?php echo($fvars); ?>
<embed src="meinfilm.swf" quality="high" bgcolor="#ffffff" <?php echo($fvars2); ?> width="320" height="240" name="meinfilm" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

In dem Flashfilm (meinfilm.swf) hast Du nun Zugriff auf diese Variablen:
PHP:
// Auf der Hauptzeitleiste:
switch(scene) {
    case "1": gotoAndPlay("Scene 1", frame); break;
    case "2": gotoAndPlay("Scene 2", frame); break;
    case "3": gotoAndPlay("Scene 3", frame); break;
    case "4": gotoAndPlay("Scene 4", frame); break;
}

Gruß
.
 
Hallo Datic,

ich habe es leider bis jetzt noch nicht hinbekommen. Deshalb möchte ich nun meine neuen Fragen anbringen:

Die 1 swf Datei
Code:
zumBeispiel_index
hat insgesamt 4 Szenen (S1,S2,S3,S4) und wird in die php Datei
Code:
zumBeispiel_index.php
eingebunden.

Die 2 swf Datei
Code:
zumBeispiel_Seite2
hat insgesamt 5 Szenen (Sa,Sb,Sc,Sd,Se) und wird in die php Datei
Code:
zumBeispiel_Seite2.php
eingebunden.

Den folgenden Code habe ich direkt auf einen Button in die swf Datei
Code:
zumBeispiel_index
gelegt, um eine einzelne Szene in swf Datei
Code:
zumBeispiel_Seite2
anzusprechen (StudioMX2004):
Code:
on(press) {getURL("http://www.blablabla.de/zumBeispiel_Seite2.php?scene=Sd&bild=Bildbezeichnung");
.

1. Frage: Wie muss nun das Script genau aussehen, welches ich in den Header der PHP Datei
Code:
zumBeispiel_index.php
schreiben muss?

2. Frage: Wie muss nun das Script genau aussehen, welches ich in den Header der PHP Datei
Code:
zumBeispiel_Seite2.php
schreiben muss?

(Deine Beschreibung "Beide Variablen schreibst Du nun in die FlashVars für Deinen Film" war für mich im Zusammenhang mehrerer Szenen nicht klar zu verstehen.

3. Frage: Soweit ich es richtig verstanden habe, muss der Code der Hauptzeitleiste des swf
Code:
zumBeispiel_Seite2
so aussehen (und umgekehrt auch für die index Datei mit den Scenen S1,S2,S3,S4):

Code:
// Auf der Hauptzeitleiste Seite2: 
switch(scene) { 
    case "1": gotoAndPlay("Sa", Bildbezeichnung); break; 
    case "2": gotoAndPlay("Sb", Bildbezeichnung); break; 
    case "3": gotoAndPlay("Sc", Bildbezeichnung); break; 
    case "4": gotoAndPlay("Sd", Bildbezeichnung); break; 
    case "5": gotoAndPlay("Se", Bildbezeichnung); break;
}

Aber dadurch, dass diese swf Datei 5 Szenen hat, hat sie ja auch 5 Hauptzeitleisten. Muss ich diesen Code denn jetzt in alle einzelnen Scenenzeitleisten des swf
Code:
zumBeispiel_Seite2
einfügen?

Ich hoffe, ich komme nach den Antworten etwas weiter.
Many thanks for your kind response.
Haarentferner
 
Zuletzt bearbeitet:
Hi,

1. in Deiner ersten PHP-Datei muss der Flashfilm ganz normal (ohne weitere Scripte) eingebunden werden.

2. in der zweiten PHP-Datei setzt Du zuerst (wie schon gesagt), die FlashVars zusammen:
PHP:
<?php
$fvars = '<param name="flashvars" value="scene='.$_GET['scene'].'&frame='.$_GET['frame'].'" />';
$fvars2 = 'flashvars="scene='.$_GET['scene'].'&frame='.$_GET['frame'].'"';
?>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="320" height="240" id="meinfilm" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="meinfilm.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<?php echo($fvars); ?>
<embed src="meinfilm.swf" quality="high" bgcolor="#ffffff" <?php echo($fvars2); ?> width="320" height="240" name="meinfilm" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
(Du verwendest natürlich den Datennamen und die Maße Deines zweiten Flashfilmes, nicht "meinfilm.swf" und "320"/"240")

Der Aufruf des Scriptes in der ersten SWF-Datei sollte so aussehen:
PHP:
on(press) {
    getURL("zumBeispiel_Seite2.php?scene=Sd&frame=1");
}
Die Zahl hinter "frame=" bestimmt die Bildnummer. Hast Du einen Bildbezeichner in der Variable "bildbezeichner" stehen, sieht der Aufruf so aus:
PHP:
getURL("zumBeispiel_Seite2.php?scene=Sd&frame=" + bildbezeichner);

3. Die switch-Abfrage in der zweiten SWF-Datei müsste dann so aussehen:
PHP:
switch(scene) { 
    case "Sa": gotoAndPlay("Sa", frame); break; 
    case "Sb": gotoAndPlay("Sb", frame); break; 
    case "Sc": gotoAndPlay("Sc", frame); break; 
    case "Sd": gotoAndPlay("Sd", frame); break; 
    case "Se": gotoAndPlay("Se", frame); break;
}
Diese Abfrage kommt in den ersten Frame der ersten Szene, da erst dort ggf. in eine andere Szene gesprungen wird.

Gruß

P.S.: Wenn es immernoch nicht funktioniert, poste bitte alle Deine Dateien (.php und d.fla) und ich versuche, es zu korrigieren. Vor Dienstag oder Mittwoch werde ich aber nicht dazu kommen, da die Telecom es noch nicht geschafft hat, meinen neuen DSL-Anschluss zum Laufen zu bringen.
.
 
Hi,

soweit ich das sehen kann, hast Du a) die Abfrage der Variablen "scene" und "frame" nicht inder index.fla eingebaut. Setze in die Scene "preloader" folgendes:
Code:
if (scene != undefined && frame != undefined) {
	switch(scene) {
		case "Wirüberuns": gotoAndPlay("Wirüberuns", frame); break;
		case "Kontakt": gotoAndPlay("Kontakt", frame); break;
		case "Impressum": gotoAndPlay("Impressum", frame); break;
	} 
}
b) rufst Du mit Deinen Links die "index.php" auf, die aber nicht über die FlashVars-Verarbeitung verfügt. Baue die index.php genauso auf wie die UnsereProdukte.php, sonst kann der Hauptfilm ja nicht darauf reagieren.

Ob bei Dir PHP läuft, kannst Du ganz einfach feststellen, indem Du die UnsereProdukte.php im Browser aufrufst: Sind im Quelltext die FlashVars zu sehen (und bekommst Du den PHP-Quelltext im Browser nicht zu sehen), so wird PHP verarbeitet.

Gruß
.
 
Hi Datic,

ich habe nun den Provider gewechselt, damit ich mit PHP arbeiten kann, weiß aber noch nicht genau, ob und wie ich auf diesem Server mit PHP auf meine MySQL-Datenbank zugreifen kann.

Momentan habe ich noch keine Einstellungen auf dem neuen Server diesbezüglich eingerichtet, weil ich nicht weiß, wie ich das machen soll.

In mein .php Dokument habe ich folgenden Header geschrieben:
PHP:
<?php 
$fvars = '<param name="flashvars" value="scene='.$_GET['scene'].'&frame='.$_GET['frame'].'" />'; 
$fvars2 = 'flashvars="scene='.$_GET['scene'].'&frame='.$_GET['frame'].'"'; 
?> 
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="1000" height="700">
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="UnsereProdukte.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<?php echo($fvars); ?> 
<embed src="UnsereProdukte.swf" quality="high" bgcolor="#ffffff" <?php echo($fvars2); ?> width="700" height="1000" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 
</object>

Nach dem Upload sieht der Code im Quelltext nur noch so aus (es fehlt etwas):
PHP:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="1000" height="700">
<param name="allowScriptAccess" value="sameDomain" /> 
<param name="movie" value="UnsereProdukte.swf" /> 
<param name="quality" value="high" /> 
<param name="bgcolor" value="#ffffff" /> 
<param name="flashvars" value="scene=&frame=" /> 
<embed src="UnsereProdukte.swf" quality="high" bgcolor="#ffffff" flashvars="scene=&frame=" width="700" height="1000" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 
</object>

Die Verlinkung geht leider immer noch nicht.

Was sagt das alles aus?
Geht nun PHP?
Geht nun PHP nicht?
Muss ich auf dem Server irgendwelche Einstellungen vornehmen?

Ich hoffe, dass ich noch Licht ins Dunkel bekomme.

Nur nicht den Mut verlieren.

Gruß
Haarentferner
 

Neue Beiträge

Zurück