jQuery - определяет, когда (флэш) встраивание готово (доступно). - PullRequest
0 голосов
/ 08 октября 2011

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

Спасибо, Уэсли

1 Ответ

0 голосов
/ 08 октября 2011

Не напрямую, но это легко сделать, если у вас есть контроль над SWF через ExternalInterface. Сначала в flashvars для SWF передают имя обратного вызова:

loadedCallback=swfLoadedCallback

Кроме того, убедитесь, что в SWF scriptAccess установлено значение sameDomain или all

Далее, определите функцию обратного вызова на вашей странице:

function swfLoadedCallback()
{
   // Note... if these were a real application, you would want 
   //    to use a setTimeout here to avoid Flash choking while 
   //    waiting for a response.
   alert('SWF loaded.  Do something.');
}

Затем в свой SWF добавьте код, подобный следующему:

import flash.external.ExternalInterface;
import flash.utils.setTimeout;

var params:Object = root.loaderInfo.parameters;
if (params && params.loadedCallback)
{
   // Set timeout to avoid syncronous issues
   setTimeout(function():void {
      if (ExternalInterface.available)
         ExternalInterface.call(params.loadedCallback);
   }, 1);
}
...