Total Pageviews

Monday, 8 April 2013

用按钮控制swfobject切换优酷视频

用到了两个库,swfobject和jquery,swfobject可以在HTML中插入flash,而不用使用object,embed标签,对各浏览器兼容相对好点吧。
   HTML代码:
<div id="youku_player_container">
        <div id="youku_player"></div>
</div>
<div>
        <a href="#" class="video_btn" url="http://player.youku.com/player.php/sid/XMTY5OTQ0OTA4/v.swf">按钮一</a>
        <a href="#" class="video_btn red" url="http://player.youku.com/player.php/sid/XMTY5NzI3MTcy/v.swf">按钮二</a>
</div>
   ID为youku_player的div是给swfobject生成视频的地方,下面div里有两个链接,给了同一个class,便于jquery调用相应节点,每个链接的url属性的值指向相应的优酷视频地址。
   JS代码如下:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2/swfobject.js"></script>
<script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
var flashVars = {playMovie:"true",isAutoPlay:"true"}; //变量
var flashParams = {quality:"high",allowScriptAccess:"always"}; //参数
ykVideoPlay('http://player.youku.com/player.php/sid/XMTY5NzI3MTcy/v.swf'); //生成视频
function ykVideoPlay(swf) {
     swfobject.embedSWF(swf, "youku_player", "480", "420", "9.0.0", null, flashVars, flashParams);
}
$('.video_btn').click(function() { //按钮切换
    ykVideoPlay($(this).attr('url'));
    $(this).addClass('red').siblings('.video_btn').removeClass('red');
    return false;
});
</script>
   仍然是先引入需要的JS库,flashVars里有个变量为isAutoPlay:"true",这是优酷自动播放的(嘿嘿,那时从这里发现的http://dev.youku.com/node/10, 不过该页里没有flashVars里的参数,我搜索一番,便尝试加上了,没有此参数,点击切换的视频是不会播放的)。embedSWF()函数,第一个参 数为flash的url,第二个参数为视频的容器ID,第三个参数为视频的宽,第四个参数为视频的高,第五个swfobject版本号。按钮切换那段代 码,就是用jquery控制鼠标点击后,把相应的链接中url属性的值生成视频显示在ID为youku_player的div中,又给当前点击的链接标签 加了一个red的class(我用CSS粗造的去修饰了下,虽然还是简陋不行了,还好这不是在做美工^_^,CSS代码没贴在文章中了),return false有必要加上,如果有滚动条的话,可以防止回顶部.