К сожалению, в Firefox есть известные проблемы с управлением фокусом и Flash.
Вот статья , которая объясняет один подход, который может работать на вас; В результате вы можете использовать JavaScript и flash.external.ExternalInterface, чтобы уведомить файл Flash о действиях клавиатуры, пока элемент управления Flash не получит нормальный фокус. Я уже реализовывал такой подход, и он работает просто отлично; например, мое собственное решение выглядело примерно так на содержащей HTML странице:
<script language="javascript">
if (navigator.appName.indexOf("Microsoft") != -1)
{
document.attachEvent("onkeydown", ieKeyHandler);
window.attachEvent("onkeydown", ieKeyHandler);
function ieKeyHandler(event)
{
sendToFlash(event.keyCode);
}
}
else
{
document.onkeydown = function(e)
{
sendToFlash(e.keyCode);
}
}
function sendToFlash(s)
{
var flashCtl = thisMovie("yourFlashObjectID");
flashCtl.callIntoFlashFromJavascript(s);
}
function thisMovie(movieName)
{
if (navigator.appName.indexOf("Microsoft") != -1)
{
return window[movieName];
}
else
{
return document[movieName];
}
}
</script>
... а затем в файле Flash можно просто определить обработчик обратного вызова ExternalInterface для функции callIntoFlashFromJavascript и передать строковый аргумент в свой текстовый элемент управления. Это немного тяжеловато, правда, но это работает.
См. Также мой ответ на этот вопрос , где приведен полный пример использования ExternalInterface с JavaScript. Надеюсь, это поможет!