Обновите flashvars и перезагрузите flash с помощью jQuery - PullRequest
10 голосов
/ 05 октября 2010

Я бы хотел обновить аргумент значения flashvars для просмотра другого видео:

<param name='flashvars' value='movieId=1002' />

Я обнаружил, что могу заставить его работать в Firefox, обновив параметр с дополнительным шагом чтения всей флэш-памяти.content.

$("param[name=flashvars]").attr("value", "movieId=33");
$("embed").attr("flashvars", "movieId=33");
$(".root").append($("#video"));

Но это не работает в IE8, так как браузер не будет обновлять флэш-содержимое.Любые идеи о том, как перезагрузить флэш-содержимое без внешних зависимостей, таких как swfobject.js?

Ответы [ 5 ]

5 голосов
/ 24 августа 2011
// update flashvars
var fv = 'foobar=1';

$("object param[name='flashvars']").attr("value", fv);
$("embed").attr("flashvars", fv);

// create new object to hold it     
var obj = $("object");

// remove existing Flash from DOM
$("object").remove();

// add new HTML to DOM
$("#mviewer").append(obj.html());
4 голосов
/ 31 октября 2010

Мне тоже интересно об этом.Я пытаюсь отправить новую строку через flashvars в SWF, которую у меня нет возможности изменить, и лучшим вариантом является просто изменение flashvars с помощью jQuery без необходимости использования внешнего интерфейса.

3 голосов
/ 24 декабря 2010

Если вы хотите изменить флэш-переменные и перезагрузить флэш-память, вам нужно просто удалить SWF-файл из DOM и встраивать его снова вместе со своими новыми переменными (используя SWFObject или любой другой метод, который вам подходит!)

Если вы хотите изменить флэш-переменные без перезагрузки Flash, вам не повезло: официально поддерживаемого способа не существует. В этом случае вы должны использовать ExternalInterface для вызова методов ActionScript, которые обновляют ваши значения из JavaScript.

0 голосов
/ 06 декабря 2010

На самом деле, почему бы не использовать swfobject.js?

Я сделал это так:

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

   <div id="qsound"></div>

<script type="text/javascript">
   if(q.sound) {
    swfobject.embedSWF("js/dewplayer/dewplayer.swf", "qsound", "60", "20", "9.0.0", false, {'mp3': 'sounds/'+q.sound}, {'wmode': 'transparent'});
    $('#qsound').show();
} else {
    $('#qsound').hide();
}
</script>
0 голосов
/ 05 октября 2010

Вместо использования flashvars вы можете использовать класс ExternalInterface AS3 для отправки нового значения во Flash.

ExternalInterface обеспечивает двустороннюю связь между AS3 и Javascript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...