Я пытаюсь заставить этот код работать в Visual Studio 2010, и он говорит, что мой "SWFObject не определен" в браузере Firefox. И swfobject.js является 2.2 - PullRequest
0 голосов
/ 25 февраля 2012

Я пытаюсь заставить этот код работать в Visual Studio 2010, и он говорит, что мой "SWFObject не определен" в браузере Firefox. И swfobject.js - это версия v2.2. Я хочу, чтобы .swf в div «gs» сначала играл, а затем воспроизводил другой .swf в div «billboard», когда «gs» .swf заканчивает играть или щелкнул Так что .swfs не играют одновременно и работают медленно.

<script type="text/javascript" src="/Scripts/swfobject.js"></script>
  <script language="javascript" type="text/javascript" src="/Scripts/jquery-1.2.6.min.js"> </script>
<script type="text/javascript">

$(document).ready(function(){
    if(readCookie("flashPlayed") == "true"){
        showWater();
    }
});

function launchFlash(){
    if(readCookie("flashPlayed") != "true"){
 var homeflash = new SWFObject("/Content/swf/2BigGS.swf", "BG", "1003", "840", "8");
homeflash.addParam("wmode","transparent");
homeflash.write("gs");
setTimeout("showWater()", 33000);
setTimeout("removeFlash()", 33000);
    }
}

function readCookie(cookieName){
    var searchName = cookieName + "="
    var cookies = document.cookie
    var start = cookies.indexOf(cookieName)
    if (start == -1){ // cookie not found 
        return ""
    }
    start += searchName.length //start of the cookie data
    var end = cookies.indexOf(";", start)
    if (end == -1){
        end = cookies.length
    }
    return cookies.substring(start, end)
}

function showwater(){
    $("#billboard").fadeIn("slow");
    document.cookie="flashPlayed=true"
}
function removeFlash(){
    $("#gs").empty();
    $("#gs").animate( { top:"-9999px"}, 1 )
}

</script>

1 Ответ

2 голосов
/ 25 февраля 2012

SWFObject 2 имеет совершенно другой API от 1.5 - он не определяет ничего с именем «SWFObject» - и также не использует функцию конструктора.

Один из способов его использования:

var flashvars = null;
var params = { "wmode": "transparent" };
var attributes = null;
swfobject.embedSWF(
   "/Content/swf/2BigGS.swf", "BG", "1003", "840", "8", false, 
   flashvars, params, attributes);

Также следует помнить, что версия 2 заменяет элемент, который вы указываете для вставки swf, то есть:

В версии 1.5:

<div id="gs"></div>

стал:

<div id="gs"><object id="BG">...</object></div>

В версии 2.0:

<div id="gs"><div id="BG"></div></div>

становится:

<div id="gs"><object id="BG">...</object></div>

Т.е. элемент "BG" должен быть уже там - он заменен, а не вставлен.

Это может означать, что вам нужно изменить другие части кода.Например, вы не можете проверить, был ли вставлен swf, проверив наличие элемента с id "BG", потому что BG все еще там (как <div> в приведенном выше примере), даже если вставка swf не удалась.

http://code.google.com/p/swfobject/wiki/documentation

...