1

我目前正在使用 jQuery 以及 swfObject 将 swf 电影动态嵌入到我的网页中。

我目前在将 immem 的音乐播放器嵌入我的网页时遇到问题,因为他们的嵌入代码没有任何加载屏幕。因此,当我使用 swfObject 替换元素时,该区域通常为空白。在最坏的情况下,这意味着用户不会知道嵌入歌曲正在加载。

所以,我试图找出在加载闪存后绑定事件的方法。因为我的计划是将图像放置z-index在顶部并使用此触发器隐藏图像。我想我已经尝试过使用$('#embed').load(function(){ ... });,但没有运气。

有人对此有任何解决方案吗?我只是想知道这是否可能,因为我不想对闪存进行黑客攻击并尝试将“加载程序”添加到闪存文件中。

更多注意事项:为了更清楚,我想将 imeem 的音乐播放器嵌入到我的网页中。所以,我真的对flash文件没有任何控制权,即我不能自己创建flash文件。

4

4 回答 4

2

通常,最简单的做法是普通的 ol' <body onload="...",它会在调用您的处理程序之前等待您的外部资源完成加载。

但是,如果您使用 swfObject 动态添加嵌入式插件,则浏览器将为您的 Flash 电影以外的主体触发 onload(它对您的插件一无所知)。

有关与您的类似讨论,请参阅http://blog.deconcept.com/swfobject/forum/discussion/271/javascript-onload-event-does-not-reflect-page-load-using-swfobject/我的最佳猜测是,如果不以某种方式修改原始 swf,您将无法做您想做的事。

于 2009-01-10T16:07:59.510 回答
0

注意,如果你打算用图像或 html 的东西来掩盖 flash,你将需要 wmode=transparent

于 2009-01-11T07:58:53.553 回答
0

上述使用 window.load() 的解决方案的问题是,如果您的主 swf 仅重 1 kb 但它实际上不显示任何内容(只是作为加载额外内容的容器,通常是闪存文件中的情况。

我要做的是使用 Actionscript 的 ExternalInterface 类,它允许您的 flash 播放器与包含 flash 文件的 html 文件中可用的 javascript 函数进行通信。您可以让您的 flash 文件调用一个 javascript 函数,该函数触发一个函数,告诉您的 javascript 处理脚本 flash 已准备好。这样做的好处是,当 javascript 接管时,您可以准确控制应该在 flash 文件中加载的内容。

有关使用 ExternalInterface 的更多信息,请参阅此:http: //blog.circlecube.com/2008/02/01/actionscript-javascript-communication/

于 2009-01-11T20:21:37.920 回答
0

您可以从 Flash 电影中执行此操作。但是,您将需要控制电影(您可能​​没有)。

于 2009-01-10T12:59:00.467 回答