swfobject не общается с html - PullRequest
       14

swfobject не общается с html

0 голосов
/ 22 июня 2011

У меня проблемы с попыткой заставить внедренные файлы swfobject связаться с моим html. Когда я встраиваю swfs стандартным способом, используя AC_RunActiveContent, он работает, есть идеи, почему это будет? В основном навигационные кнопки вдоль нижней части не позволяют воспроизводить swfs при их нажатии. Буду очень признателен за любую помощь!

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

<script type="text/javascript">
var flashvars = {};
var params = {};
params.play = "true";
params.loop = "false";
params.menu = "true";
params.quality = "high";
params.scale = "showall";
params.wmode = "opaque";
params.bgcolor = "#ffffff";
params.devicefont = "false";
params.allowscriptaccess = "always";

var attributes = {};
swfobject.embedSWF("images/blank1.swf", "blank1", "747", "420", "9.0.0", flashvars, params, attributes);
swfobject.embedSWF("images/blank2.swf", "blank2", "747", "420", "9.0.0", flashvars, params, attributes);
swfobject.embedSWF("images/blank3.swf", "blank3", "747", "420", "9.0.0", flashvars, params, attributes);
</script>


<script language="javascript">
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}

function stopFlash(){
    getFlashMovie("blank1").commandFlash();
    getFlashMovie("blank2").commandFlash();
    getFlashMovie("blank3").commandFlash();
}

HTML:

<div>
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="747" height="420">
    <param name="movie" value="images/blank1.swf" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="images/blank1.swf" width="747" height="420">
    <!--<![endif]-->
    <img src="images/blank1.jpg" alt="" width="747px" height="420px" />
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
    </object>
</div>

<div id="navigation">
<a href="#" name="btn" onClick="stopFlash()"><div id="slideshow-previous"></div></a>
<a href="#" name="btn" onClick="stopFlash()"><div id="slideshow-next"></div></a>
<a href="#" name="btn" onClick="stopFlash()"><div id="slideshow-first"></div></a>
</div>

Спасибо за любые отзывы!

Ответы [ 3 ]

1 голос
/ 22 июня 2011

В вашем коде SWFObject есть ошибки: в нем отсутствует параметр экспресс-установки.

swfobject.embedSWF("images/blank1.swf", "blank1", "747", "420", "9.0.0", "expressinstall.swf", flashvars, params, attributes);
swfobject.embedSWF("images/blank2.swf", "blank2", "747", "420", "9.0.0", "expressinstall.swf", flashvars, params, attributes);
swfobject.embedSWF("images/blank3.swf", "blank3", "747", "420", "9.0.0", "expressinstall.swf", flashvars, params, attributes);

Конечно, вам нужно заменить «expressinstall.swf» на правильный путь к файлу expressinstall.swf.Если вы не хотите использовать экспресс-установку, просто установите вместо логического false.

swfobject.embedSWF("images/blank1.swf", "blank1", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/blank2.swf", "blank2", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/blank3.swf", "blank3", "747", "420", "9.0.0", false, flashvars, params, attributes);
1 голос
/ 22 июня 2011

В своем SWF импортировали ли вы flash.external.ExternalInterface?

Если нет, вам нужно будет сделать это, а затем также предоставить метод 'commandFlash' в вашем SWF. Возможно, вам также понадобится разрешить такую ​​связь в вашем домене.

import flash.external.ExternalInterface;

System.security.allowDomain('*');
var flashAvailable:Boolean = ExternalInterface.available;

ExternalInterface.addCallback('commandFlash', null, commandFlash);
function commandFlash( args... ){
  //
}

Кроме вышеперечисленного, возможно, ваш SWF скрыт с дисплеем: нет; на странице в какой-то момент, а затем показал? В прошлом это вызывало у меня странность в Firefox.

(не уверен, что вы используете AS2 / 3 в своем SWF)

0 голосов
/ 24 июня 2011

Sorted - удалось разобраться (см. Ниже), спасибо всем за их вклад / поддержку! Единственная проблема теперь заключается в том, что Internet Explorer возвращает ошибку «объект не поддерживает это свойство или метод» на кнопках, которые запускают команду stopFlash, но, по крайней мере, она все еще работает. Хмм.

var flashvars = {};
var params = {wmode:"opaque", allowscriptaccess:"always" };
var attributes = {};

swfobject.embedSWF("images/clients/blank1.swf", "blank1", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/clients/blank2.swf", "blank2", "747", "420", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("images/clients/blank3.swf", "blank3", "747", "420", "9.0.0", false, flashvars, params, attributes);


function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}


function stopFlash(){
getFlashMovie("blank1").commandFlash();
getFlashMovie("blank2").commandFlash();
getFlashMovie("blank3").commandFlash();
return true;
}
...