是否可以检测到 Flash 嵌入对象何时已完全加载?是否有可以在所有浏览器中订阅的事件?
user429620
问问题
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 回答