是否可以检测到 Flash 嵌入对象何时已完全加载?是否有可以在所有浏览器中订阅的事件?
2297 次
1 回答
0
不是直接的,但如果您可以通过ExternalInterface. 首先,在 SWF 的 flashvars 中传递一个回调名称:
loadedCallback=swfLoadedCallback
此外,请确保 SWF 已scriptAccess设置为sameDomain或all
接下来,在您的页面中定义一个回调函数:
函数 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 回答