swfobject.embedSWF:'onYouTubePlayerReady'和'callbackFn' - 有什么区别?

时间:2012-09-02 21:13:00

标签: javascript swfobject

我使用的是swfobject.js 2.2版。

我正在调用swfobject.embedSWF,并将最后一个参数(callbackFn)设置为我的Javascript代码中的本地函数。

之后,调用两个不同的例程: 1.我的回调函数 2.'onYouTubePlayerReady',这是由swfobject API定义的回调函数。

这两者之间有什么区别,为了确保视频已经上传并准备播放,我应该依赖哪一个?

我问这个,因为在Safari上,只调用了我的回调函数,因此我需要知道依赖它是否安全。

1 个答案:

答案 0 :(得分:0)

onYouTubePlayerReady不是SWFObject方法,它是YouTube播放器API提供的独立方法。

您的问题可能归结为时间问题 - 由于onYouTubePlayerReady是YouTube播放器API的一部分,因此在SWF完成加载并且Flash Player初始化ExternalInterface之后,它才会可用。

SWFObject的callbackFn只是在<object>成功添加到页面标记时执行,并且表示SWF已加载。实际上,SWFObject并不关注SWF是否加载。

但是,通过一些额外的JavaScript,您可以轮询SWF以检测它是否已完成加载,然后执行您的自定义脚本(在本例中为onYouTubePlayerReady)。

Stack Overflow thread讨论了民意调查,此处为a short tutorial explaining how to poll after embedding a SWF via SWFObject