swfobject.embedSWF:'onYouTubePlayerReady'和'callb

swfobject.embedSWF: 'onYouTubePlayerReady' and 'callbackFn' - What is the difference?

本文关键字:callb onYouTubePlayerReady embedSWF swfobject      更新时间:2023-09-26

我使用的是swfoject.js版本2.2。

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

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

这两者之间的区别是什么?我应该依靠哪一个来确保视频已经上传并准备好播放?

我之所以这么问,是因为在Safari上,只有我的回调函数被调用,所以我需要知道依赖它是否安全

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

您的问题可能归结为时间问题——由于onYouTubePlayerReady是YouTube播放器API的一部分,在SWF完成加载并且ExternalInterface由Flash player初始化之前,它将不可用。

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

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

这个Stack Overflow线程讨论了轮询,这里有一个简短的教程,解释如何通过SWFObject嵌入SWF后进行轮询。