Может ли JavaScript обнаруживать события клавиш и мыши внутри Flash-приложения?

У меня есть очень старые Flash-приложения, которые мы не хотим перестраивать, чтобы добавить новую функцию. Нам просто нужно определить, когда пользователь бездействует. Итак, если приложение Flash не получает событий клавиш или мыши через 3 минуты, мы хотим отслеживать это время, пока пользователь снова не взаимодействует с приложением.

Мы рассмотрели возможность переноса приложений в новые Flash-приложения, чтобы включить отслеживание событий нажатия клавиш / мыши; однако ранние исследования показывают, что некоторые из наших приложений настолько стары, что в них используются несовместимые системы событий или AVM (виртуальные машины ActionScript). Кроме того, кажется, что события мыши во внутреннем приложении не передаются внешнему приложению. (Я думаю, что в версиях Flash до 8, обработка событий идет в обратном направлении)

В любом случае, следующая идея в таблице - посмотреть, сможем ли мы определить, когда пользователь перестает взаимодействовать со старыми Flash-приложениями с помощью JavaScript. Может ли кто-нибудь подтвердить, возможно ли обнаружить, используя только JavaScript, когда swf в документе HTML теряет фокус или события нажатия клавиш и мыши останавливаются и начинают происходить в swf?


person Community    schedule 05.03.2012    source источник
comment
Я не думаю, что это возможно, потому что вспышка получит весь фокус (ловушка для мыши). Я не знаю, с каких пор AS реализовал JS-Callbacks, но я думаю, что это будет лучший способ сделать это.   -  person androidavid    schedule 06.03.2012
comment
Спасибо androiddavid. Я действительно надеялся, что кто-то скажет другое. Я также использовал JS-Callbacks и ExternalInterface; однако для этого потребуется перестроить эти старые приложения, что очень рискованно, а в некоторых случаях, скорее всего, невозможно.   -  person    schedule 06.03.2012
comment
Хм, я думаю, лучший способ узнать это - попробовать. Я имею в виду, что это не так уж и сложно реализовать.   -  person androidavid    schedule 06.03.2012


Ответы (1)


Без перестройки вы не сможете получить никаких событий из старого SWF-файла. Но вы можете обернуть swf и получить события мыши с помощью jQuery:

    $('#swfDiv').bind("mouseenter",function(){
        $('#swfDiv').show();
    }).bind("mouseleave",function(){
            $('#' + divCursor).hide();
    });
person eleven    schedule 07.03.2012