我设置了一个函数,只要在页面上点击某些东西,使用ExternalInterface就可以在mp3播放器中暂停声音,但我在IE中遇到了问题。
设置如下:我有一个视频页面,可以使用RSS调出YouTube视频列表。最近的视频在名为“display”的div中显示在页面上。然后,Feed中的所有其他视频都显示为缩略图和链接...如果您单击其中一个,则会替换主“显示”视频并开始播放。所有这一切都很好。
我想要的是,只要视频开始,页面上的mp3播放器就会暂停音乐。
ExternalInterface功能正常工作。只要点击其中一个LINKS,mp3播放器就会停止,视频会启动等等。
问题是我还希望它在点击MAIN视频时停止。显然,由于这是从YouTube加载的外部视频,我无法访问FLA来添加自己的ExternalAccess代码。
我尝试在视频对象中添加一个ID,然后将其用作jQuery中的选择器来调用stopMovie函数......不行。我已经尝试为它添加一个类,然后在单击该类时调用stopMovie函数。我已经尝试将点击功能放在视频加载的div上......没有任何效果。如果我删除主视频,只有一个空div,然后单击div,MP3播放器停止...但如果我将视频加载到div并单击它,没有任何反应(在IE中......它在工作中FF)。
显然jQuery没有收到视频被点击的消息。有任何建议或解决方法吗?
The Actionscript:
import flash.external.ExternalInterface;
ExternalInterface.addCallback("stopMovie", pauseSound);
function pauseSound(str:String):void {
if (str == "stop") {
if (my_channel) {
song_position = my_channel.position;
my_channel.stop();
song_paused=true;
}
}
}
jQuery代码:
function getFlashMovie(movieName) {
var isIE = navigator.appName.indexOf("Microsoft") != -1;
return (isIE) ? window[movieName] : document[movieName];
}
function stopMovie() {
getFlashMovie('audio').stopMovie("stop");
}
//显示我尝试过的所有方法//
$('#video_player').live("click", function(){
stopMovie();
});
$('.stopper').live("click", function(){
stopMovie();
});
$('#curVideo').live("click", function(){
stopMovie();
});
$('#display object').live("click", function(){
stopMovie();
});
HTML:
<div id="video_player">
<div id="display">
(some PHP code here to call the feed)
<object id="curVideo" class="stopper" width="410" height="332"><param name="movie" value="<?php echo $videolink; ?>"></param><param name="allowFullScreen" value="true"></param><param name="wmode" value="transparent"></param><param name="allowscriptaccess" value="always"></param><embed src="<?php echo $videolink; ?>" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="410" height="332"></embed></object>
</div>
</div>
答案 0 :(得分:1)
我不确定这会解决你的问题但是它的价值是什么 - 我有一个IE的Flash问题,其中嵌入的对象总是最顶层的,并且不允许基于z-index css显示周围的html结构。我所做的是将wmode参数设置为透明并修复它。也许类似的事情发生在这里,视频在IE中是最顶层的,并且掩埋了你的事件所绑定的周围的div。
答案 1 :(得分:0)
我猜IE没有为实际的swf对象触发click事件。
您是否尝试将事件处理程序放在#display div上?