Zur Navigation

Flash valide einbinden

1 lava

Hallo, ich habe einen Quellcode von einer Vorgängerin übernommen und will ihn nun valide machen. Ist mir auch überall gelungen, außer bei den Flash-Bannern. Dort sagt der Validator "Many Flash authoring tools recommend, or enforce, the usage of the <embed> element to include flash animations or applications in Web pages. <embed>, however, was never part of any standardized version of HTML, and this practice produces invalid markup. There are many techniques to incorporate flash in valid web pages. One of the most famous is the Flash Satay technique." Diese Technik habe ich nun nachgelesen (http://www.alistapart.com/articles/flashsatay), aber ich verstehe das nicht ganz - bzw. ich glaube zu verstehen, daß ich da irgendetwas bei der Flash-Erstellung selbst beachten muß. Da mir aber nur der Quellcode und die bereits erstellte Flash-Datei vorliegt, kann ich das gar nicht anwenden, oder? Welche anderen Möglichkeiten habe ich?

11.05.2009 14:47

2 Rudy

Nimm SWFObject. Würde ich generell dazu raten.

11.05.2009 16:00

3 lava

Vielen Dank für den Tip. Die Seite http://www.webmasterpro.de/coding/article/flash-mit-swfobject-valide-einbinden.html erklärt ja auch eigentlich ganz gut, wie das geht - aber leider noch nicht gut genug für mich. Zum einen weiß ich nicht genau, wie ich aus dem bisherigen HTML-Code

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,124,0" width="285" height="141" style="float: left; position: relative; top: 1px;">
<param name="quality" value="high" />
<param name="scale" value="exactfit" />
<param name="menu" value="false" />
<param name="bgcolor" value="#FFFFFF" />
<param name="src" value="images/stories/banner/werbebanner_startseite/090414_referenzen.swf" /><embed scale="exactfit" src="/images/stories/banner/werbebanner_startseite/090414_referenzen.swf" quality="high" bgcolor="#FFFFFF" type="application/x-shockwave-flash" width="285" height="141" menu="false" style="float: left; position: relative; top: 1px;"></embed>
</object>

die entsprechenden Werte rauskriege (probiert habe ich es so:

<div id="flashcontent">Hier mein Alternativ-Text</div>

<script type="text/javascript"><!--
var so= new SWFObject("images/stories/banner/werbebanner_startseite_090414_referenzen.swf","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000","285","141","9","#FFFFFF"); 
so.write("flashcontent");
// --></script>


aber wird dann nur der Alternativ-Text angezeigt; vermutlich hab ich die id und die Version oben falsch ausgelesen!? ich kenne mich mit Flash-Einbindungen nämlich auch in der embed-Variante leider nicht aus!)

und zum anderen weiß ich auch nicht, ob ich im <head></head>-Bereich das richtige gemacht hab und dazu passend auf dem Server die richtigen Dateien zur Verfügung gestellt habe.
Reingeschrieben hab ich in den Head-Bereich:
<script type="text/javascript" src="/templates/includes/swfobject.js"></script>
und im entsprechenden Verzeichnis includes wirklich NUR die swfobject.js reingeladen - in der für SWFObject heruntergeladenen Zip-Datei gibt es aber ja auch noch Dateien wie expressInstall.as und expressInstall.fla, hätte ich mit denen auch noch etwas machen müssen???

18.05.2009 11:59

4 Rudy

Sorry die später Antwort, hatte letztens leider wenig Zeit reinzuschauen. Alles, was Du brauchen solltest, steht sehr gut in der Wiki von SWFObject unter "dynamic publishing". Ich hoffe doch, Du hast von dort die aktuelle Version verwendet (zu diesem Zeitpunkt die 2.1)?

Davon ausgehend sollte bei Deinem bestehenden Markup, dem div#flashcontent, das mit folgendem Code im head-Bereich funktionieren:

<script type="text/javascript" src="/templates/includes/swfobject.js"></script>
<script type="text/javascript">
  swfobject.embedSWF("/images/stories/banner/werbebanner_startseite_090414_referenzen.swf", "flashcontent", "285", "141", "9.0.0");
</script>

Expressinstall ist ein Hilfsflash, welches bei Bedarf die aktuellere Version des Flash-Plugins beim Client installieren kann (Du gibst die gewünschte Mindestversion 9.0.0 ja an). Davon kopierst Du am besten die .swf-Datei in den gleichen Ordner, wo auch die swfobject.js liegt. So wie das Beispiel hier ist, brauchst Du es aber nicht. .fla und .as sind Quelldateien, die musst Du nicht mitkopieren. Du brauchst nur die Datei swfobject.js und, falls Du es verwendest, expressInstall.swf.

Die clsid vergiss ganz schnell, die hat mit der id für swfobject nichts zu tun. Genau die macht auf verschiedenen Browsern/Betriebsystemen Probleme. Eine schreckliche Idee von MS, diese in das HTML-Markup einzuführen. Im Beispiel oberhalb bezieht sich der Parameter auf die id des divs, in die Du das Flash einbauen möchtest.

20.05.2009 01:44 | geändert: 20.05.2009 02:02

5 lava

Ich hab es jetzt in einer Testdatei geschafft, mit SWF-2 ein Flash-Objekt valide einzubinden. Dummerweise wird für die Webseite, um die es geht, ein Content-Management-System verwendet; und einige Contents sollen Flash-Objekte enthalten und andere nicht. Der head-Bereich befindet sich in der Template-Datei, also woanders als die Contents. Eigentlich soll jeder Redakteur die Contents bearbeiten können, aber nicht die Template-Datei (das soll nur der Admin können). Da bei der SWF-Methode aber ein script-Teil im head-Bereich verwendet wird, stoße ich hier auf Probleme -> oder gibt es dafür eine schlaue Lösung?

09.06.2009 15:17

... 1 Monat später ...

6 lava

Hallo, auch hier hab ich inzwischen eine Lösung. Das Problem bestand nicht darin, wo das script eingebunden wird, sondern der JCE-Editor meines Joomlas hat den eingegebenen Quellcode grundsätzlich zerhauen. Das konnte mit folgendem Plugin verhindert werden:
http://www.nonumber.nl/sourcerer?tab=Download

Leider haben die Versuche, es ohne Plugin zu lösen (erstmal in der JCE-Config das "clean HTML" auszuschalten und das "Javascript erlauben" einzuschalten und die Filterung auf die toleranteste Weise einzustellen) nichts geholfen - so ganz verstehe ich noch immer nicht wieso - sollte mir hier ein Joomla-Experte noch einen Hinweis geben können, wäre ich dankbar. LG, Lava

22.07.2009 13:09

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]