Почему внешний интерфейс Flash * иногда * не работает?

У меня есть Flash-фильм, в котором есть несколько функций ActionScript 2, которые отображаются в Javascript через ExternalInterface. Обычно этот фильм работает нормально, и Javascript может с ним взаимодействовать. Но иногда, периодически и без объяснения причин, объект flash в Javascript не имеет функции ExternalInterface. Это происходит, когда у меня на странице более одного раза установлен этот единственный флэш-файл, и часто бывает, что один или два экземпляра флэш-памяти будут иметь функции, а один или два не будут . Тот же самый точный источник вспышки, вставленный на страницу 3 или 4 раза. Очень странно. Есть идеи относительно того, что может быть не так или даже где мне начать искать? Я в недоумении.


person Josh    schedule 28.04.2009    source источник


Ответы (1)


Возможно, у вас проблема в том, что приложение Flash не готово, когда вы звоните.

Всякий раз, когда мне приходилось заниматься коммуникацией JS> Flash, я всегда позволял Flash «говорить». По сути, включите функцию JS, которую вызывает Flash-ролик, когда он готов и полностью загружен. Тогда и только тогда разрешите стороне JS выполнять вызовы Flash.

HTH!

Хуан

person Juan Delgado    schedule 29.04.2009
comment
@Juan, это очень хороший момент, позвольте мне вернуться и исследовать: у меня уже есть Flash, настроенный, чтобы сообщать Javascript, когда он загружен на 100%, после чего Javascript может начать с ним общаться. Позвольте мне посмотреть, действительно ли посылается этот сигнал. - person Josh; 29.04.2009
comment
@ Хуан, возможно, ты уже нашел ответ. Моя функция Javascript, вызываемая, когда флеш-память готова, похоже, не вызывается! Я это подтвердю, и если да, то отметьте ваш ответ как правильный. - person Josh; 29.04.2009
comment
@Juan: На самом деле я только что понял, что ошибался - функция JS вызывается, когда флэш-память вызывается, но дважды для каждого экземпляра флэш-памяти! Итак, что-то здесь явно не так, и вы указали мне правильное направление. Спасибо! - person Josh; 29.04.2009
comment
Я не знаю, что я делал не так, но это была проблема с Javascript, а не с Flash. Возврат к более ранней версии js-кода устранил проблему. - person Josh; 09.05.2009