Как сделать проверку загрузки флэш-памяти в Chrome? - PullRequest
1 голос
/ 04 марта 2012

Я запускаю функцию Actionscript через javascript через ExternalInterface.

<script type="text/javascript">
var flashvars = {};
var params = {};
params.allowscriptaccess = "always";
var attributes = {};
swfobject.embedSWF("/img/tts_langx.swf", "tts_lang", "1", "1", "9.0.0", false, flashvars, params, attributes);
</script>

Однако, когда флэш-память не загружается или проигрыватель недоступен, все ломается.Поэтому я хочу проверить наличие флэш-памяти и, если она по какой-то причине не загружена, уничтожить только эту часть процесса.

Я делаю проверку через:

function thisMovie(movieName) {
 if (navigator.appName.indexOf("Microsoft") != -1) {
     return window[movieName];
 } else {
     return document[movieName];
 }
}

, а затем я делаю:

if(thisMovie('myFlash').theActionscriptFunction==null){...}else{}

, что очень уродливо, но работает в Firefox и Safari, а нев Chrome.

Как я могу сделать эту проверку наилучшим образом и узнать для всех браузеров, доступна ли флэш-память для функций в ней?

1 Ответ

2 голосов
/ 04 марта 2012

Очень простым способом было бы изменить Flash-ролик следующим образом:

Когда фильм загружается (в загрузочном слушателе в AS), добавьте это

if(ExternalInterface.available) {
    ExternalInterface.call(flashReady);
}

и в javascript есть функция flashReady, которая делает то, что ей нужно

function flashReady() {
    //Your awesome function body here
}
...