1unitedpower: Eingebundene swf soll erst bei Klick starten

Beitrag lesen

Doch weder mit autoplay="false" noch mit autostart="false" sind die zum Schweigen zu bringen. Wie ist es richtig?

Ich rate dazu die swf-Dateien durch ein offenes Webformat zu ersetzen, dann kannst du das <audio>-Element zum Abspielen der Datein benutzen.

Das autoplay-Attribut existiert nämlich nur für <video>- und <audio>-Elemente, nicht für <object>. Du könntest allerdings das data-Attribut des <object>-Elements anfänglich weg lassen und erst auf die richtige Quelle setzen, sobald der Sound abgespielt werden soll.

Eine andere Möglichkeit bestünde darin, das <object>-Element mit einem <template>-Element zu umschließen. Vereinfacht ausgedrückt sind Nachfahren-Elemente von <template>s inaktiv, bis sie mit JavaScript an eine Stelle verschoben werden, die nicht mehr von <template>-Elementen umschlossen wird. Sobald das <object>-Element also verschoben wird, sollte der Sound abgespielt werden.

Bei beiden Methoden ist die sfw-Datei nicht von Anfang geladen und muss erst noch runtergeladen werden, bevor der Sound abgespielt wird. Wenn man den Download erst beginnt, wenn der Nutzer klickt, dann kann das unerwünschte Wartezeiten zur Folge haben. Um das zu vermeiden, kannst du dem Browser mitteilen, dass er die Datei vorladen soll:

<link rel="prefetch" href="ihgitt-eine-flash-datei.swf">