仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 922|回复: 7
打印 上一主题 下一主题

[学习教程] 来谈谈:Flash教程:本性播放器的制造 (1)

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:40:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
FlashScreensaversMaker能够迅速的将您的Flash作品转化为屏保程序。
本文由中国教程网sanbos原创,转载请保存此信息!
这个播放器只能播放与该swf文件不异目次下的文件,因而在这里只能看到效果,不克不及加载文件。要测试这个播放器,请将这个swf与要播放的文件放到不异的目次中。
先看看效果:

这是一款播放器,它能够播放你硬盘上与该swf文件不异目次下的swf动画和mp3音乐文件,也能够用着图片扫瞄器。这款播放器的特性是,它自己其实不包括任何影音及图片文件,而是静态地加载电脑硬盘上的文件。因而,经由过程本例,我们次要能够实习静态加载内部文件及其把持的办法。

[1]200806/12940_2.html>[2]200806/12940_3.html>[3]200806/12940_4.html>[4]200806/12940_2.html>下一页



</P>那末如何翻开内部文件呢?我们在用别的软件时,点击“翻开”,城市弹出一个“翻开”对话框,那末在flash中是不是也能够作如许一个对话框呢?十分侥幸,flash为我们供应了一个被称作FileReference的类完成了了这个功效。
有了FileReference类,使得我们能够实验制造如许一款播放器,好吧,如今我们就下手来完成它。
我们起首把形状建起来吧。新建一flash文档,在第一层按下图绘制一个框架:

创立以下图所示四个按钮:

按下图提醒制造:

新建一层,将新制造的四个按钮元件按下图,放好:

再建以下图所示5个按钮,制造办法与下面的四个一样,然后按上图,放好。

另有别的的笔墨,粉饰啊也都放到这一层,按上图做就好了。
再建两个影片剪辑,注重这两个影片剪辑的注册点必定要放在左上角,这十分主要。以下图:



200806/12940.html>上一页200806/12940.html>[1][2]200806/12940_3.html>[3]200806/12940_4.html>[4]200806/12940_3.html>下一页



</P>然后将刚建的两个影片剪辑分离定名为:yl2、yl1,如图:
接上去,新建一图层:然后画一矩形,如图:

点击“修正”-“转换为元件”,将矩形转换为,影片剪辑。并在属性面板中,将该影片剪辑定名为:pm.
新建一图层,画一个与方才画的矩形巨细地位不异的矩形。然后在该层上点右键,-“遮罩”。
新建一图层,点击“文本”工具,画一个与下面矩形不异巨细地位的文本框。在属性面板中,设置以下:静态文本,定名为:mp3_txt,多行,利用设备字体。设置好笔墨巨细和字体,这个文本框是用来显现mp3的标签信息的,如歌曲称号,演唱者等。设置以下图:

好,到如今为止,表面完成,接上去的事就是写代码了。
上面的代码先容大概会有点乱,不妨,在最初我会将代码会合供应出来的,假如你只想复制代码,能够跳过这一段(黑体字部分)。
如今入手下手写代码,下面我们提到,FileReference类为我们供应了一个象windows翻开窗口一样的对话框,那末要用这个类,我们就起首要引进这个类:
新建一图层,取名为action,在第一帧,点右键,点“举措”,在举措窗口中输出:
importflash.net.FileReference;
  先先容一下FileReference,这个类,能够为我们翻开象windows翻开窗口一样的对话框,如图:

经由过程下面一句代码引进该类后,就能够利用它了。我们用它翻开“翻开”窗口,(有点咬口),要用到该类的browse办法,语法以下:
varfileRef:FileReference=newFileReference();
fileRef.browse(fltype);
这里我们注重到,browse()中带了一个参数:fltype,这个参数是指翻开的文件范例。它是一个数组,它的格局为:
fltype=[{description:"swf文件",extension:"*.swf"}];这是以翻开swf文件为例的,如许在翻开窗口中,则只会呈现swf文件,要翻开别的文件,参照此例。
FileReference类另有一事务我们要用到,onSelect,如上图,在我们选择一个文件,然后点击“翻开”时产生。
FileReference的name属性,一个主要的属性,它将前往我们选中的文件的称号,实在这才是我们要的器材。
好了。FileReference使用的完全代码以下:
importflash.net.FileReference;
varfltype:Array=newArray();
varflname:String;
fltype=[{description:"swf文件",extension:"*.swf"}];
varlistener:Object=newObject();
listener.onSelect=function(file:FileReference):Void{
flname=file.name;
}
varfileRef:FileReference=newFileReference();
fileRef.addListener(listener);
fileRef.browse(fltype);
实践这一段,我们失掉的就是一个我们选择的文件称号:flname.
在懂得了FileReference今后,我们就能够来编写代码了。
方才我们已在action层上写了一句:
importflash.net.FileReference; 了。
接上去是:
varfltype:Array=newArray();
varflname:String;
vari;
这两句声了然文件范例的数组变量和文件名变量,前面要用的。还声了然一个变量i,前面也会用到。
好,起首我们来加载swf文件,我们把代码写到,“swf文件“按钮上,点击”swf文件“按钮,翻开举措面板,写下以下代码:
on(release){

_root.i=1;
_root.fltype=[{description:"swf文件",extension:"*.swf"}];
varlistener:Object=newObject();
listener.onSelect=function(file:FileReference):Void{
_root.flname=file.name;
_root.pm.loadMovie(_root.flname);
_root.pm._x=105;
_root.pm._y=63;
_root.pm._xscale=75;
_root.pm._yscale=70;

}
varfileRef:FileReference=newFileReference();
fileRef.addListener(listener);
fileRef.browse(fltype);
_root.fd_bt._visible=false;
_root.mp3_txt._visible=false;
}
on(rollOver){
varbsy:Sound=newSound();
bsy.attachSound("bs");
bsy.start();
}
on(press){
varbsy:Sound=newSound();
bsy.attachSound("cs");
bsy.start();
}
我们来注释一下,这些代码,第一句_root.i=1;就是设置在工夫轴第一帧声明的变量i第于1,它的感化就是告知程序,如今点了”swf文件“按钮。
接上去几句,挪用了FileReference类,获得了文件名。有了文件名就好办了,用.loadMovie加载这个文件,并设置相干属性。这些属性就是把持加载的文件的巨细列位置。
接上去是,鼠标移过各点击按钮时,要加载的声响。
经由过程这个按钮上代码,我们已加载了一个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){
if(i=1){
varkj=_root.pm._currentframe+10;
_root.pm.gotoAndStop(kj);
}
中断按钮:
on(release){
if(_root.i=1){
_root.pm.gotoAndStop(1);
}
快进按钮:
on(release){
if(i=1){
varkt=_root.pm._currentframe-10;
_root.pm.gotoAndStop(kt);
}
加载swf文件就做完了,接上去是,加载图片文件,点击“图片文件”按钮,翻开举措面板,输出:
on(release){
importflash.net.FileReference;
_root.i=2;
_root.fltype=[{description:"图片文件",extension:"*.jpg;*.bmp;*.gif"}];
varlistener:Object=newObject();
listener.onSelect=function(file:FileReference):Void{
_root.flname=file.name;
_root.pm.loadMovie(_root.flname);
_root.pm._x=105;
_root.pm._y=63;

_root.pm._xscale=20;
_root.pm._yscale=20;
}

varfileRef:FileReference=newFileReference();
fileRef.addListener(listener);
fileRef.browse(fltype);
_root.fd_bt._visible=true;
_root.mp3_txt._visible=false;
}
on(rollOver){
varbsy:Sound=newSound();
bsy.attachSound("bs");
bsy.start();
}
on(press){
varbsy:Sound=newSound();
bsy.attachSound("cs");
bsy.start();
}
这段代码跟加载swf文件基础一样,分歧的是,第4行:
_root.fltype=[{description:"图片文件",extension:"*.jpg;*.bmp;*.gif"}];
这里,我们奖文件范例数组,设为了,可翻开jpg,bmp,gif,等,好能够翻开png格局的图片,你可在下面年夜括号中加上,.png就好了。别的图片加载的巨细被疫为原始图片的20%.不外后有一句:_root.fd_bt._visible=true; “缩小图片”按钮可见,这个按钮,可将图片缩小到与pm元件一样巨细。
点击“缩小图片”按钮,输出:
on(release){
_root.pm._width=413;
_root.pm._height=277;
}
接上去是“mp3文件“,按钮:
on(release){
_root.mp3_txt._visible=true;
_root.ztd=0;
importflash.net.FileReference;
_root.i=3;
_root.fltype=[{description:"mp3文件",extension:"*.mp3"}];
varlistener:Object=newObject();
listener.onSelect=function(file:FileReference):Void{
_root.flname=file.name;

_root.mymp3.stop();
_root.mymp3.onLoad=function(success:Boolean):Void{
if(success){
_root.mp3_txt.text=_root.flname;
varcq:String=_root.ANSI2UTF(_root.mymp3.id3.TOLY);
varsongname:String=_root.ANSI2UTF(_root.mymp3.id3.songname);
varycz:String=_root.ANSI2UTF(_root.mymp3.id3.TPE1);
_root.mp3_txt.text=_root.mp3_txt.text+"
"+"歌曲称号:"+songname;
_root.mp3_txt.text=_root.mp3_txt.text+"
"+"词曲:"+cq;
_root.mp3_txt.text=_root.mp3_txt.text+"
"+"演唱者:"+ycz;
};
}
_root.mymp3.loadSound(_root.flname,false);

}

varfileRef:FileReference=newFileReference();
fileRef.addListener(listener);
fileRef.browse(fltype);
_root.fd_bt._visible=false;
unloadMovie(_root.pm);
}
第一句:让mp3标签,可见,该文本框将显现歌曲称号,演唱者等信息。
第二句:是让一个变量ztd即是0,这个变量纪录了,歌曲播放时,点击停息按钮后,歌曲停息的地位。如今刚加载歌曲,停息点固然为零。接上去是弹出“翻开”窗口的命令,跟下面的一样。在取得文件名后。关于mp3文件,就要用如许的命令乐成加载国:
varmymp3:Sound=newSound(); //这一句我把它放到帧上了,也能够放到这里。
_root.mymp3.loadSound(_root.flname,false);
在mp3文件包括着一些相干信息,我们能够用Sound的id3属性将它们提掏出来显现在文本标签中,好比歌曲称号,演唱者,刊行年份等等。如:
Sound.id3.TIT2是歌曲称号,Sound.id3.TPE1是演唱者等。
当我将这些信息显现在文本框中时,发明全体是乱码,因而我在网上找到了一个办理举措来转换编码,这些举措我也不懂,但我晓得如何用,要声明一个函数ANSI2UTF,然后用这个函数来转换,以是我在工夫轴上声了然这个函数,我是照搬的:
functionANSI2UTF(ANSI_string){
vartemp=!(!System.useCodepage);
System.useCodepage=true;
varcode="";
for(vari=0;i<ANSI_string.length;i++){
code+="%"+ANSI_string.charCodeAt(i).toString(16);
}
varresult=unescape(code);
System.useCodepage=temp;
returnresult;
}
如许我们在这里要获得mp3标签中的信息就能够用这个函数不转换:
varsongname: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.mymp3.stop();
}
i=3是说如今按了“mp3文件“按钮。
Sound工具的position属性纪录了,中断播放声响的那一点,以毫秒为单元。
Sound的setVolume办法,能够为声响设置音量。音量把持的代码我们放在yl1原件上。


200806/12940_2.html>上一页200806/12940.html>[1]200806/12940_2.html>[2][3]200806/12940_4.html>[4]200806/12940_4.html>下一页



</P>上面我们接着来制造:接到下面的,当我们将表面完成后,新建一图层,取名为:action,然后翻开举措面板,输出以下代码:
importflash.net.FileReference;
varfltype:Array=newArray();
varflname:String;
vari=1;
varyl;
varztd=0;
fd_bt._visible=false;
varmymp3:Sound=newSound();
functionANSI2UTF(ANSI_string){

vartemp=!(!System.useCodepage);

System.useCodepage=true;

varcode="";

for(vari=0;i<ANSI_string.length;i++){

code+="%"+ANSI_string.charCodeAt(i).toString(16);

}

varresult=unescape(code);

System.useCodepage=temp;

returnresult;
}
varyly=yl1._y;
yl1.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._yyly){

this._y=yly;


}

_root.yl=((_root.yl1._x-_root.yl2._x)/_root.yl2._width)*100;

_root.mymp3.setVolume(_root.yl);
}
点击“swf文件”按钮,在举措面板中输出:
on(release){


_root.i=1;

_root.fltype=[{description:"swf文件",extension:"*.swf"}];

varlistener:Object=newObject();
listener.onSelect=function(file:FileReference):Void{
_root.flname=file.name;

_root.pm.loadMovie(_root.flname);

_root.pm._x=105;

_root.pm._y=63;

_root.pm._xscale=75;

_root.pm._yscale=70;

}
varfileRef:FileReference=newFileReference();
fileRef.addListener(listener);
fileRef.browse(fltype);
_root.fd_bt._visible=false;
_root.mp3_txt._visible=false;
}
on(rollOver){

varbsy:Sound=newSound();

bsy.attachSound("bs");

bsy.start();
}
on(press){

varbsy:Sound=newSound();

bsy.attachSound("cs");

bsy.start();
}
“图片文件”按钮中的代码:
on(release){
importflash.net.FileReference;

_root.i=2;

_root.fltype=[{description:"图片文件",extension:"*.jpg;*.bmp;*.gif"}];

varlistener:Object=newObject();
listener.onSelect=function(file:FileReference):Void{
_root.flname=file.name;

_root.pm.loadMovie(_root.flname);

_root.pm._x=105;

_root.pm._y=63;


_root.pm._xscale=20;

_root.pm._yscale=20;
}

varfileRef:FileReference=newFileReference();
fileRef.addListener(listener);
fileRef.browse(fltype);
_root.fd_bt._visible=true;
_root.mp3_txt._visible=false;
}
on(rollOver){

varbsy:Sound=newSound();

bsy.attachSound("bs");

bsy.start();
}
on(press){

varbsy:Sound=newSound();

bsy.attachSound("cs");

bsy.start();
}
“mp3文件”中的代码“
on(release){

_root.mp3_txt._visible=true;

_root.ztd=0;
importflash.net.FileReference;

_root.i=3;

_root.fltype=[{description:"mp3文件",extension:"*.mp3"}];

varlistener:Object=newObject();
listener.onSelect=function(file:FileReference):Void{
_root.flname=file.name;


_root.mymp3.stop();
_root.mymp3.onLoad=function(success:Boolean):Void{

if(success){

_root.mp3_txt.text=_root.flname;

varcq:String=_root.ANSI2UTF(_root.mymp3.id3.TOLY);

varsongname:String=_root.ANSI2UTF(_root.mymp3.id3.songname);



varycz:String=_root.ANSI2UTF(_root.mymp3.id3.TPE1);


_root.mp3_txt.text=_root.mp3_txt.text+"
"+"歌曲称号:"+songname;

_root.mp3_txt.text=_root.mp3_txt.text+"
"+"词曲:"+cq;


_root.mp3_txt.text=_root.mp3_txt.text+"
"+"演唱者:"+ycz;
};
}
_root.mymp3.loadSound(_root.flname,false);

}

varfileRef:FileReference=newFileReference();
fileRef.addListener(listener);
fileRef.browse(fltype);
_root.fd_bt._visible=false;
unloadMovie(_root.pm);
}
on(rollOver){

varbsy:Sound=newSound();

bsy.attachSound("bs");

bsy.start();
}
on(press){

varbsy:Sound=newSound();

bsy.attachSound("cs");

bsy.start();
}
“缩小图片”按钮上的代码:
on(release){
_root.pm._width=413;
_root.pm._height=277;
}
on(rollOver){

varbsy:Sound=newSound();

bsy.attachSound("bs");

bsy.start();
}
on(press){

varbsy:Sound=newSound();

bsy.attachSound("cs");

bsy.start();
}
播放按钮上的代码:
on(release){

if(_root.i=1){

_root.pm.play();

}

if(_root.i=3){

_root.mymp3.start(ztd);

}
}
停息按钮上的代码:
on(release){

if(_root.i=1){

_root.pm.stop();

}

if(_root.i=3){

_root.ztd=_root.mymp3.position/1000;

_root.mymp3.stop();

}
}
快退按钮上的代码:
on(release){

if(i=1){

varkj=_root.pm._currentframe+10;

_root.pm.gotoAndStop(kj);

}

if(_root.i=3){


_root.ztd=
(_root.mymp3.position-5000)/1000;

_root.mymp3.stop();


_root.mymp3.start(_root.ztd);

}
}
中断按钮上的代码:
on(release){

if(_root.i=1){

_root.pm.gotoAndStop(1);

}

if(_root.i=3){



_root.ztd=0;

_root.mymp3.stop();

}

}
快进按钮上的代码:
on(release){

if(i=1){

varkt=_root.pm._currentframe-10;

_root.pm.gotoAndStop(kt);

}

if(_root.i=3){


_root.ztd=
(_root.mymp3.position+5000)/1000;

_root.mymp3.stop();


_root.mymp3.start(_root.ztd);

}

}
在yl1元件上的代码:
on(press){

this.startDrag();

}
on(release){

this.stopDrag();

_root.yl=((_root.yl1._x-_root.yl2._x)/_root.yl2._width)*100;

_root.mymp3.setVolume(_root.yl);


}
on(rollOut){

this.stopDrag();

}与本文相干会商请到这里与作者交换:http://bbs.jcwcn.com/viewthread.php?tid=174477
</p>
200806/12940_3.html>上一页200806/12940.html>[1]200806/12940_2.html>[2]200806/12940_3.html>[3][4]


Flash又被称之为闪客,是由macromedia公司推出的交互式矢量图和Web动画的标准,由Adobe公司收购。
小女巫 该用户已被删除
沙发
发表于 2015-1-17 18:14:30 | 只看该作者
商业上的优势——品牌flash的创造;公司企业的flash宣传;flash技术在电视的应用
乐观 该用户已被删除
板凳
发表于 2015-1-26 19:08:34 | 只看该作者
商业上的优势——品牌flash的创造;公司企业的flash宣传;flash技术在电视的应用
海妖 该用户已被删除
地板
发表于 2015-2-4 21:24:20 | 只看该作者
在计算机出现之前,动画制作者必需手工绘制即使差别很小的不同祯的图像。当然,非自动的,一祯祯的动画在很多情况下仍然很有用,Flash也允许这样做。
兰色精灵 该用户已被删除
5#
发表于 2015-2-10 17:22:43 | 只看该作者
一个物体从一个角(关键祯1)移动到另一个角(关键祯2)。然后tweening在关键祯之间填充祯,从而使物体可以在屏幕上优雅地运动。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-1 15:59:01 | 只看该作者
假设一个Web设计者需要让一页上的不同元素之间相互作用。如果其中的一些元素出现在Box内,而另一些在Box之外,那么设计者就很不幸。
变相怪杰 该用户已被删除
7#
发表于 2015-3-10 22:15:22 | 只看该作者
flash制作的动画文件比较小,可以在网络上快速传播!
山那边是海 该用户已被删除
8#
发表于 2015-3-17 12:09:22 | 只看该作者
现在FLASH不是也可以调用后台数据库了么~在过几年没准可以通过FLASH来实现远程控制呢~(有点假了~呵呵)我了解的FLASH优点应该就是第一段那些了~缺点暂时想不出太多了~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-1 15:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表