0

是否可以检测到 Flash 嵌入对象何时已完全加载?是否有可以在所有浏览器中订阅的事件?

4

1 回答 1

0

不是直接的,但如果您可以通过ExternalInterface. 首先,在 SWF 的 flashvars 中传递一个回调名称:

loadedCallback=swfLoadedCallback

此外,请确保 SWF 已scriptAccess设置为sameDomainall

接下来,在您的页面中定义一个回调函数:

函数 swfLoadedCallback()
{
   // 注意...如果这些是真正的应用程序,你会想要
   // 在此处使用 setTimeout 来避免 Flash 窒息而
   // 等待响应。
   alert('SWF 加载。做点什么。');
}

然后,在您的 SWF 中,添加如下代码:

导入 flash.external.ExternalInterface;
导入 flash.utils.setTimeout;

变量参数:对象 = root.loaderInfo.parameters;
if (params && params.loadedCallback)
{
   // 设置超时以避免同步问题
   设置超时(函数():无效{
      如果(外部接口。可用)
         ExternalInterface.call(params.loadedCallback);
   }, 1);
}
于 2011-10-08T17:44:53.737 回答