11.2 制作视频播放器
时间:2007-09-30 来源:
IT在中国 编辑:春雨 作者:春雨 [
大 中 小 ]
11.2 制作视频播放器
(5)在托盘精灵上单击鼠标右键,选择右键菜单中的Script命令,在打开的脚本窗口中键入如下代码:
on beginsprite me
sprite(me.spritenum).rect[1]=1024 --初始化精灵的位置
end
--当鼠标移动到播放器的侧边时托盘出现
on mousewithin me
if sprite(me.spritenum).rect[3]>=1024 then
sprite(me.spritenum).locH=sprite(me.spritenum).locH-2 --控制托盘的水平位置
end if
updatestage
sprite(me.spritenum+1).loc=sprite(me.spritenum).loc+4 --控制域文本的初始位置
updatestage
end
--当鼠标离开托盘时托盘动态消失
on mouseleave me
repeat with i=928 to 1018
sprite(me.spritenum).locH=i --托盘的位置
sprite(me.spritenum+1).loc=sprite(me.spritenum).loc+8 --域文本的位置
end repeat
updatestage
end
(5)在域文本上单击鼠标右键,选择快捷菜单中的Script命令,在脚本窗口中键入如下代码(这些代码用于控制列表中文本的显示以及当鼠标选择某一行文本后所执行的动作):
property pline,linenum --定义局部变量
on beginsprite me
member(16).text=""
member(16).line[1]="播放列表" --初始化列表
repeat with i=1 to (the number of members of castlib 2)
member(16).line[i+1]=the name of member i of castlib 2 --产生列表内容
end repeat
pline=sprite(me.spritenum).member
end
--单击鼠标判断鼠标的位置并执行高亮度操作
on mousedown me
cli=computerLine(me,the clickloc)
selectline(me,cli)
--当鼠标按下后,选择的选项将出现在舞台上
linenum=integer(the mouseV-member(16).scrolltop)/member(16).lineHeight
sprite(3).member=member(linenum-1,2)
sprite(3).rect=rect(0,0,480,320) --确定视频的大小
updatestage
end
--定义例程,用来计算域文本中的行
on computerline me,loc
v=loc.locv-sprite(me.spritenum).locv
v=v+pline.scrolltop --确定行数
return locvtolinepos(pline,v)
end
--自定义例程,用来使用高亮度的方式显示选择的行
on selectline me,cli
if cli=1 then
startchar=1
else
startchar=(pline.text.line[1..cli-1]).length+2 --计算开始字符的位置
end if
endchar=(pline.text.line[1..cli]).length+1 --计算结束字符的位置
--高亮度显示开始字符和结束字符之间的字符串
hilite char startChar to endChar of field pline
end
--在文本域中鼠标右键单击某一行则删除该行的内容
on rightmousedown me
if member(22).linecount>1 then
if the keycode=0 then
delete member(22).line[linenum] --清除列表中的内容
member(linenum,"vid").erase() --清除角色表中的相应角色
end if
end if
updatestage
end
(6)导入一个用于打开视频文件的按钮,即播放器上的打开控制按钮。然后,将其放置到如图11-38所示位置,并使其与其他按钮对齐。
图11-38 添加按钮
(7)在该按钮上单击鼠标右键,选择右键菜单中的Script命令,在打开的脚本窗口中键入以下代码:
on mouseUp me
i=the number of members of castlib 2
muiopen=new(xtra "mui") 创建一个新对象
filestring="请选择视频文件:"
openfilename=fileopen(muiopen,filestring)
muiopen=0
if (openfilename<>filestring) then
j=i+1 --约束第2个角色表中允许导入的视频格式类型
importFileInto new(#digitalVideo,member j of castlib 2), openfilename
else
alert("你没有选择文件!")
end if
--在列表中显示已经被导入到第2个角色表中的视频名称
repeat with i=1 to (the number of members of castlib 2)
--member(16)指的是托盘上用于存放信息的文本域
member(16).line[i+1]=the name of member i of castlib 2
end repeat
end
以下代码用于控制按钮的动态效果,当鼠标划过该按钮时,将产生一系列的变化,并在鼠标离开按钮时还原。该效果在很多多媒体作品中都得到了广泛的应用,本实例中的按钮将都采用该效果,因此在后面代码中将不再作解释,而直接给出代码。
on mousewithin me
sprite(5).member=member("vid09")
end
on mouseleave me
sprite(5).member=member("vid08")
end
到这里为止,关于界面元素的设定就完成了。通过本节的实际操作,我们已经制作出视频播放器的一些基本的界面需要,包括整体界面的制作、托盘以及托盘动画的制作、调入外部文件的实现等。本节所介绍的代码可以被移植到其他程序上,不过需要用户必须事先读明白程序的功能。
11.2.2 制作播放控制
界面元素确定下来以后,下面就需要制作视频的播放控制了。在一个视频播放器中,当视频被调入时,需要一些基本的控制,把包括:控制视频的播放与停止、控制视频快进与快退、控制声音的大小、控制视频播放的动态显示等。本节将逐一实现这些功能。
1.实现视频的控制
(1)在第一个角色表中选择vid 03,将其放置到6号精灵通道中,如图11-39所示。
图11-39 放置精灵
访问()
相关评论()
打印资源 返回顶部 加入收藏