Apophis: Kurzes weißes Flackern wegen Javascript

Hallo,

ich habe auf meiner Seite einen Audio-Player (http://wpaudioplayer.com/standalone/) via Javascript und .swf eingebunden.

Das Ganze sieht grob wie folgt aus:

<head>  
<script type="text/javascript" src="audio-player/audio-player.js"></script>  
<script type="text/javascript">  
AudioPlayer.setup("audio-player/player.swf", {  
width: 295,  
initialvolume: 100,  
transparentpagebg: "yes",  
})  
</script>  
</head>  
<body>  
<p id="audioplayer_beispiel"><a href="audio/beispiel.mp3" target="_blank"></p>  
<script type="text/javascript">  
AudioPlayer.embed("audioplayer_beispiel", {  
soundFile: "audio/beispiel.mp3",  
titles: "Beispiel-Title",  
artists: "Beispiel-Artist"  
});  
</script>  
</body>

Das Problem ist: Beim Neuladen der Seite (oder öffnen eines neuen Menüpunkts) entsteht ein kurzes weißes Flackern/Aufblitzen, sprich der rohe weiße Hintergrund wird für einen kleinen Moment angezeigt.

Entferne ich allerdings den Javascript-Code aus dem Header, verschwindet auch das Flackern. Es hängt also unmittelbar damit zusammen.

Frage: Wie kriege ich dieses nervige Flackern?

Beste Dank im Vorraus!

  1. Hi there,

    Frage: Wie kriege ich dieses nervige Flackern?

    Offenbar, indem Du den Javascriptcode einbaust...

    1. Danke, aber ich meinte natürlich, wie ich dieses Flackern wegbekomme.

      Gibt es eine Möglichkeit das Ganze ohne Javascript zu realisieren? Oder Javascript verzögert zu laden? Also, dass sich erst die Seite aufbaut und dann das Javascript geladen wird, so dass dieses Blinken/Flackern nicht auffällt?

      1. Hallo,

        Danke, aber ich meinte natürlich, wie ich dieses Flackern wegbekomme.

        dachte ich mir schon, abwohl ich bei deiner Schlussfrage schon grinsen musste:

        Frage: Wie kriege ich dieses nervige Flackern?

        Gibt es eine Möglichkeit das Ganze ohne Javascript zu realisieren?

        Natürlich: Schreib das Flash-Objekt, das durch das Script erzeugt wird, einfach statisch in den HTML-Code.

        Oder Javascript verzögert zu laden?

        Nicht zu laden, aber auszuführen.

        Also, dass sich erst die Seite aufbaut und dann das Javascript geladen wird, so dass dieses Blinken/Flackern nicht auffällt?

        Nein, das Flackern kommt ja wahrscheinlich gerade dadurch, dass das Javascript erst verzögert ausgeführt wird, so dass im ersten Moment beim Laden der Seite noch die Hintergrundfarbe zu sehen ist - und die ist bei den meisten Browsern per Default auf Weiß eingestellt. Du kannst natürlich die Hintergrundfarbe von body auf einen unauffälligen Ton setzen, der auch mit dem Flash-Objekt etwa übereinstimmt. Dann fällt's weniger auf.

        So long,
         Martin

        --
        Die letzten Worte des Helden:
        Feigling! Traust dich ja doch nicht!
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Natürlich: Schreib das Flash-Objekt, das durch das Script erzeugt wird, einfach statisch in den HTML-Code.

          Das habe ich bereits probiert. Das klappt im Grunde auch, allerdings fehlt mir dann bei dem Audio-Player die Möglichkeit zur Konfiguration. Vor allem ist es mir wichtig, die Länge/Breite des Players einzustellen. Über "width" in <object> geht das leider nicht. Gibt's da eine andere Möglichkeit?

          Nicht zu laden, aber auszuführen.

          Danke, ich werde damit mal ein wenig herumexperimentieren...

          Nein, das Flackern kommt ja wahrscheinlich gerade dadurch, dass das Javascript erst verzögert ausgeführt wird, so dass im ersten Moment beim Laden der Seite noch die Hintergrundfarbe zu sehen ist - und die ist bei den meisten Browsern per Default auf Weiß eingestellt. Du kannst natürlich die Hintergrundfarbe von body auf einen unauffälligen Ton setzen, der auch mit dem Flash-Objekt etwa übereinstimmt. Dann fällt's weniger auf.

          Ja, das habe ich vorerst bereits gemacht. Ist aber aufgrund des restlichen fehlenden Designs auch nur suboptimal. Da "flackerts" natürlich dann auch ein klein wenig.

          Danke dir schon mal :-)

      2. Hi there,

        Danke, aber ich meinte natürlich, wie ich dieses Flackern wegbekomme.

        Na sowas;)

        Gibt es eine Möglichkeit das Ganze ohne Javascript zu realisieren? Oder Javascript verzögert zu laden? Also, dass sich erst die Seite aufbaut und dann das Javascript geladen wird, so dass dieses Blinken/Flackern nicht auffällt?

        Naja, offenbar benötigt Dein Flashplayer Javascript zum Steuern. Das beantwortet Deine Frage dahingehend. Es gibt aber sehr wohl Player, die kein Javascript benötigen. Ausserdem kann Javascript auch später geladen werden, sei es durch Verwenden des onload-Eventhandlers im body-Tag (oder in anderer Notation einfach bezogen auf das body-Element) oder Du lässt den Javacript-Block einfach erst am Ende der Seite folgen.
        Am einfachsten wäre es aber vermutlich, wie Der Martin schon geschrieben hat, den "nackten" Hintergrund dementsprechend anzupassen (soferne das möglich ist)...