Flash - Firefox问题

时间:2009-10-09 06:31:17

标签: flash internet-explorer firefox wmode

我意识到,如果我有一个flash对象并且不包含'wmode'属性,我将无法覆盖HTML,因为flash总是会在顶部播放。但是如果我确实包含'wmode:transparent',flash对象在firefox中完全消失,而如果我使用'wmode:opaque',我会得到一个白色的方框代替Flash对象。

我看了很多论坛 - 很多问题 - 但是当他们使用上述属性之一时,每个人的问题都会得到解决。所以....帮助!!!

注意:使用任一属性都可以在IE中使用。

1 个答案:

答案 0 :(得分:0)

看起来你是从Flash角度来看 - 我不确定你是如何生成HTML包装器的,但是如果你使用Flex,你会得到类似下面的代码。 我知道它会生成一个透明的包装器,因为我必须在几天前将它呈现给客户端,这对于可交付成果是透明的。点击here for the demo I used

这是我确切的html包装器代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      

This application was built using Adobe Flex, an open source framework
for building rich Internet applications that get delivered via the
Flash Player or to desktops via Adobe AIR. 

Learn more about Flex at http://flex.org 
// -->
<head>
    <title>${title}</title>         
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <!-- Include CSS to eliminate any default margins/padding and set the height of the html element and 
         the body element to 100%, because Firefox, or any Gecko based browser, interprets percentage as 
         the percentage of the height of its parent container, which has to be set explicitly.  Initially, 
         don't display flashContent div so it won't show if JavaScript disabled.
    -->
    <style type="text/css" media="screen"> 
        html, body  { height:100%; }
        body { margin:0; padding:0; overflow:auto; text-align:center; }   
        #flashContent { display:none; }
    </style>

    <!-- Enable Browser History by replacing useBrowserHistory tokens with two hyphens -->
    <!-- BEGIN Browser History required section ${useBrowserHistory}>
    <link rel="stylesheet" type="text/css" href="history/history.css" />
    <script type="text/javascript" src="history/history.js"></script>
    <!${useBrowserHistory} END Browser History required section -->  

    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">

        if (window.XMLHttpRequest)
        {
            xhttp=new window.XMLHttpRequest();
        }
        else // for older IE 5/6
        {
            xhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xhttp.open("GET","ShowcaseConfig.xml",false);
        xhttp.send("");
        xmlDoc=xhttp.responseXML;
        var xmlString=xhttp.responseText;

        <!-- For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. --> 
        var swfVersionStr = "${version_major}.${version_minor}.${version_revision}";
        <!-- To use express install, set to playerProductInstall.swf, otherwise the empty string. -->
        var xiSwfUrlStr = "${expressInstallSwf}";
        var flashvars = {};
        var params = {};
        params.quality = "high";
        params.bgcolor = "${bgcolor}";
        params.allowscriptaccess = "sameDomain";
        params.allowfullscreen = "true";
        params.wmode = "transparent";
        var attributes = {};
        attributes.id = "${application}";
        attributes.name = "${application}";
        attributes.align = "middle";
        swfobject.embedSWF(
            "${swf}.swf", "flashContent", 
            "${width}", "${height}", 
            swfVersionStr, xiSwfUrlStr, 
            flashvars, params, attributes);
        <!-- JavaScript enabled so display the flashContent div in case it is not replaced with a swf object. -->
        swfobject.createCSS("#flashContent", "display:block;text-align:left;");
    </script>
</head>
<body>
    <!-- SWFObject's dynamic embed method replaces this alternative HTML content with Flash content when enough 
         JavaScript and Flash plug-in support is available. The div is initially hidden so that it doesn't show
         when JavaScript is disabled.
    -->
    <div style="background-image:url(desert_short.jpg); border: 2px solid #000000;">


    <div id="flashContent">
        <p>
            To view this page ensure that Adobe Flash Player version 
            ${version_major}.${version_minor}.${version_revision} or greater is installed. 
        </p>
        <a href="http://www.adobe.com/go/getflashplayer">
            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" />
        </a>
    </div>

    <noscript>
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="${width}" height="${height}" id="${application}">
            <param name="movie" value="${swf}.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="${bgcolor}" />
            <param name="allowScriptAccess" value="sameDomain" />
            <param name="allowFullScreen" value="true" />
            <param name="wmode" value="transparent"> 
            <!--[if !IE]>
            <object type="application/x-shockwave-flash" data="${swf}.swf" width="${width}" height="${height}">
                <param name="quality" value="high" />
                <param name="bgcolor" value="${bgcolor}" />
                <param name="allowScriptAccess" value="sameDomain" />
                <param name="allowFullScreen" value="true" />
            <![endif]-->
            <!--[if gte IE 6]>
                <p> 
                    Either scripts and active content are not permitted to run or Adobe Flash Player version
                    ${version_major}.${version_minor}.${version_revision} or greater is not installed.
                </p>
            <![endif]-->
                <a href="http://www.adobe.com/go/getflashplayer">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" />
                </a>
            <!--[if !IE]>
            </object>
            <![endif]-->
        </object>
    </noscript>     

 

希望这会有所帮助。查看我的博客here,了解其他一些不错的示例和组件。

干杯,

CASP