从js问题调用As函数

时间:2008-10-17 07:42:40

标签: javascript flash

我有一个不受我控制的swf文件。 swf期望javascript调用在初始化之后设置一些变量。

swf是使用swfobject嵌入的,我试图在嵌入后立即调用as函数。这似乎太快了,因为我收到了错误。其他一切都应该没问题,因为通过firebug手动调用as函数不会产生错误。

所以问题是如何在嵌入完成后调用该函数?

3 个答案:

答案 0 :(得分:1)

您是否在页面仍在加载时执行此操作?或者从上传处理程序? 如果它是内联javascript我建议你在javascript的onload处理程序中执行它,你可以这样做 -

window.onload = function() {
  // your code here 
}

一旦页面完全加载,它将运行您的代码。

这并不保证闪存已初始化。你可以通过让flash在准备好后回调javascript来做到这一点,但是你说swf不在你的控制范围内。我真的可以想到我们使用onload方法来确保页面加载完毕,然后在尝试使用它之前插入一个短暂的延迟。看一下setTimeout javascript函数。虽然不是一个很好的解决方案。

答案 1 :(得分:0)

found some code用于检查函数是否存在。总结:

if (typeof yourFunctionName == 'function') {
    yourFunctionName();
}

这对你有用吗?如果确实如此,那么您可以将while循环包裹起来。比setTimeOut稍微讨厌一点!

答案 2 :(得分:0)

在集成Flash和HTML / JavaScript时,有几种常见的方法可以解决这个问题。

  1. 将变量作为flashvars传递。它们将立即用于flash电影。

  2. 当闪存加载后,它应该调出你的页面,通常有一个合约定义你可以/必须实现的方法来调用flash影片。例如,它会声明它会在加载Flash文件时调用MovieLoaded(),然后您可以根据此方法中加载的影片放置任何脚本......

    function MovieLoaded() {
        doSomething();
    }