flash as3使用播放声音和加载外部声音文件解析Word格式.docx
- 文档编号:21787803
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:32
- 大小:674.66KB
flash as3使用播放声音和加载外部声音文件解析Word格式.docx
《flash as3使用播放声音和加载外部声音文件解析Word格式.docx》由会员分享,可在线阅读,更多相关《flash as3使用播放声音和加载外部声音文件解析Word格式.docx(32页珍藏版)》请在冰豆网上搜索。
11.pic.filters=[zh];
12.}
OK,测试影片,一个漂亮的水汶效果立即出现在你的眼前。
代码分析:
首先声明了一个与图片一样大的BitmapData类实例bmp,用来作为置换图滤镜的参数。
varbmp:
然后声明一个置换图滤镜zh,将bmp作为参数。
varzh:
接下来声明了两个点,并将这两个点放到到一个叫zdxg的数组中,这个数组将用于bmp产生杂点的参数。
varp1:
varp2:
varzdxg:
然后,在ENTER_FRAME事件中调用ld函数。
addEventListener(Event.ENTER_FRAME,ld);
ld函数,动态改变两个点的位置,然后使bmp应用杂点功能,在每一帧的间隔产生不同的杂点效果,使置换滤镜效果产生变化,最后让影片剪辑pic,应用滤镜,实现水汶效果。
functionld(e:
zdxg[0].x+=0.2;
zdxg[1].y+=0.1;
bmp.perlinNoise(168,5,2,4,true,true,2,true,zdxg);
pic.filters=[zh];
}
利用Flash的AS3.0代码制作3D旋转动画效果
效果演示:
〖本教程着重于代码的编写,版本AS3.0。
图形元件的制作不作讲解,请参看有关教程。
〗
1、新建Flash文档,创建5个图形,(或导入5张图片到库中)。
2、创建一个影片剪辑,1层为图片层2层为代码层。
在1层把5张图片分别放在5帧中,在代码层输入stop();
如图:
3、Ctrl+L打开库,右键单击影片剪辑实例做链接,类名为:
IconMenu如图:
4、返回场景1,图层1为背景层,图层2为代码层。
在图层1导入背景图片。
图层2输入代码:
1.include"
Math2.as"
2.//图片容器
3.varmenu:
Sprite=newSprite();
4.//使图标移动
5.menu.x=300;
6.menu.y=200;
7.//注册事件侦听器
8.menu.addEventListener(Event.ENTER_FRAME,moveMenu);
9.this.addChild(menu);
10.//椭圆在x和y轴上的截距
11.vardisx:
Number=200;
12.vardisy:
Number=10;
13.//旋转速度
14.varspeed:
Number=0;
15.initMenu(5);
16.functioninitMenu(n:
int){
17.for(vari:
int;
i<
n;
i++){
18.varmc:
MovieClip=newIconMenu();
19.//缩小图标
20.mc.scaleX=mc.scaleY=.5;
21.menu.addChild(mc);
22.}
23.}
24.//事件侦听器函数
25.functionmoveMenu(e:
26.//获取图标数
27.variconCount:
int=menu.numChildren;
28.//定义数组
29.vardepthArray:
Array=newArray();
30.//把360度平分
31.varangle:
Number=360/iconCount;
32.for(varz:
z<
iconCount;
z++){
33.//根据深度获取图标
34.varmc:
MovieClip=menu.getChildAt(z);
35.//跳转到不同帧,来显示不同的图标
36.mc.gotoAndStop(z+1);
37.//设置图标的位置
38.mc.x=cosD(speed+angle*z)*disx;
39.mc.y=sinD(speed+angle*z)*disy;
40.setProp(mc,"
alpha"
);
41.setProp(mc,"
scaleX"
.2,.7);
42.setProp(mc,"
scaleY"
43.//保存图标到数组
44.depthArray[z]=mc;
45.}
46.//重新设置图标的深度
47.arrange(depthArray);
48.speed+=2;
49.}
50.functionarrange(depthArray:
Array):
51.//按照y坐标排序
52.depthArray.sortOn("
y"
Array.NUMERIC);
53.vari:
int=depthArray.length;
54.while(i--){
55.menu.setChildIndex(depthArray[i],i);
56.}
57.}
58.functionsetProp(mc:
MovieClip,prop:
String,n1:
Number=.5,n2:
Number=1):
59.mc[prop]=((mc.y+2*disy)/disy-1)/2*(n2-n1)+n1;
60.}
5、新建.as文档,保存名为:
Math2.as(这个文档是进行三角函数的计算)
输入代码:
1.//角度转弧度
2.functionangleToRadian(angle:
Number):
Number
3.{
4.returnangle*(Math.PI/180);
5.}
6.//弧度转角度
7.functionradianToAngle(radian:
8.{
9.returnradian*(180/Math.PI);
10.}
11.//计算正弦值
12.functionsinD(angle:
13.{
14.returnMath.sin(angleToRadian(angle));
15.}
16.//计算余弦值
17.functioncosD(angle:
18.{
19.returnMath.cos(angleToRadian(angle));
20.}
21.//计算反正切
22.functionatan2D(y:
Number,x:
23.{
24.returnradianToAngle(Math.atan2(y,x));
25.}
复制代码
把fla文档与Math2.as文档保存在同一目录下,进行测试。
[AS3编程教学]从库中加载声音并控制播放
概述:
Flash交互作品对于声音的控制是比较灵活和常用的,接下去笔者将抽空对声音控制写一批由简至难的教程,而本节教程详细讲述如何从库里加载一个声音文件到舞台上并控制其播放。
1.首先,我们打开FlashCS5,按下Ctrl+N,新建一个FlashAS3文档,如下图所示:
2.其次,我们需要导入一个mp3格式的音乐文件到库中。
可以执行“文件/导入/导入到库”来操作,也可以直接从文件夹拖动到flash库里,如下图所示我们导入了声音文件:
3.要用程序将声音加载到舞台控制播放,那么就需要给声音文件一个绑定的类名,所以我们在声音文件上单击右键/属性,然后点击ActionScript,勾选“为ActionScript导出和第一帧导出”,给声音一个链接类名:
TestSound:
4.选择主时间轴第一帧,按下F9,写以下代码,然后按下Ctrl+Enter,你便能听到音乐播放了:
importflash.media.Sound;
varmySound:
Sound=newTestSound()asSound;
mySound.play();
1.播放函数有一个开始播放时间和重复播放次数的参数,我们让声音从第三秒开始播放,并且连续播放三遍需要这样写:
varmySound:
mySound.play(3000,3);
2.还有一个就是循环播放,当声音播放结束后自动开始再次播放,重复无数遍,此时就需要增加一个事件监听,当播放结束后再次开始:
varsndChanel:
SoundChannel=mySound.play();
sndChanel.addEventListener(Event.SOUND_COMPLETE,rePlaySound);
functionrePlaySound(e:
void
{
mySound.play();
如果声音文件导入时提示“一个或多个文件未导入”,一般是mp3文件过大或者格式不兼容,你下载一个“全能音频转换通”,另存为一下就好了。
[AS3.0编程教学]最全的声音控制方法
网上做flash音乐播放器的人不少,这个作品主要是对声音的外部读取,然后保存,然后控制播放,暂停,停止等操作,今天这个作品就是向大家展示这些操作的方法。
1.首先我们新建一个文件,在舞台上摆出下面这些按钮,我们今天对这个声音文件的操纵就如按钮所示:
2.动手之前我们按下Ctrl+Shift+F12,打开ActionScript设置,将“自动申明舞台对象”打钩取消,我们将每个对象自己用Public声明,这样做的好处是开发时每个元件的属性方便引用和提醒。
3.我们新建一个文档类,首先声明舞台上这些按钮,并定义声音变量:
testSound,控制变量testChannel,testTrans,testPosition。
publicvarbtnPlay:
SimpleButton;
publicvarbtnPause:
publicvarbtnStop:
publicvarbtnQuick:
publicvarbtnVocUp:
publicvarbtnVocDown:
publicvarbtnPanUp:
publicvarbtnPanDown:
privatevartestSound:
Sound;
privatevartestChannel:
SoundChannel;
privatevartestTrans:
SoundTransform;
privatevartestPosition:
Number=0;
4.首先用下面代码将一首叫做“test.mp3"
的音乐加载到舞台。
publicfunctionTestSoundMain(){
testSound=newSound();
testChannel=newSoundChannel();
testTrans=newSoundTransform();
testSound.load(newURLRequest("
test.mp3"
));
testSound.addEventListener(Event.COMPLETE,soundLoadOver);
privatefunctionsoundLoadOver(e:
void
testSound.removeEventListener(Event.COMPLETE,soundLoadOver);
soudLoad=true;
5.播放按钮功能。
控制音乐播放的按钮,单击后音乐开始播放,并记录音乐的SoundChannel属性。
为了防止连击,我们定义一个isSoundPlay布尔变量判断音乐是否在播放中。
//播放按钮功能
privatefunctionplayBtnEvent():
void{
btnPlay.addEventListener(MouseEvent.CLICK,soundPlay);
privatefunctionsoundPlay(e:
MouseEvent):
if(isSoundPlay)return;
isSoundPlay=true;
testChannel=testSound.play(testPosition);
6.暂停按钮功能,该按钮让音乐暂停掉,为了能继续播放,我们需要记录下此时testChannel的位置,然后播放按钮单击时可以继续播放
//暂停按钮功能
privatefunctionpauseBtnEvent():
btnPause.addEventListener(MouseEvent.CLICK,soudPause);
privatefunctionsoudPause(e:
if(!
isSoundPlay)return;
isSoundPlay=false;
testPosition=testChannel.position;
testChannel.stop();
7.停止按钮功能,单击后音乐停止播放,记录位置归0.
//停止按钮功能
privatefunctionstopBtnEvent():
btnStop.addEventListener(MouseEvent.CLICK,soundStop);
privatefunctionsoundStop(e:
testPosition=0
8.快进声音。
单击该按钮时,我们让声音从当前位置向前播放500毫秒,也就是快进半秒。
//快进按钮功能
privatefunctionqucikBtnEvent():
btnQuick.addEventListener(MouseEvent.CLICK,soudQuickPlay);
privatefunctionsoudQuickPlay(e:
testChannel=testSound.play(testPosition+500);
9.设定声音的音量增加。
控制音量就需要soundTransform对象了,它其实是testChanel的soundTransform属性而已,通过它来控制音量。
//音量增加
privatefunctionvolumeUpBtnEvent():
void{
btnVocUp.addEventListener(MouseEvent.CLICK,upSoudVoc);
privatefunctionupSoudVoc(e:
testTrans=testChannel.soundTransform;
varaddedVoc:
Number=testTrans.volume>
1?
1:
(testTrans.volume+
0.05);
testTrans.volume=addedVoc;
testChannel.soundTransform=testTrans;
}
10.设定声音的音量减小。
//音量减小
privatefunctionvolumeDownBtnEvent():
btnVocDown.addEventListener(MouseEvent.CLICK,downSoundVoc);
privatefunctiondownSoundVoc(e:
vardownVoc:
Number=testTrans.volume<
0?
0:
(testTrans.volume-
testTrans.volume=downVoc;
11.设定声音的平衡度向右,点击此按钮声音的平衡性会右移,直到变成右声道。
//平衡向右移动
privatefunctionpanRightBtnEvent():
btnPanUp.addEventListener(MouseEvent.CLICK,upSoundPan);
privatefunctionupSoundPan(e:
varaddedPan:
Number=testTrans.pan>
(testTrans.pan+0.05);
testTrans.pan=addedPan;
12.设定声音的平衡度向左,点击此按钮声音的平衡性会左移,直到变成左声道。
//平衡向左移动
privatefunctionpanLeftBtnEvent():
btnPanDown.addEventListener(MouseEvent.CLICK,downSoundPan);
privatefunctiondownSoundPan(e:
vardownPan:
Number=testTrans.pan<
(testTrans.pan-0.05);
testTrans.pan=downPan;
13.最后别忘了所有你定义的函数都要写到音乐加载完成的那个函数里执行,或者构造函数也可以。
就像下面这样子:
//加载音乐并控制播放
playBtnEvent();
pauseBtnEvent();
stopBtnEvent();
qucikBtnEvent();
volumeUpBtnEvent();
volumeDownBtnEvent();
panRightBtnEvent();
panLeftBtnEvent();
14.所有这些一个个代码合并到一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flash as3使用播放声音和加载外部声音文件解析 as3 使用 播放 声音 加载 外部 声音文件 解析