Как перехватить событие при успешной загрузке флэш-фильма? - PullRequest
1 голос
/ 10 января 2009

В настоящее время я использую jQuery, а также swfObject для динамического встраивания фильма swf в мою веб-страницу.

У меня в настоящее время проблема при встраивании музыкального проигрывателя immem в мою веб-страницу, поскольку их код для встраивания не имеет экрана загрузки. Поэтому, когда я заменяю элемент с помощью swfObject, эта область обычно будет пустой. В худшем случае это означает, что пользователь не будет знать, что загружается встроенная песня.

Итак, я пытаюсь найти способ связать событие после загрузки этой вспышки. Так как мой план будет помещать изображение с огромным z-index сверху и использовать этот триггер, чтобы скрыть изображение. Я думаю, что я пытался использовать $('#embed').load(function(){ ... });, но не повезло.

Есть ли у кого-нибудь решение для этого? Мне просто интересно, возможно ли это, поскольку я не хочу взламывать флэш-память и пытаться добавить 'загрузчик' во флэш-файл.

Еще несколько замечаний: Чтобы было понятнее, я хочу встроить музыкальный проигрыватель imeem в мою веб-страницу. Итак, я действительно не имею никакого контроля над файлом флэш-памяти, то есть я не могу создать файл флэш-памяти самостоятельно.

Ответы [ 4 ]

2 голосов
/ 10 января 2009

Как правило, самое простое, что нужно сделать, это просто ol '<body onload="...", который будет ждать окончания загрузки внешних ресурсов перед вызовом вашего обработчика.

Однако, если вы используете swfObject для динамического добавления встроенного плагина, браузер выполнит загрузку тела, исключая ваш флэш-фильм (он ничего не знает о вашем плагине).

См. http://blog.deconcept.com/swfobject/forum/discussion/271/javascript-onload-event-does-not-reflect-page-load-using-swfobject/ для аналогичного обсуждения с вами. Я полагаю, что вы не можете делать то, что хотите, без изменения исходного SWF-файла в некотором стиле.

0 голосов
/ 11 января 2009

Проблема с вышеупомянутым решением использования window.load () заключается в том, что он бесполезен, если ваш основной SWF-файл весит всего 1 КБ, но на самом деле он ничего не отображает (просто является контейнером, который загружает дополнительный контент, что часто бывает во флэш-файлах.

Что бы я сделал, это использовал класс ExternalInterface Actionscript, который позволяет вашему флеш-плееру взаимодействовать с функциями javascript, доступными в html-файле, который содержит флэш-файл. Вы можете сделать так, чтобы ваш флэш-файл вызывал функцию javascript, которая запускает функцию, которая сообщает вашему сценарию обработки javascript, что флэш-память готова. Что приятно, так это то, что вы получаете точный уровень контроля над тем, что должно быть загружено во флэш-файл, когда JavaScript вступает во владение.

См. Это для получения дополнительной информации об использовании ExternalInterface: http://blog.circlecube.com/2008/02/01/actionscript-javascript-communication/

0 голосов
/ 11 января 2009

Обратите внимание, вам понадобится wmode = прозрачный, если вы собираетесь затенять flash изображением или HTML-вещами

0 голосов
/ 10 января 2009

Вы можете сделать это из фильма Flash. Однако тогда вам нужно будет контролировать фильм (чего у вас может не быть).

...