Flash Animation tauschen im Logo/Header

  • Hallo in die Runde,

    ich würde gerne auf jeder Seite eine andere Flashanimation im Header/Logo anzeigen lassen. Ähnlich wie der unter folgendem Link beschriebene Grafiktausch Unterschiedliche Headergrafiken möglich?

    Gibt es für den Tausch der Flashanimation bereits ein Skript?

    Besten Dank im Voraus - Dagmar

  • Hallo Dagmar,

    grundsätzlich kann das Skript auch für Flash-Animationen benutzt werden. Du musst nur den Grafikteil abändern und durch das SWF ersetzen. Probier mal dies aus (ist aber ungetestet!):

    <script>
    URL=self.location.href;
    if (URL.lastIndexOf("-1'>\\")>-1) Start=URL.lastIndexOf("\\");
    else if (URL.lastIndexOf("/")>-1) Start=URL.lastIndexOf("/");
    Ende=URL.length;
    Seite=URL.substring(Start+1,Ende-5); //Seite ohne Endung ".html"
    URLSwf="_media/swf/"+Seite+".swf"
    Gesamtzeile='<script type="text/javascript">var so = new SWFObject("'+URLSwf+'","flash","980","272","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");</script>';
    document.writeln(Gesamtzeile);
    </script>


    Du musst jene Zeile in der default.html, die die Info bezüglich des Flash-Logos erhält, durch den Code austauschen bzw. die Variable "Gesamtzeile" muss der ursprünglichen Flash-Logo-Informationen entsprechen.

    Das Script ist so ausgelegt, dass der Dateiname ermittelt wird und die Flash-Datei mit geleichen Namen und der Endung .swf (aus dem Verzeichnis _/media/swf geladen wird (der Pfad kann aber auch geändert werden).
    Wichtig ist, dass du nun für jede Seite auch eine Flash-Datei hinterlegst!!!!

    Man könnte den Code auch abändern, dass er nur auf Seiten reagiert, die in ihrem Namen eine Kennzeichnung aufweisen - hat aber den Nachteil, dass eine Datei wie index.html oder default.html händisch gewartet werden müsste, da diese unbedingt so heißen muss, sonst würde keine Startseite angezeigt.

    Bitte beachte auch, dass die oben angeführten Parameter 980 und 272 die Breite und Höhe sind und entsprechend deiner Vorlage noch geändert werden müssen.


    Natürlich braucht man HTML- und JavaScript-Kenntnisse für das Verändern der Vorlagen - und wie gesagt, dass Skript ist nicht getestet!

    Gruß Robert

  • Hallo Ronny,

    ich glaube ich bin ganz dicht dran, habe jetzt aber ziemlich alle Varianten ausprobiert ...

    Einleitung liegt nur der Form halber bei
    <div id="header">

    <$ if "#text(logo-format)" = "flash" then $><$ dim filetype : if Context.Scope.CurrentPage.FileType <> "" then : filetype=Context.Scope.CurrentPage.FileType : else : filetype=".html" : end if $>
    <script type="text/javascript" src="../_media/swfobject.js"></script>

    <div id="flashcontent"><p>You need to upgrade your Flash Player.<br />Click <a href="<$=Context.Scope.CurrentPage.FileName$><$=filetype$>?detectflash=false">here</a>.</p></div>


    Mit den folgenden zwei Zeilen wird eine Flashanimation im Titel angezeigt, aber eben immer die gleiche:

    <script type="text/javascript">var so = new SWFObject("#text(logo-flash)","flash","#text(logo-flash-width)","#text(logo-flash-height)","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");</script>

    Mit diesen Zeilen bringt er keine Fehlermeldung aber im Quelltext der ausgegebenen Seite sieht man, dass die URLSwf durch nichts ersetzt wird, sondern einfach so stehen bleibt. Beim obigen Quelltext wird #text(logo-flash) durch "media/files/das-team.swf" ersetzt. deshalb habe ich auch versucht im folgenden Script URLSwf durch diesen Pfad zu ersetzen aber dann wird auch .swf Datei nicht angezeigt.

    <script>
    URL=self.location.href;
    if (URL.lastIndexOf("-1'>\\")>-1) Start=URL.lastIndexOf("\\");
    else if (URL.lastIndexOf("/")>-1) Start=URL.lastIndexOf("/");
    Ende=URL.length;
    Seite=URL.substring(Start+1,Ende-5); //Seite ohne Endung ".html"
    URLSwf="../_media/swf/"+Seite+".swf"
    Gesamtzeile='var so = new SWFObject("URLSwf","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");
    document.write(Gesamtzeile);'
    </script>

    alternativ:
    URLSwf="media/files/"+Seite+".swf"

    Ich bin gar nicht sicher in welchen Ordner er zugreift und habe verschiedene Pfade getestet. Aber mit dem obigen Script findet er nichts.

    Ich habe auch URLSwf in der Gesamtzeile durch den echten Pfad ersetzt - geht nicht. Parallel dazu habe ich mich immer wieder versichert, dass Flash mit der ersten Variante noch immer funktioniert und habe alles am Rechner und Online ausprobiert.

    Vielleicht springt dir den Fehler ins Auge.

    Tausend Dank im Voraus.
    Dagmar

  • Hallo,

    Du musst den Eintrag (der vom Programm mit den Platzhaltern # befüllt wird):

    <script type="text/javascript">var so = new SWFObject("#text(logo-flash)","flash","#text(logo-flash-width)","#text(logo-flash-height)","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");</script>


    gegen:

    <script type="text/javascript">
    URL=self.location.href;
    if (URL.lastIndexOf("\\")>-1) Start=URL.lastIndexOf("\\");
    else if (URL.lastIndexOf("/")>-1) Start=URL.lastIndexOf("/");
    Ende=URL.length;
    Seite=URL.substring(Start+1,Ende-5); //Seite ohne Endung ".html"
    URLSwf="../media/files/"+Seite+".swf"
    Gesamtzeile='var so = new SWFObject("URLSwf","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");'
    document.write(Gesamtzeile);
    </script>

    austauschen!

    Deine Flashanimationen müssen:

    a) genauso heißen wie die HTML-Datei (nur mit Endung swf statt html)

    b) für jede Seite MUSS eine Flash-Datei vorliegen und

    c) sich im Ordner media/files (den du händisch anlegen musst) befinden


    Anscheinend haben sich beim Bearbeiten oder Kopieren vom Skript ein paar " Fehler eingeschlichen. Die Variable Gesamtzeile muss mit ' beginnen und auch mit ' enden. Bei document.write(Gesamtzeile); darf am Ende kein ' stehen, da sonst der Befehl nicht in das Dokument geschrieben wird und dann natürlich auch kein Flash erscheint und auch if (URL.lastIndexOf("\\")>-1) Start=URL.lastIndexOf("\\");
    hatte einen kleinen >-1 Fehler.

    Gruß Robert

  • Hallo ROBERT (sorry ;))

    vielen Dank für deine Hilfe. Ja es hatten sich viele Fehler eingeschlichen. Diese hatten aber keine Fehlermeldung verursacht. Erst jetzt beim Überarbeiten wird die letzte Seite immer als Fehlerhafter Code bei der Darstellung in ZETA ausgewiesen und zwar die rote Zeile ab 'var

    All die anderen Anmerkungen von dir hatte ich so eingestellt ... Ordner mit das-team.swf und index.swf ... die früheren skripte waren auskommentiert und wurden nur testweise verwendet.

    Vielen Dank im Voraus - Dagmar

    <script type="text/javascript">
    URL=self.location.href;
    if (URL.lastIndexOf("-1'>\\")>-1) Start=URL.lastIndexOf("\\");
    else if (URL.lastIndexOf("/")>-1) Start=URL.lastIndexOf("/");
    Ende=URL.length;
    Seite=URL.substring(Start+1,Ende-5); //Seite ohne Endung ".html"
    URLSwf="../media/files/"+Seite+".swf"
    Gesamtzeile='var so = new SWFObject ("URLSwf","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");'
    document.write(Gesamtzeile);
    </script>

  • Hallo Dagmar,

    es scheint wieder das Hochkomma in der Zeile schuld zu sein:

    Gesamtzeile='var so = new SWFObject ("'+URLSwf+'","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");'

    Achtung: es befinden sich bei URLSwf zwei verschiedene Hochkommas hintereinander! Ich hoffe es passt nun.

    Gruß Robert 

  • Hallo Robert,

    vielen Dank für deinen Support - ich bin schon ganz glücklich, dass Problem 1 gelöst ist und der Pfad umgesetzt wird - s. u. Text Bildschirmausgabe...

    var so = new SWFObject ("../media/files/index.html?page-id=424&rnd=fedef7ad-527a-4e49-8afe-497c4754d01d&rnd=bb592229-b20b-465d-a994-54abe1f.swf","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");

    dafür ist Problem 2, dass die URL Endung nicht von .html in .swf geändert wird. Hier nochmals der aktuelle Quellcode:

    <script type="text/javascript">

    URL=self.location.href;
    if (URL.lastIndexOf("-1'>\\")>-1) Start=URL.lastIndexOf("\\");
    else if (URL.lastIndexOf("/")>-1) Start=URL.lastIndexOf("/");
    Ende=URL.length;
    Seite=URL.substring(Start+1,Ende-5); //Seite ohne Endung ".html"

    URLSwf="../media/files/"+Seite+".swf";
    Gesamtzeile='var so = new SWFObject ("'+URLSwf+'","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");'
    document.write(Gesamtzeile);
    </script>

    Ich bin hier selbst auf der Suche mit meinem dicken JavaSkript Schmöker, aber du bist sicher schneller - VIELEN DANK! Dagmar

  • Hallo Dagmar,

    der Pfad wird anscheinend richtig umgesetzt, nur hängt an der html noch ein Rattenschchwanz (ab dem ?....) - es ist ja die Endung.swf vorhanden. Ich vermute dies könnte mit ZP10 und der Vorschau zusammenhängen, bis ZP9 war die Vorschau und die Ausgabe ident.

    Erstelle mal dein Projekt, wechsle auf den Ausgabeordner und ruf von dort die index.html Seite auf.

    Gruß Robert

  • Hallo Robert,

    du hast Recht, nach dem Veröffentlichen schreibt er den korrekten Pfad, aber er findet dennoch die Datei nicht, oder falls er sie findet kann er das Flash nicht abspielen. Die .swf Dateien liegen im Ordner media/files, wie ich über Filezilla sehe.

    Ich habe den Pfad auch mit ../media /media und media getestet... tut nicht.

    Wenn ich wieder umkommentiere auf den ursprünglichen Quellcode (s. u. wird er bei mir hier grün angezeigt), dann läuft die Animation, aber eben immer die gleiche.

    Hier die Bildschirmausgabe:


    You need to upgrade your Flash Player.
    Click here.

    var so = new SWFObject ("media/files/index.swf","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");


    Hier der Quellcode:


    <divid="header">
    <scripttype="text/javascript" src="_media/swfobject.js"></script>


    <divid="flashcontent"><p>You need to upgrade your Flash Player.<br />Click <ahref="index.html?detectflash=false">here</a>.</p></div>


    <!--script type="text/javascript">var so = new SWFObject("media/files/index.swf","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");</script-->


    <scripttype="text/javascript">


    URL=self.location.href;


    if (URL.lastIndexOf("\\")>-1) Start=URL.lastIndexOf("\\");


    else if (URL.lastIndexOf("/")>-1) Start=URL.lastIndexOf("/");


    Ende=URL.length;


    Seite=URL.substring(Start+1,Ende-5); //Seite ohne Endung ".html"


    URLSwf="/media/files/"+Seite+".swf";


    Gesamtzeile='var so = new SWFObject ("'+URLSwf+'","flash","1000","200","7","#ffffff");so.addParam("quality","high");so.addParam("wmode","transparent");so.write("flashcontent");'


    document.write(Gesamtzeile);


    </script>

    Du bist ein Geduldsengel ;) vielen Dank!

  • Hallo,

    anscheinend scheitert es leider am swfobject - dieses akzeptiert keine Variablen. Zumindest haben dies meine Tests ergeben.
    Alternative Lösung: einige Flashdateien erstellen, eins Script schreiben dass dann den entsprechenden String zum Aufruf der Flashdateien startet.


    Gruß Robert

  • Hallo Dagmar,

    ich habe dir eine andere Lösung gebastelt. Du bekommst nun ein Skript, welches nach den ersten 5 Buchstaben im Namen der HTML-Datei sucht. 5 deswegen, weil index.html fünf Zeichen lang ist,

    Du musst für Seiten die das gleiche Flash-Logo haben immer die gleichen fünf Anfangszeichen setzen (über Eigenschaften bei den Seiten). Du musst das Skript wieder an der gleichen Stelle platzieren bzw. den Teil von mir mit dem Teil der Vorlage default.html austauschen (bitte etwas Detektivarbeit leisten und die beiden Texte vergleichen).

    Gruß Robert

  • Hallo Robert, du bist unglaublich, vielen Dank für das Skript. Könntest du es kurz noch mit Angabe zum Dateiformat abspeichern, da bei mir nach dem entzippen nur Hyroglyphen ankommen. Vielen Dank Dagmar

  • Hallo Dagmar,

    du musst die Datei mittels Rechte-Maus-Klick runterladen (ZIP-Datei) und dann entpacken. Ich habe es mit 7Zip-gepackt, aber es müsste sich auch mit dem Windows eigenen integrierten ZIP öffnen lassen. Du musst die ZIP-Datei anklicken und dann entzippen.

    Gruß Robert

  • Hallo Robert,

    ich habe die Datei mit Winzip entpackt, aber sie hat keine Formatendung wie .txt oder .html ... arbeitest du auf Apple?
    In welchem Format hast du die Datei erstellt?

    Schöne Grüße Dagmar

  • Hallo Dagmar,

    anscheinend ist die Datei beim Upload beschädigt worden. Ich versuch nochmals.


    Bitte lade die Datei test.txt runter und nenne sie dann auf test.zip um. Anscheinend zerstört die Online-Forums-Software zip-Dateien. Sie waren auch bei mir zweimal defekt, erst die Endung txt lies die Datei unberührt.


    Gruß Robert

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!