1

Flash 要素をフルサイズで表示するページを作成しようとしていますが、小さい画面でサイトを表示すると、フォールバックをトリガーしたいと考えています。

ブラウザがフラッシュをサポートしているため、これは今のところ機能しません。

フォールバックを手動で切り替える方法が見つかりません。

4

2 に答える 2

2

フォールバックを手動でトリガーすることはできませんが、特定の基準が満たされない場合に SWF が読み込まれないようにすることができます。あなたの場合、ビューポートが指定された最小サイズを満たしている場合にのみ、SWF を埋め込む必要があると言いました。

最初のページ読み込み時に SWF を読み込もうとしている場合は、次のようにします。

//Viewport function based on 
//http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/
function GetViewportDimensions(){

    var de = document.documentElement,
        b = document.getElementsByTagName('body')[0],
        w = window.innerWidth || (de && de.clientWidth) ? de.clientWidth : b.clientWidth,
        h = window.innerHeight || (de && de.clientHeight) ? de.clientHeight : b.clientHeight;

    return { width: w, height: h };

}

swfobject.addDomLoadEvent(function(){

    var actualDimensions = GetViewportDimensions(),
        minimumWidth = 600,
        minimumHeight = 500;

    if(actualDimensions.width >= minimumWidth && actualDimensions.height >= minimumHeight){
        swfobject.embedSWF("mymovie.swf", "flashcontent", "550", "400", "9");
    } else {
        //do nothing, use fallback
    }

});

このコードは、ビューポートが十分に大きい場合にのみ SWF の埋め込みを試みます。Flash が存在しない場合、swfobject.embedSWFは失敗し、フォールバック コンテンツはそのまま残ります。

于 2012-12-04T21:20:43.420 に答える
0

テスト目的のみの場合は、次の行にコメントできます。

swfobject.embedSWF("main.swf?v=1", "flashcontent", "972", "1200", "10.1", "expressInstall.swf");

2つのスラッシュを使用する

// swfobject.embedSWF("main.swf?v=1", "flashcontent", "972", "1200", "10.1", "expressInstall.swf");

アップデート:

if (swfobject.getQueryParamValue("noflash") != "true")
     swfobject.embedSWF("main.swf?v=1", "flashcontent", "972", "1200", "10.1", "expressInstall.swf");

次に、新しいURLを使用してテストできます。

www.yourwebsite.com/?noflash=true

于 2012-12-04T09:16:24.107 に答える