Flash - проблема с Firefox - PullRequest
       80

Flash - проблема с Firefox

0 голосов
/ 09 октября 2009

Я понял, что если у меня есть объект flash и я не включаю атрибут 'wmode', я не смогу наложить HTML, потому что flash всегда будет проигрываться сверху. Но если я включу wmode: transparent, объект flash полностью исчезнет в Firefox, тогда как, если я использую wmode: opaque, я получу белый квадрат вместо объекта Flash.

Я смотрел на многих форумах - много вопросов - но почему-то все проблемы решаются, когда они используют один из вышеупомянутых атрибутов. Так что .... ПОМОГИТЕ !!!

Примечание: использование любого атрибута работает в IE.

1 Ответ

0 голосов
/ 09 октября 2009

Похоже, вы исходите из перспективы Flash - я не уверен, как именно вы генерируете свою оболочку HTML, но если вы используете Flex, вы получите что-то вроде следующего кода. Я знаю, что он генерирует прозрачную оболочку, потому что пару дней назад мне пришлось представить ее клиенту как прозрачную для результата. Нажмите здесь для демонстрации, которую я использовал .

Вот мой точный 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>     

Надеюсь, это поможет. Посетите мой блог здесь , чтобы найти другие примеры и компоненты.

Приветствия

Casp

...