2009-03-29 4 views
0

Я использую SWFObject для встраивания flash на свой сайт.Firefox, wmode и fscommand

var so = new SWFObject("file.swf", "file", "100%", "100%", "8", "#FFFFFF"); 
so.addParam("wmode", "opaque"); 
so.addParam("allowscriptaccess", "always"); 
so.write(container); 

Это работает как шарм во всех браузерах, насколько я могу сказать, но я также использую FSCommand из флэш-памяти, и, таким образом, я имею функцию:

function file_DoFSCommand(command, args) { 
    alert("It works!"); 
} 

И это также работает во всех браузерах, которые я тестировал, кроме Firefox в окнах, где file_DoFSCommand не вызван (но отображается вспышка). В Firefox Mac и других браузерах отображается «Это работает!» как и ожидалось. Очень странно. Если я удалю «wmode», «непрозрачный» он внезапно работает, но тогда мое меню css становится ниже Flash, так что это не вариант. wmode = transparent, похоже, ничего не меняет.

Установка so.addParam ("allowcriptaccess", "never"); заставляет другие браузеры вести себя как FF на окнах, когда установлен wmode.

Любые предложения, почему FF не будет работать?

ответ

1

@ Theo.T, спасибо за отзыв. Однако это не помогло решить мою проблему, но поиск вокруг того, как использовать ExternalInterface, привел меня к странице, в которой IE не получал бы звонки со вспышки, когда контейнер был скрыт. Мой контейнер не был скрыт, но высота была установлена ​​в 0:

<div id="flashcontainer" style="height:0"> 

Установка высоты для 1px решить эту проблему и Firefox успешно принимает звонки из флэш-памяти

+0

Ха, это интересный один. –

+0

Это сработало для меня (и спасло мой бекон тоже), спасибо :) – soulBit

0

Во-первых, попробуйте использовать ExternalInterface вместо FSCommand (как-то амортизировано). В SO уже много примеров.

Смежные вопросы