检测(闪存)嵌入何时准备就绪(可用)

发布于 2024-12-09 02:45:03 字数 1436 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

桃扇骨 2024-12-16 02:45:03

不能直接实现,但如果您可以通过 ExternalInterface 控制 SWF,则很容易做到。首先,在 SWF 的 flashvar 中传递回调名称:

loadedCallback=swfLoadedCallback

此外,请确保 SWF 将 scriptAccess 设置为 sameDomain 或 < code>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);
}

Not directly, but it's easy to do if you have control over the SWF via ExternalInterface. First, in the flashvars for the SWF pass a callback name:

loadedCallback=swfLoadedCallback

Additionally, be sure the SWF has scriptAccess set to sameDomain or all

Next, Define a callback function in your page:

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.');
}

Then, in your SWF, add code like this:

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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文