Вызов пользовательского метода FLASH из IE7 и IE8 - PullRequest
1 голос
/ 13 октября 2010

Я пытаюсь вызвать пользовательский метод встроенной флэш-памяти следующим образом:

var flash = navigation_get_flash_movie_object ('main');if (flash) {flash.continentOut (id);}

Отлично работает в Chrome и Safari, но не работает в IE7 и IE8.Браузеры выдают ошибку, что у объекта нет такого метода.

Я использую пример из http://www.permadi.com/tutorial/flashjscommand/,, и теперь, когда я его протестировал, он также не работает на странице тестирования http://www.permadi.com/tutorial/flashGetObject/

У кого-нибудь есть лучшеспособ вызова пользовательских функций в объекте Flash из Javascript?

1 Ответ

0 голосов
/ 24 декабря 2010

Ознакомьтесь с документами API ExternalInterface . Они используют этот метод:

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

Итак, вы бы сделали это:

var flash = thisMovie('main'); if (flash) { flash.continentOut(id); }

(конечно, я предполагаю, что вы используете ExternalInterface.addCallback() для определения continentOut)

Вот еще один вариант:

 function thisMovie(movieName) {
     return document[movieName] || window[movieName];
 }

Лично это кажется лучше, потому что он не использует анализ браузера и будет совместим с будущим, но это только я.

...