SetVariable работает в FireFox, но не в Internet Explorer? - PullRequest
0 голосов
/ 13 июля 2011

Я создаю веб-приложение для видеоплеера, которое использует flash для воспроизведения и jquery / javascript для пользовательского интерфейса.По замыслу человека, написавшего компонент flash, мне нужно использовать setVariable для связи между javascript и flash player.Я читал по всему интернету, что у многих людей были проблемы с настройкой работы в FireFox.Я разработал свое приложение в Firefox, потому что я хотел использовать Firebug, чтобы помочь мне в разработке.Теперь, когда все построено, я обнаружил, что setVariable не работает в IE.Ошибка, которую я получаю: объект не поддерживает свойство или метод 'SetVariable';

Вот немного подходящего кода:

Я создаю свой HTML через JavaScript, так вот как яСоздайте плеер:

var player =
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,16,0" width="1" height="1" >' +
'<param name="movie" value="/flash/Player.swf?server='+server+'">' +
'<param name="quality" value="high">' +
'<param name="play" value="true">' +
'<param name="LOOP" value="false">' +
'<param name="wmode" value="transparent">' +
'<embed wmode="transparent" src="/flash/Player.swf?server='+server+'" width="1" height="1" play="true" loop="false" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>' +
'</object>'; 

после того, как я добавлю это на страницу, которую я называю переменная набора:

that.player.SetVariable('track',trackNo);

Любой совет будет принят.Я знаю, что внешний интерфейс является предпочтительным методом перекрестного js flash коммюнике, но у меня нет доступа к флэш файлу, и я не могу его изменить, поэтому, пожалуйста, предоставляйте только решения с использованием setVariable.Спасибо.

1 Ответ

2 голосов
/ 13 июля 2011

Что вам нужно знать, так это то, что html-код, который нужно написать для встраивания файла swf, отличается для некоторых браузеров.

Firefox и другие браузеры на основе Netscape используют теги <object>, а IE использует <embed> tags.

Вы можете использовать SWFObject , чтобы встроить SWF на вашу страницу.Это однофайловая библиотека с открытым исходным кодом, которая будет обрабатывать все кросс-браузерные особенности встраивания Flash.Он даже поставляется с удобным генератором , который поможет вам сделать правильный код для встраивания для использования с библиотекой.

Затем вы можете извлечь swf по id из дерева DOM и установить свойпеременная для правильного объекта.

Кроме того, вы должны проверить, можете ли вы использовать FlashVars вместо SetVariable()

Cheers

...