版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上flash制作个性播放器附教材.发表日期:2015-5-27 15:47:00 出处:中国教程网 作者:未知 发布人: 已被访问 43 次 这是一款播放器,它可以播放你硬盘上与该swf文件相同目录下的swf动画和mp3音乐文件,也可以用着图片浏览器。这款播放器的特点是,它本身并不包含任何影音及图片文件,而是动态地加载电脑硬盘上的文件。因此,通过本例,我们主要可以练习动态加载外部文件及其控制的方法。那么怎样打开外部文件呢?我们在用其它软件时,点击“打开”,都会弹出一
2、个“打开”对话框,那么在flash中是否也可以作这样一个对话框呢?非常幸运,flash为我们提供了一个被称作FileReference的类实现了了这个功能。有了FileReference类,使得我们可以尝试制作这样一款播放器,好吧,现在我们就动手来实现它。我们首先把外形建起来吧。新建一flash文档,在第一层按下图绘制一个框架:图1创建如下图所示四个按钮按下图提示制作新建一层,将新制作的四个按钮元件按下图,放好:图4再建如下图所示个按钮,制作方法与上面的四个一样,然后按上图,放好还有其它的文字,点缀啊也都放到这一层,按上图做就行了。再建两个影片剪辑,注意这两个影片剪辑的注册点一定要放在左上角,
3、这非常重要。如下图:然后将刚建的两个影片剪辑分别命名为:yl2、yl1,如图:接下来,新建一图层:然后画一矩形,如图:点击“修改”“转换为元件”,将矩形转换为,影片剪辑。并在属性面板中,将该影片剪辑命名为:pm.新建一图层,画一个与刚才画的矩形大小位置相同的矩形。然后在该层上点右键,“遮罩”。新建一图层,点击“文本”工具,画一个与上面矩形相同大小位置的文本框。在属性面板中,设置如下:动态文本,命名为:mp3_txt,多行,使用设备字体。设置好文字大小和字体,这个文本框是用来显示mp3的标签信息的,如歌曲名称,演唱者等。设置如下图:图10好,到现在为止,外观完成,接下来的事就是写代码了。下面的代
4、码介绍可能会有点乱,没关系,在最后我会将代码集中提供出来的,如果你只想复制代码,可以跳过这一段(黑体字部分)。现在开始写代码,上面我们提到,FileReference类为我们提供了一个象windows打开窗口一样的对话框,那么要用这个类,我们就首先要引入这个类:新建一图层,取名为action,在第一帧,点右键,点“动作”,在动作窗口中输入:import .FileReference;先介绍一下FileReference,这个类,可以为我们打开象windows打开窗口一样的对话框,如图图11通过上面一句代码引入该类后,就可以使用它了。我们用它打开“打开”窗口,(有点咬口),要用到该类的brows
5、e方法,语法如下:var fileRef:FileReference = new FileReference();fileRef.browse(fltype);这里我们注意到,browse()中带了一个参数:fltype,这个参数是指打开的文件类型。它是一个数组,它的格式为:fltype = description:"swf文件",extension: "*.swf"这是以打开swf文件为例的,这样在打开窗口中,则只会出现swf文件,要打开其它文件,参照此例。FileReference类还有一事件我们要用到,onSelect,如上图,在我们选择一个文件,
6、然后点击“打开”时发生。FileReference的name属性,一个重要的属性,它将返回我们选中的文件的名称,其实这才是我们要的东西。好了。FileReference应用的完整代码如下:import .FileReference;var fltype:Array = new Array();var flname:String ;fltype = description:"swf文件",extension: "*.swf"var listener:Object = new Object();listener.onSelect = function(fil
7、e:FileReference):Void flname = ;var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(fltype);实际这一段,我们得到的就是一个我们选择的文件名称:flname.在了解了FileReference以后,我们就可以来编写代码了。刚才我们已经在action层上写了一句:import .FileReference;了。接下来是:var fltype:Array = new Array();var flname:Str
8、ing ;var i;这两句声明了文件类型的数组变量和文件名变量,后面要用的。还声明了一个变量i,后面也会用到。好,首先我们来加载swf文件,我们把代码写到,“swf文件“按钮上,点击”swf文件“按钮,打开动作面板,写下如下代码:on(release) _root.i = 1;_root.fltype = description:"swf文件",extension: "*.swf"var listener:Object = new Object();listener.onSelect = function(file:FileReference):Voi
9、d _root.flname = ;_root.pm.loadMovie(_root.flname);_root.pm._x = 105;_root.pm._y = 63;_root.pm._xscale = 75;_root.pm._yscale = 70;var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(fltype);_root.fd_bt._visible = false;_root.mp3_txt._visible = false;
10、on(rollOver) var bsy:Sound = new Sound();bsy.attachSound("bs");bsy.start();on(press) var bsy:Sound = new Sound();bsy.attachSound("cs");bsy.start();我们来解释一下,这些代码,第一句_root.i = 1;就是设置在时间轴第一帧声明的变量i第于,它的作用就是告诉程序,现在点了”swf文件“按钮。接下来几句,调用了FileReference类,取得了文件名。有了文件名就好办了,用.loadMovie加载这个文件,并
11、设置相关属性。这些属性就是控制加载的文件的大小各位置。接下来是,鼠标移过各点击按钮时,要加载的声音。通过这个按钮上代码,我们已经加载了一个swf文件到场景的pm元件上。接下来就是控制已加载的文件了。看看下面几个按钮,它们就是用来控制加载的文件的。先打开播放按钮,在动作面板中输入如下代码:on(release) if (_root.i=1) _root.pm.play();看到i的作用了吧,假如i=1(假如点的是“swf文件“按钮),加载的文件开始播放。然后是暂停按钮,代码这样写:on(release) if (_root.i=1) _root.pm.stop();快退按钮:on(release
12、)if (i=1)var kj = _root.pm._currentframe + 10;_root.pm.gotoAndStop(kj);停止按钮:on(release) if (_root.i=1) _root.pm.gotoAndStop(1);快进按钮:on(release)if (i=1)var kt = _root.pm._currentframe - 10;_root.pm.gotoAndStop(kt);加载swf文件就做完了,接下来是,加载图片文件,点击“图片文件”按钮,打开动作面板,输入:on(release)import .FileReference;_root.i =
13、 2;_root.fltype = description:"图片文件",extension: "*.jpg;*.bmp;*.gif"var listener:Object = new Object();listener.onSelect = function(file:FileReference):Void _root.flname = ;_root.pm.loadMovie(_root.flname);_root.pm._x = 105;_root.pm._y = 63;_root.pm._xscale = 20;_root.pm.
14、_yscale = 20;var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(fltype);_root.fd_bt._visible = true;_root.mp3_txt._visible = false;on(rollOver) var bsy:Sound = new Sound();bsy.attachSound("bs");bsy.start();on(press) var bsy:Sound = new Sound();bsy.
15、attachSound("cs");bsy.start();这段代码跟加载swf文件基本一样,不同的是,第行:_root.fltype = description:"图片文件",extension: "*.jpg;*.bmp;*.gif"这里,我们奖文件类型数组,设为了,可打开jpg,bmp,gif,等,好可以打开png格式的图片,你可在上面大括号中加上,.png就行了。另外图片加载的大小被疫为原图的20%.不过后有一句:_root.fd_bt._visible = true;“放大图片”按钮可见,这个按钮,可将图片放大到与pm元件一
16、样大小。点击“放大图片”按钮,输入:on(release)_root.pm._width = 413;_root.pm._height = 277;接下来是“mp3文件“,按钮:on(release)_root.mp3_txt._visible = true;_root.ztd = 0;import .FileReference;_root.i = 3;_root.fltype = description:"mp3文件",extension: "*.mp3"var listener:Object = new Object();listener.onSel
17、ect = function(file:FileReference):Void _root.flname = ;_root.mymp3.stop();_root.mymp3.onLoad = function(success:Boolean):Void if (success) _root.mp3_txt.text = _root.flname;var cq:String=_root.ANSI2UTF(_root.mymp3.id3.TOLY);var songname:String=_root.ANSI2UTF(_root.mymp3.id3.songname);
18、;var ycz:String=_root.ANSI2UTF(_root.mymp3.id3.TPE1);_root.mp3_txt.text =_root.mp3_txt.text + "n" + "歌曲名称:" + songname;_root.mp3_txt.text =_root.mp3_txt.text + "n" + "词曲:" + cq;_root.mp3_txt.text =_root.mp3_txt.text + "n" + "演唱者:" + ycz;_ro
19、ot.mymp3.loadSound(_root.flname, false);var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(fltype);_root.fd_bt._visible = false;unloadMovie(_root.pm);第一句:让mp3标签,可见,该文本框将显示歌曲名称,演唱者等信息。第二句:是让一个变量ztd等于0,这个变量记录了,歌曲播放时,点击暂停按钮后,歌曲暂停的位置。现在刚加载歌曲,暂停点当然为零。接下来是弹出“打开”窗口
20、的命令,跟上面的一样。在获得文件名后。对于mp3文件,就要用这样的命令成功加载国:var mymp3:Sound = new Sound();/这一句我把它放到帧上了,也可以放到这里。_root.mymp3.loadSound(_root.flname, false);在mp3文件包含着一些相关信息,我们可以用Sound的id3属性将它们提取出来显示在文本标签中,比如歌曲名称,演唱者,发行年份等等。如:Sound.id3.TIT2 是歌曲名称,Sound.id3.TPE1是演唱者等。当我将这些信息显示在文本框中时,发现全部是乱码,于是我在网上找到了一个解决办法来转换编码,这些办法我也不懂,但我
21、知道怎样用,要声明一个函数ANSI2UTF,然后用这个函数来转换,所以我在时间轴上声明了这个函数,我是照搬的:function ANSI2UTF(ANSI_string) var temp = !(!System.useCodepage);System.useCodepage = true;var code = ""for (var i = 0; icode += "%"+ANSI_string.charCodeAt(i).toString(16);var result = (code);System.useCodepage = temp;return
22、result;这样我们在这里要取得mp3标签中的信息就可以用这个函数不转换:var songname:String=_root.ANSI2UTF(_root.mymp3.id3.songname);经测试现在能正常显试了。同样的,在加载了mp3文件后,我们仍要用几个按钮来控制它,还是播放,暂停等那几个按钮:在播放按钮的on(release)中加:if (_root.i=3)_root.mymp3.start(ztd);这是从暂停点开始播放加载的mp3文件。在暂停按钮中,加:if (_root.i = 3)_root.ztd = _root.mymp3.position/1000;_root.m
23、ymp3.stop();i=3是说现在按了“mp3文件“按钮。Sound对象的position属性记录了,停止播放声音的那一点,以毫秒为单位。Sound的setVolume方法,可以为声音设置音量。音量控制的代码我们放在yl1原件上。下面我们接着来制作:接到上面的,当我们将外观完成后,新建一图层,取名为:action,然后打开动作面板,输入如下代码:import .FileReference;var fltype:Array = new Array();var flname:String ;var i = 1;var yl;var ztd = 0;fd_bt._visible = false;
24、var mymp3:Sound = new Sound();function ANSI2UTF(ANSI_string) var temp = !(!System.useCodepage);System.useCodepage = true;var code = ""for (var i = 0; icode += "%"+ANSI_string.charCodeAt(i).toString(16);var result = (code);System.useCodepage = temp;return result;var yly = yl1._y;y
25、l1.onMouseMove = function ()if (this._x < yl2._x ) this._x = yl2._x;this.stopDrag();if (this._x > yl2._x + 185) this._x =yl2._x + 180 ;this.stopDrag();if (this._y <> yly ) this._y = yly;_root.yl = (_root.yl1._x - _root.yl2._x)/_root.yl2._width)*100;_root.mymp3.setVolume(_root.yl);点击“swf文
26、件”按钮,在动作面板中输入:on(release) _root.i = 1;_root.fltype = description:"swf文件",extension: "*.swf"var listener:Object = new Object();listener.onSelect = function(file:FileReference):Void _root.flname = ;_root.pm.loadMovie(_root.flname);_root.pm._x = 105;_root.pm._y = 63;_root.p
27、m._xscale = 75;_root.pm._yscale = 70;var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(fltype);_root.fd_bt._visible = false;_root.mp3_txt._visible = false;on(rollOver) var bsy:Sound = new Sound();bsy.attachSound("bs");bsy.start();on(press) var bsy
28、:Sound = new Sound();bsy.attachSound("cs");bsy.start();“图片文件”按钮中的代码:on(release)import .FileReference;_root.i = 2;_root.fltype = description:"图片文件",extension: "*.jpg;*.bmp;*.gif"var listener:Object = new Object();listener.onSelect = function(file:FileReference):Void _roo
29、t.flname = ;_root.pm.loadMovie(_root.flname);_root.pm._x = 105;_root.pm._y = 63;_root.pm._xscale = 20;_root.pm._yscale = 20;var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(fltype);_root.fd_bt._visible = true;_root.mp3_txt._visible = false;on(roll
30、Over) var bsy:Sound = new Sound();bsy.attachSound("bs");bsy.start();on(press) var bsy:Sound = new Sound();bsy.attachSound("cs");bsy.start();“mp3文件”中的代码“on(release)_root.mp3_txt._visible = true;_root.ztd = 0;import .FileReference;_root.i = 3;_root.fltype = description:"mp3文件&
31、quot;,extension: "*.mp3"var listener:Object = new Object();listener.onSelect = function(file:FileReference):Void _root.flname = ;_root.mymp3.stop();_root.mymp3.onLoad = function(success:Boolean):Void if (success) _root.mp3_txt.text = _root.flname;var cq:String=_root.ANSI2UTF(_root
32、.mymp3.id3.TOLY);var songname:String=_root.ANSI2UTF(_root.mymp3.id3.songname);var ycz:String=_root.ANSI2UTF(_root.mymp3.id3.TPE1);_root.mp3_txt.text =_root.mp3_txt.text + "n" + "歌曲名称:" + songname;_root.mp3_txt.text =_root.mp3_txt.text + "n" + "词曲:" + cq;_root.
33、mp3_txt.text =_root.mp3_txt.text + "n" + "演唱者:" + ycz;_root.mymp3.loadSound(_root.flname, false);var fileRef:FileReference = new FileReference();fileRef.addListener(listener);fileRef.browse(fltype);_root.fd_bt._visible = false;unloadMovie(_root.pm);on(rollOver) var bsy:Sound = new Sound();bsy.attachSound("bs");bsy.start();on(press) var bsy:Sound = new Sound();bsy.attachSound("cs");bsy.start();“放大图片”按钮上的代码:on(release)_root.pm._wi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度数据中心服务器租赁合同
- 2024医院病房清洁服务合同
- 2024年展览保险服务协议
- 2024年度0kv线路工程建设的合作开发合同
- 2024年度婚礼主持委托合同
- 2024年定制版太阳能系统维护合同
- 2024年度太阳能热水系统安装合同
- 2024年度城市供水供电供气合同
- 2024年三人股东责任承担协议
- 04版建筑工程合同
- 无肝素透析的护理课件-2
- 每日消防安全巡查记录表
- 起重作业吊装令
- 三角函数知识点复习总结填空
- 大学钢琴即兴伴奏教案
- 最新VTE指南解读(静脉血栓栓塞症的临床护理指南解读)
- 博鳌亚洲论坛海南年会PPT模板
- 新教材人教版高中化学选择性必修三全册教学课件
- 2023年银行业风险管理(中级)考试考试题库(真题整理)
- 监护仪培训-PPT课件
- 沟通技巧游戏
评论
0/150
提交评论