0

私が見ているのは、ブラウザーが html をロードし、空白の白いページを表示することです。swfobject の背景色を黒に変更すると、黒い四角形が表示されます。大きな swf の場合、進行状況バーが 100% まで進み、その後停止します。

これを単純な Hello World アプリに煮詰めましたが、それでも失敗します。SWF ファイルが Azure 上のホストされた Web サーバー インスタンスによって提供されている場合にのみ失敗するようです。奇妙なことに、html をファイル システムからブラウザに直接ロードすると機能しますが、Azure でホストされている場合は機能しません。エミュレーターの実行時にも失敗します。ファイルをブロブストレージに入れてみましたが、すべてのブラウザーで完全に機能します。別のホストでファイルを試したことはありません。

これがhtmlです - 非常に単純で一般的です。すべてフラッシュ ビルダーから生成されます。ClientPreloader.swf という名前であることは無視してください。すべての機能を削除したので、ステージ上のラベルは 1 つだけです。

Azure に関しては、SP2 でホストされており、実行中の IE に変更を加えていません。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!-- saved from url=(0014)about:internet -->
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
        <!-- 
        Smart developers always View Source. 

        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>
            <meta name="google" value="notranslate" />         
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <!-- 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.  Fix for
                 Firefox 3.6 focus border issues.  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; 
                       background-color: #ffffff; }   
                object:focus { outline:none; }
                #flashContent { display:none; }
            </style>

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

            <script type="text/javascript" src="swfobject.js"></script>
            <script type="text/javascript">
                // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection. 
                var swfVersionStr = "11.1.0";
                // To use express install, set to playerProductInstall.swf, otherwise the empty string. 
                var xiSwfUrlStr = "playerProductInstall.swf";
                var flashvars = {};
                var params = {};
                params.quality = "high";
                params.bgcolor = "#ffffff";
                params.allowscriptaccess = "sameDomain";
                params.allowfullscreen = "true";
                var attributes = {};
                attributes.id = "ClientPreloader";
                attributes.name = "ClientPreloader";
                attributes.align = "middle";
                swfobject.embedSWF(
                    "ClientPreloader.swf", "flashContent", 
                    "100%", "100%", 
                    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 id="flashContent">
                <p>
                    To view this page ensure that Adobe Flash Player version 
                    11.1.0 or greater is installed. 
                </p>
                <script type="text/javascript"> 
                    var pageHost = ((document.location.protocol == "https:") ? "https://" : "http://"); 
                    document.write("<a href='http://www.adobe.com/go/getflashplayer'><img src='" 
                                    + pageHost + "www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get 

Adobe Flash player' /></a>" ); 
                </script> 
            </div>

            <noscript>
                <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="ClientPreloader">
                    <param name="movie" value="ClientPreloader.swf" />
                    <param name="quality" value="high" />
                    <param name="bgcolor" value="#ffffff" />
                    <param name="allowScriptAccess" value="sameDomain" />
                    <param name="allowFullScreen" value="true" />
                    <!--[if !IE]>-->
                    <object type="application/x-shockwave-flash" data="ClientPreloader.swf" width="100%" height="100%">
                        <param name="quality" value="high" />
                        <param name="bgcolor" value="#ffffff" />
                        <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
                            11.1.0 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>     
       </body>
    </html>
4

1 に答える 1

0

この探求に対する本当の答えは、「それをしないでください」のようです。ここで反応が見られないのは残念です。Azure に対する私の科学的アプローチは、結局私を苦しめました。私は一度に 1 つの機能 (ホストされた IE、次にストレージなど) を実行しようとしていました。それを機能させるための鍵は、すべてを行うことです。Azure のすべてを受け入れる必要があります。確かに、ホストされている IIS には SWF ファイルに関連する明らかな欠陥があります。ただし、推奨事項に完全に従う場合は、大きなファイルをストレージに入れるなどしてください。すべてスムーズに(さらに高速に)動作します。

于 2012-06-16T23:40:53.470 に答える