Javascript:Flash回调方法首先产生错误UNLESS alert()?

时间:2010-01-11 18:05:13

标签: javascript flex flash callback

好的我有一个flex应用程序,我正在添加这样的回调方法:

private function init():void
{   
    ExternalInterface.addCallback( "playVideo", playVideo );
}

private function playVideo(videoSource:String):Boolean
{
    videoDisplay.source = videoSource;
    return true;
}

我用这样的javascript调用它:

function showVideo(video)
{
    document.getElementById("video_overlay").style.display = "block";
    //alert('no error');
    document.getElementById("MiniMacVideoPreview").playVideo('https://www.kranichs.com/instore/minimac/videos/'+video);
}

我收到此javascript错误:

  

Object不支持此属性   或方法。

但是,如果我取消注释并首先运行警报。我没有错误,它完美无缺。

我的第一个想法是警报是在脚本执行之前购买时间,所以我试图在setTimeout()内运行脚本但是没有用。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我会尝试将你的代码放在像jquery这样的东西中 $(window).load功能。我觉得你是完全正确的。当您关闭警报时,dom和内容已完成加载,您可以创建ExternalInterface回调方法。

$(window).load

否则,如果您使用的是swfobject,则可以执行类似

的操作
swfobject.addLoadEvent(function() {
   $("#swf_id").get(0).inited(callSomeOtherFunction()); 
});