下面我们来给播放器做个右键菜单(;^ ^)
首先,在action层第一帧输入一下代码:
var myMenu:ContextMenu = new ContextMenu();
myMenu.hideBuiltInItems();
这里我们自定义了一个myMenu为新的ContexMenu对象,然后我们使用hideBuiltInItems()方法将“设置”和“版权声明”以外的选项都隐藏起来。导出测试一下。
然后我们再输入以下代码:
var i1:ContextMenuItem = new ContextMenuItem("::::: Video Controls :::::",trace);
var i2:ContextMenuItem = new ContextMenuItem("Play / Pause",pauseIt,true);
var i3:ContextMenuItem = new ContextMenuItem("Replay",replayIt);
var i4:ContextMenuItem = new ContextMenuItem("Select a Flv files",selectIt,true);
var i5:ContextMenuItem = new ContextMenuItem("Copyright 2006 Sailon",trace,true);
myMenu.customItems[0] = i1;
myMenu.customItems[1] = i2;
myMenu.customItems[2] = i3;
myMenu.customItems[3] = i4;
myMenu.customItems[4] = i5;
定义i1-i5为新的ContexMenuItem,并在该构造函数中填入相应的参数,具体的参数说明可以查看帮助文档^_^
然后我们将myMenu的属性coustomItems(数组)赋给i1-i5。
好,现在我们定义好了菜单,下面我们给所对应菜单写上方法,代码如下:
import flash.net.FileReference;
//播放暂停方法
function pauseIt() {
ns.pause();
}
//重放方法
function replayIt() {
ns.seek(0);
}
//选择Flv方法
function selectIt(){
var listener:Object = new Object();
listener.onSelect = function(file:FileReference):Void {
trace("Opened " + file.name);
playVideo(file.name);
}
listener.onCancel = function(file:FileReference):Void {
trace("User cancelled");
}
var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
fileRef.browse();
}
这里需要说明一下,selectIt()方法在选择flv文件后会触发playVideo()方法,因此我们这里还需要修改步骤一的代码。将步骤一的代码修改如下:
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var myVideo:Video;
myVideo.attachVideo(ns);
function playVideo(video){
ns.play(video);
trace("playVido:" + video);
}
playVideo("BT玩家.flv");
这里有个小小的遗憾目前FileReference这个类还不支持读取目录的功能,所以我们所需要选择的flv文件必须和swf文件放在同一个目录下才可以正常播放。
OK,我们导出测试一下。
最后,本文在这里只是抛砖引玉,查阅并熟悉帮助文档里的函数方法,希望大家还可以创造出功能更强大更好玩的播放器来。\^o^/