Adobe Flash Flash-Navigation aus HTML steuern?

mcintyre

mcintyre

Aktives Mitglied
Thread Starter
Dabei seit
10.12.2003
Beiträge
1.177
Reaktionspunkte
2
Hallo Zusammen!

Ich möchte ein Frameset erstellen (drei Frames übereinander, in der Mitte ist die Navigation mit Flash).

Nun ist es aber möglich, die Seiten im unteren Frame leider auch über HTML anzusteuern. Daher möchte ich, wenn eine bestimmte HTML-Seite (im unteren Frame) aufgerufen wird, die Flash-Naviagtion entsprechend ändern.

Sprich: ich möchte aus dem HTML-Dokument den Flash-Film steuern. Nix wildes, nur einen bestimmten Punkt des Films ansteuern.

Ich habe natürlich schon in einigen Foren nach einem Tut gesucht, aber das funktioniert leider irgendwie nicht. SO schwer kann das aber doch nicht sein, oder?

Gruss und schonmal DANKE!

mcintyre

PS: Yves, Du weisst doch bestimmt wie das geht...;)
 
PS: Yves, Du weisst doch bestimmt wie das geht...;)
 

Na klar man.

Mit dem FlashVars Objekt ;)


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="100" height="100">

<param name="movie" value="datei.swf?varname=wert"> 
<param name="quality" value="high"> 

<embed src="datei.swf" flashvars="varname=wert" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="100" height="100">
</embed>

</object>


Das <embed> brauchst du noch für alte Browser, auch wenn die W3C Gurus sagen, es sei nicht konform.

Variablen kannst du der SWF also einfach mit ?varname=wert (an den Dateinamen angehängt) mitgeben oder im <embed> Container dem Flashvars Objekt zuordnen.

Verfügbar sind die Variablen dann in der entsprechenden SWF auf level0.

Hier wäre dann zb

_level0.varname==wert;



Und dann kannst du mittels switch() in Flash die entsprechenden Aktionen für die entsprechenden Varnamen abhandeln.

Zb
PHP:
//actionscript

switch(_level0.varname)
{
case home:
this.gotoAndStop('home');
break;
case contact:
this.gotoAndStop('contact');
break;
//etc.
}


Allerdings musst du für jeden Menüwechseln den Frame mit der SWF und dem entsprechenden Wert neuladen. Wenn du das ganze statisch programmierst, heisst das, für jeden Punkt eine HTML Datei.

Hier würde sich dann PHP anbieten.


Soweit klar?


Liebe Grüße

Yves
 
Erstmal Danke für die Mühe!

Ich dachte da eher an eine JS Lösung die ich einfach in die entsprechende Seite einbaue. Ist das nicht einfacher?

Gruss

mcintyre
 
Original geschrieben von mcintyre
Erstmal Danke für die Mühe!

Ich dachte da eher an eine JS Lösung die ich einfach in die entsprechende Seite einbaue. Ist das nicht einfacher?

Gruss

mcintyre
&nbsp;

Da hast du mich erwischt :D

Prinzipiell mag ich keine Hybridseiten und beschäftige mich daher auch fast gar nicht mit Variablenaustausch zwischen HTML/JS und AS.

Bisher brauchte ich das nur ein einziges Mal, da ich ein großes Projekt, das quasi 5 Seiten in einer enthielt und über verschiedene Domains erreichbar war, realisiert habe.

Ich poste dir mal den Code dazu, vielleicht kannst du dir da etwas herausziehen.

PHP:
<?php
require_once('cms/config.inc.php');
switch($_SERVER['HTTP_HOST'])
    {
    case 'www.XXX.de':
        $additional='XXX.';
        $selected='XXX';
        $favicon=$favicon['0'];
    break;
    case 'www.XXX1.com':
        $additional='XXX1.';
        $selected='XXX1';
        $favicon=$favicon['1'];
    break;
//etc., spezifische Daten aus Diskretion gelöscht
    }
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta http-equiv="expires" content="7">
<meta name="robots" content="all">
<meta name="revisit-after" content="7 days">
<meta name="author" content="XXX">
<meta name="publisher" content="XXX">
<meta name="copyright" Content="XXX">
<title>XXX | <?php echo $additional; ?></title>
<link rel="shortcut icon" href="cms/img/<?php echo $favicon; ?>">
<link rel="stylesheet" type="text/css" href="cms/default.css">
</head>
<body>
<table width="100%" height="100%">
    <tr>
        <td align="center" valign="middle">
            <table>
                <tr>
                    <td>
                        <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="954" height="730">
                        <?php
                        echo'
                            <param name="movie" value="home.swf?selected='.$selected.'"> 
                            <param name="quality" value="high"> 
                            <embed src="home.swf" flashvars="selected='.$selected.'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="954" height="730">
                            </embed>
                        ';
                        ?>
                        </object> 
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table> 
</body>
</html>

Ansonsten schau mal hier oder hier.

Bokel oder Ludabruda bzw. Sebastian Wichmann oder Carsten Ennulat können dir sicherlich dabei helfen. Die Jungs sind Gold wert!


Liebe Grüße

Yves
 
Mir fällt grad ein… wenn du ein wenig in Javascript fit bist, kannst du auch eine Funktion definieren. Und dann einfach der Funktion aus Flash entsprechende Funktionsparameter mitgeben.

zb.

on(release)
{
getURL("javascript:ChooseSWF("name der datei.swf");");
}


Und die Funktion ChooseSWF() müsste dann im Head des HTML Dokuments entsprechend definiert werden.

Man könnte da doch eventuell eine Verkettung von IF/ELSE oder einen switch(); basteln, der dann mit document.write(); den entsprechenden Code ausgibt.



Liebe Grüße

Yves
 
Besten Dank für Deine Hilfe!

Ich werde das mal testen. Muss aber vorher noch einige andere Änderungen einbauen. Besser würde es mir gefallen, wenn ich das gar nicht einbauen müsste. Ich halte die Idee grundsätzlich für Schwachsinn, da dadurch das ursprüngliche Navigationskonzept nicht mehr stimmt. Aber des Kunden Wunsch.....

Gruss

mcintyre
 
Des Kunden Wunsch…

ich sitze gerade an einer Navigationstruktur in SQL für Flash mit „Sage und Schreibe“ 25 Ebenen Tiefe.

Da hilft kein Rat und kein Flehen, der Kunde ist knöddelig… äh König ;)


Liebe Grüße

Yves
 
Zurück
Oben Unten