SWFObject wird schon seit einer Weile offiziell von Adobe empfohlen, um Flashinhalte in HTML einzubetten. Das Open Source Projekt SWFObject hätte eigentlich schon mit CS4 in Flash integriert werden sollen, was allerdings ausblieb.

Mit CS5 ist es nun endlich soweit. Allerdings ist die Option für SWFObject sehr versteckt. Hier eine kurze Erklärung, wie man HTML-Seiten mit SWFObject direkt aus Flash veröffentlicht.

Standard-Veröffentlichung (ohne SWFObject)

Im Vergleich zur Vorgängerversion fällt auf, dass man beim Exportieren kein nerviges Adobe-Skript (AC_RunActiveContent.js) erhält. Stattdessen wird der Flashinhalt einzig und allein über HTML-Elemente integriert. Somit hat man lediglich zwei Files, die .html-Datei und die .swf-Datei.

HTML:
  1. <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="standard-cs5" align="middle">
  2.                 <param name="movie" value="standard-cs5.swf" />
  3.                 <param name="quality" value="high" />
  4.                 <param name="bgcolor" value="#4a3a5e" />
  5.                 <param name="play" value="true" />
  6.                 <param name="loop" value="true" />
  7.                 <param name="wmode" value="window" />
  8.                 <param name="scale" value="showall" />
  9.                 <param name="menu" value="true" />
  10.                 <param name="devicefont" value="false" />
  11.                 <param name="salign" value="" />
  12.                 <param name="allowScriptAccess" value="sameDomain" />
  13.                 <!--[if !IE]>-->
  14.                 <object type="application/x-shockwave-flash" data="standard-cs5.swf" width="550" height="400">
  15.                     <param name="movie" value="standard-cs5.swf" />
  16.                     <param name="quality" value="high" />
  17.                     <param name="bgcolor" value="#4a3a5e" />
  18.                     <param name="play" value="true" />
  19.                     <param name="loop" value="true" />
  20.                     <param name="wmode" value="window" />
  21.                     <param name="scale" value="showall" />
  22.                     <param name="menu" value="true" />
  23.                     <param name="devicefont" value="false" />
  24.                     <param name="salign" value="" />
  25.                     <param name="allowScriptAccess" value="sameDomain" />
  26.                 <!--<![endif]-->
  27.                     <a href="http://www.adobe.com/go/getflash">
  28.                         <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" />
  29.                     </a>
  30.                 <!--[if !IE]>-->
  31.                 </object>
  32.                 <!--<![endif]-->
  33.             </object>

Ich habe ein entsprechendes Beispiel hier abgelegt: Standard CS5 Export

Veröffentlichung mit SWFObject

Der Trick, damit SWFObject verwendet wird, ist folgender: Man muss die Checkbox „Flash-Version feststellen” aktivieren. Dann wird ein HTML-Template samt swfobject.js exportiert. Zum Einsatz kommt die Methode „Dynamic Publishing” ( siehe Tutorial SWFObject zum Einbetten von Flash (.swf) in HTML).

Allerdings sollte man noch etwas aufräumen und die Kommentare entfernen, bevor man dies ins Netz stellt und die drei Files (.swf, .html, .js) hochlädt.

HTML:
  1. <script type="text/javascript">
  2.             <!-- Adobe empfiehlt Entwicklern, SWFObject2 für die Erkennung von Flash Player zu verwenden. -->
  3.             <!-- Weitere Informationen finden Sie auf der SWFObject-Seite unter Google-Code (http://code.google.com/p/swfobject/). -->
  4.             <!-- Informationen sind auch verfügbar in der Adobe Developer Connection unter "Detecting Flash Player versions and embedding SWF files with SWFObject 2" -->
  5.             <!-- Auf die erforderliche Mindestversion von Flash Player einstellen oder auf 0, um keine Versionserkennung auszuführen -->
  6.             var swfVersionStr = "10.0.0";
  7.             <!-- xiSwfUrlStr kann verwendet werden, um eine Express-SWF-Installationsdatei zu erstellen. -->
  8.             var xiSwfUrlStr = "";
  9.             var flashvars = {};
  10.             var params = {};
  11.             params.quality = "high";
  12.             params.bgcolor = "#4a3a5e";
  13.             params.play = "true";
  14.             params.loop = "true";
  15.             params.wmode = "window";
  16.             params.scale = "showall";
  17.             params.menu = "true";
  18.             params.devicefont = "false";
  19.             params.salign = "";
  20.             params.allowscriptaccess = "sameDomain";
  21.             var attributes = {};
  22.             attributes.id = "swfobject-cs5";
  23.             attributes.name = "swfobject-cs5";
  24.             attributes.align = "middle";
  25.             swfobject.createCSS("html", "height:100%; background-color: #4a3a5e;");
  26.             swfobject.createCSS("body", "margin:0; padding:0; overflow:hidden; height:100%;");
  27.             swfobject.embedSWF(
  28.                 "swfobject-cs5.swf", "flashContent",
  29.                 "550", "400",
  30.                 swfVersionStr, xiSwfUrlStr,
  31.                 flashvars, params, attributes);
  32.         </script>

Auch hier ein passendes Beispiel: SWFObject CS5 Export