title: Looking for a way (javascript) to remove .swf when finished
body: <p>I have an .swf (but not the .fla file, so I couldn't work with ActionScript), and would like to fade that movie out once it have finished playing, so the div containing it gets empty (showing some HTML content).</p>
  
  <p>I think that using javascript (tweaking the special settings that Adobe outputs in the HTML file, when the movie is exported for example) it could be possible to give some kind of instruction to achieve this, but my knowdlegde in javascript/flash is rather elementary.</p>
  
  <p>This is the page code, with the default javascript, the markup, and the .swf (it's working at 100%).</p>
  
  <pre><code>&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;
  &lt;head&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /&gt;
  &lt;title&gt;Example&lt;/title&gt;
  &lt;script language="JavaScript" type="text/javascript"&gt;
  &lt;!--
  //v1.7
  // Flash Player Version Detection
  // Detect Client Browser type
  // Copyright 2005-2008 Adobe Systems Incorporated.  All rights reserved.
  var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
  var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
  var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
  function ControlVersion()
  {
      var version;
      var axo;
      var e;
      // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
      try {
          // version will be set for 7.X or greater players
          axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
          version = axo.GetVariable("$version");
      } catch (e) {
      }
      if (!version)
      {
          try {
              // version will be set for 6.X players only
              axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
  
              // installed player is some revision of 6.0
              // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
              // so we have to be careful. 
  
              // default to the first public version
              version = "WIN 6,0,21,0";
              // throws if AllowScripAccess does not exist (introduced in 6.0r47)     
              axo.AllowScriptAccess = "always";
              // safe to call for 6.0r47 or greater
              version = axo.GetVariable("$version");
          } catch (e) {
          }
      }
      if (!version)
      {
          try {
              // version will be set for 4.X or 5.X player
              axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
              version = axo.GetVariable("$version");
          } catch (e) {
          }
      }
      if (!version)
      {
          try {
              // version will be set for 3.X player
              axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
              version = "WIN 3,0,18,0";
          } catch (e) {
          }
      }
      if (!version)
      {
          try {
              // version will be set for 2.X player
              axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
              version = "WIN 2,0,0,11";
          } catch (e) {
              version = -1;
          }
      }
  
      return version;
  }
  // JavaScript helper required to detect Flash Player PlugIn version information
  function GetSwfVer(){
      // NS/Opera version &gt;= 3 check for Flash plugin in plugin array
      var flashVer = -1;
  
      if (navigator.plugins != null &amp;&amp; navigator.plugins.length &gt; 0) {
          if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
              var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
              var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
              var descArray = flashDescription.split(" ");
              var tempArrayMajor = descArray[2].split(".");           
              var versionMajor = tempArrayMajor[0];
              var versionMinor = tempArrayMajor[1];
              var versionRevision = descArray[3];
              if (versionRevision == "") {
                  versionRevision = descArray[4];
              }
              if (versionRevision[0] == "d") {
                  versionRevision = versionRevision.substring(1);
              } else if (versionRevision[0] == "r") {
                  versionRevision = versionRevision.substring(1);
                  if (versionRevision.indexOf("d") &gt; 0) {
                      versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                  }
              }
              var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
          }
      }
      // MSN/WebTV 2.6 supports Flash 4
      else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
      // WebTV 2.5 supports Flash 3
      else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
      // older WebTV supports Flash 2
      else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
      else if ( isIE &amp;&amp; isWin &amp;&amp; !isOpera ) {
          flashVer = ControlVersion();
      }   
      return flashVer;
  }
  // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
  function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
  {
      versionStr = GetSwfVer();
      if (versionStr == -1 ) {
          return false;
      } else if (versionStr != 0) {
          if(isIE &amp;&amp; isWin &amp;&amp; !isOpera) {
              // Given "WIN 2,0,0,11"
              tempArray         = versionStr.split(" ");  // ["WIN", "2,0,0,11"]
              tempString        = tempArray[1];           // "2,0,0,11"
              versionArray      = tempString.split(",");  // ['2', '0', '0', '11']
          } else {
              versionArray      = versionStr.split(".");
          }
          var versionMajor      = versionArray[0];
          var versionMinor      = versionArray[1];
          var versionRevision   = versionArray[2];
              // is the major.revision &gt;= requested major.revision AND the minor version &gt;= requested minor
          if (versionMajor &gt; parseFloat(reqMajorVer)) {
              return true;
          } else if (versionMajor == parseFloat(reqMajorVer)) {
              if (versionMinor &gt; parseFloat(reqMinorVer))
                  return true;
              else if (versionMinor == parseFloat(reqMinorVer)) {
                  if (versionRevision &gt;= parseFloat(reqRevision))
                      return true;
              }
          }
          return false;
      }
  }
  function AC_AddExtension(src, ext)
  {
    if (src.indexOf('?') != -1)
      return src.replace(/\?/, ext+'?'); 
    else
      return src + ext;
  }
  function AC_Generateobj(objAttrs, params, embedAttrs) 
  { 
    var str = '';
    if (isIE &amp;&amp; isWin &amp;&amp; !isOpera)
    {
      str += '&lt;object ';
      for (var i in objAttrs)
      {
        str += i + '="' + objAttrs[i] + '" ';
      }
      str += '&gt;';
      for (var i in params)
      {
        str += '&lt;param name="' + i + '" value="' + params[i] + '" /&gt; ';
      }
      str += '&lt;/object&gt;';
    }
    else
    {
      str += '&lt;embed ';
      for (var i in embedAttrs)
      {
        str += i + '="' + embedAttrs[i] + '" ';
      }
      str += '&gt; &lt;/embed&gt;';
    }
    document.write(str);
  }
  function AC_FL_RunContent(){
    var ret = 
      AC_GetArgs
      (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
       , "application/x-shockwave-flash"
      );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
  }
  function AC_SW_RunContent(){
    var ret = 
      AC_GetArgs
      (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
       , null
      );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
  }
  function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i=0; i &lt; args.length; i=i+2){
      var currArg = args[i].toLowerCase();    
      switch (currArg){   
        case "classid":
          break;
        case "pluginspage":
          ret.embedAttrs[args[i]] = args[i+1];
          break;
        case "src":
        case "movie": 
          args[i+1] = AC_AddExtension(args[i+1], ext);
          ret.embedAttrs["src"] = args[i+1];
          ret.params[srcParamName] = args[i+1];
          break;
        case "onafterupdate":
        case "onbeforeupdate":
        case "onblur":
        case "oncellchange":
        case "onclick":
        case "ondblclick":
        case "ondrag":
        case "ondragend":
        case "ondragenter":
        case "ondragleave":
        case "ondragover":
        case "ondrop":
        case "onfinish":
        case "onfocus":
        case "onhelp":
        case "onmousedown":
        case "onmouseup":
        case "onmouseover":
        case "onmousemove":
        case "onmouseout":
        case "onkeypress":
        case "onkeydown":
        case "onkeyup":
        case "onload":
        case "onlosecapture":
        case "onpropertychange":
        case "onreadystatechange":
        case "onrowsdelete":
        case "onrowenter":
        case "onrowexit":
        case "onrowsinserted":
        case "onstart":
        case "onscroll":
        case "onbeforeeditfocus":
        case "onactivate":
        case "onbeforedeactivate":
        case "ondeactivate":
        case "type":
        case "codebase":
        case "id":
          ret.objAttrs[args[i]] = args[i+1];
          break;
        case "width":
        case "height":
        case "align":
        case "vspace": 
        case "hspace":
        case "class":
        case "title":
        case "accesskey":
        case "name":
        case "tabindex":
          ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
          break;
        default:
          ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
      }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType) ret.embedAttrs["type"] = mimeType;
    return ret;
  }
  // --&gt;
  &lt;/script&gt;
  
      &lt;style&gt;
      .container{width:760px;height:600px;overflow:hidden;margin: 0 auto;}
      .module100{width:100%;height:auto;position:relative}
      .panel{width:68%;height:600px;position:absolute;top:0;right:0;z-index:999999999}
      &lt;/style&gt;
  
      &lt;!--[if IE]&gt;
      &lt;style&gt;
      body {text-align:center;}
      .container {text-align:left;}
      .clearfix, .container {display:inline-block;}
      &lt;/style&gt;
      &lt;![endif]--&gt;
  
  &lt;/head&gt;
  &lt;body bgcolor="#ffffff"&gt;
      &lt;div class="container"&gt;
              &lt;div class="module100"&gt;
                  &lt;!--url's used in the movie--&gt;
                  &lt;!--text used in the movie--&gt;
                  &lt;!-- saved from url=(0013)about:internet --&gt;
                  &lt;script language="JavaScript" type="text/javascript"&gt;
                      AC_FL_RunContent(
                          'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
                          'width', '760',
                          'height', '750',
                          'src', 'AMENDED INTRO ANIMATION 2 081209',
                          'quality', 'high',
                          'pluginspage', 'http://www.adobe.com/go/getflashplayer',
                          'align', 'middle',
                          'play', 'true',
                          'loop', 'false',
                          'scale', 'showall',
                          'wmode', 'transparent',
                          'devicefont', 'false',
                          'id', 'AMENDED INTRO ANIMATION 2 081209',
                          'bgcolor', '#ffffff',
                          'name', 'AMENDED INTRO ANIMATION 2 081209',
                          'menu', 'true',
                          'allowFullScreen', 'false',
                          'allowScriptAccess','sameDomain',
                          'movie', 'http://haus.co.za/AMENDED INTRO ANIMATION 2 081209',
                          'salign', ''
                          ); //end AC code
                  &lt;/script&gt;
                  &lt;noscript&gt;
                      &lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="760" height="750" id="AMENDED INTRO ANIMATION 2 081209" align="middle"&gt;
                      &lt;param name="allowScriptAccess" value="sameDomain" /&gt;
                      &lt;param name="allowFullScreen" value="false" /&gt;
                      &lt;param name="movie" value="http://haus.co.za/AMENDED INTRO ANIMATION 2 081209.swf" /&gt;&lt;param name="loop" value="false" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="bgcolor" value="#ffffff" /&gt;   &lt;embed src="http://haus.co.za/AMENDED INTRO ANIMATION 2 081209.swf" loop="false" quality="high" bgcolor="#ffffff" width="760" height="750" name="AMENDED INTRO ANIMATION 2 081209" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" /&gt;
                      &lt;/object&gt;
                  &lt;/noscript&gt;
              &lt;/div&gt;
          &lt;/div&gt;
      &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Do you think I can tweak the <code>case "onfinish":</code> variable ?
  I would need some code so I can figure it out myself.</p>
  
  <p>Thanks very much for any input.</p>