flash中的声音控制实现代码
评论:有时我们需要控制Flash中的音乐进程。在这里,我们简单地整理出常用的语音控制代码在Flash中,我们需要有朋友,我们需要收集。以简单的方式演奏音乐
1。首先打开新的Flash文件并将声音导入到库中(以及不能触摸接口的朋友按Ctrl + R)
2。导入后,声音的ID在库中定义,如图中所示:
***在这里,在现场的实体名称是不同的。
三.然后在第一个框架中编写代码,如下所示
声音对象=新(音); / /定义声音类
mysound.attachsound(番茄); / /提取我们可以设置在图书馆的ID
(声音对象。开始); / /播放声音
4。测试的结果。
音乐的开始、停止和循环
MySound.start({ secondsoffset },循环);
在开始的两参数secondsoffset,秒秒数,和偏移取消或撤销的意义。所以简单地说,就是取消开始播放和秒计数。没有定义,它是0,而另一个循环就是循环。
MySound.start(5, 99);
这意味着音乐从第五秒起播放99次。这里是mysound.start例(0,99);
单击以浏览文件
MySound.stop();
MySound.stop(番茄); / /如果声音不确定如果这样使用,或多个声音都会停止
这很简单,不要解释…停止音乐
我们看到按钮控件在一些站点上播放和停止的效果,可以通过使用这些控件来实现,例如:
声音对象=新的声音();
mysound.attachsound(番茄);
MySound.start(0,99); / /音乐开始播放99次
var音乐= true;定义当前的变量记录正在播放音乐,因为音乐一直在播放,所以设置为true。
btn.onrelease =函数(){
如果(音乐)当变量是真的时,它说音乐正在播放
MySound.stop(停止); / /使用音乐停止
音乐= false;false变量记录音乐停止
}在下面和相反的上方
MySound.start(0,99);
音乐=游戏;
}
}
setpan和设置音量
mysound.setpan(PAN);
泛值是从- 100到100,目的是设置说话者的平衡。100只能听到左喇叭的声音,100个是右喇叭,0个是平衡点,两个喇叭能听到声音。
例如:
声音对象=新的声音();
mysound.attachsound(番茄);
MySound.start(0, 10);
var扬声器= 100;设置为100变量,即从左角开始。
MySound.setPan(发言人); / /设置角平衡
功能(PAN){ / /设置功能和每秒setInterval平衡调整
扬声器= 20; /第二平衡偏移量20
MySound.setPan(发言人); / /套音箱的平衡
如果(扬声器> 100){当音乐完全偏移到右喇叭时,停止播放。
MySound.stop();
ClearInterval(P);
}
}
var p = setInterval(Pan,1000); / /每秒角平衡
mysound.setvolume(体积);
体积是0-100,0是静音,100是最大的。
声音对象=新的声音();
mysound.attachsound(番茄);
MySound.start(0, 99);
var =关键。vol._y; / /最高点定义拖动按钮
VaR左=右=关键。vol._x; / /定义拖动范围
无功底=关键。vol._y + 100; / /低清晰度拖动按钮
key.vol.onpress =函数(){
This.startDrag(真的,左,上,右,下); / /按钮拖动范围
}
在每一帧=函数(){
V = int(关键。TextInput。价值。文本); / /获取输入框的值
mysound.setvolume(V); / /音量设置
}
位置、持续时间和停顿
mysound.position();
只读指令主要是获得当前播放的音乐的毫秒数(1秒= 1000毫秒),可以在音乐播放后获得,在开始()之后不能获得。
mysound.duration();
阅读教学是获取毫秒的音乐总数量使音乐播放暂停,然后继续在开始播放暂停,我们可以得到的位置,按下暂停键,然后按播放了位置,开始时使用(secondsoffset)这又使音乐从暂停部分游戏,如:
声音对象=新的声音();
mysound.attachsound(番茄);
无功secondsoffset = 0; / / 0集secondsoffset
p1.onrelease =函数(){
MySound.start(secondsoffset,0); / /播放按钮0offset播放器
}
p2.onrelease =函数(){
secondsoffset =声音对象。位置 / / / 1000;按下暂停按钮记录的位置和变化的秒数
(声音对象。停止); / /音乐停顿
}
(onEnterFrame =功能){ / /这一循环
如果(mysound.position = =声音对象。时间){ / /如果毫秒数等于总的音乐播放数毫秒
MySound.start(0, 99); / /循环99次
}
}
只要上面的方法,向后和快速播放非常简单,如下所示:
在1个按钮上设置两个按钮。场景,分别(向后转速和快速播放法郎)
2。在第一帧中使用了以下代码:
声音对象=新的声音();
mysound.attachsound(番茄);
MySound.start();
无功secondsoffset = 0;
无功反向=了= false; / /来回变量为假
在每一帧=函数(){
如果(反mysound.position > 0){ / /当背压和音乐超过0秒
(声音对象。停止); / /音乐停止
secondsoffset = 5; / /偏移后0.5秒
MySound.start(secondsoffset,0); / /音乐开始从后面0.5秒播放
}
If (foward mySound.position < = mySound.duration) {/ / when playing music is not the end and press
MySound.stop();
secondsoffset = 5; / /偏移0.5秒领先
MySound.start(secondsoffset,0);
}
(rev.onpress =功能){ / /当背压和位置
secondsoffset =声音对象。位置 / 1000;
反向= true;
};
(rev.onrelease =功能){ / /当回开集反变量错误
倒=假;
}
(ff.onpress =功能){ / /。
secondsoffset =声音对象。位置 / 1000;
我=真;
};
ff.onrelease =函数(){
前=假;
}
};
至于loadsound部分,写一个进度条的素描
1。建立一个长度为100%的MC(loadbar)在现场
2。在第一帧中使用了以下代码:
指针函数(){
声音对象=新的声音();
mysound.loadsound(番茄。MP3 ); / /在同一目录下的MP3
var = 0;启动0
LoadBar。_xscale = %; / /百分之宽度比例的进步
};
在每一帧=函数(){
mysoundbytestotal = mysound.getbytestotal(大小); / /获取文件
mysoundbytesloaded =(声音对象。getbytesloaded / /获得);加载当前文件大小
% = int(mysoundbytesloaded / mysoundbytestotal×100); / /计算文件的加载率
LoadBar。_xscale = %; / /设置进度条的宽度比
如果(百分比> = 100)在完全加载时
结束绘制; / /删除周期
(mySound.start); / / the music began to play.
}
};
Q1。为什么不能在loadmovie SWF音乐播放
答:改变的只是声音对象=新的声音()为声音对象=新的声音(这)在SWF文件中
为什么不能Q2。同时设置两个不同的音乐卷。
mysound1 =新的声音();
mysound1.attachsound(tomato1 );
mysound1.start();
mysound2 =新的声音();
mysound2.attachsound(tomato2 );
mysound2.setvolume(50); / /另一首卷50
mysound2.start();
但是这是错误的,正确的方法是分别将音乐分成不同的层:
mysound1 =新的声音(这);
mysound1.attachsound(tomato1 );
mysound1.start();
CreateEmptyMovieClip(MC
mysound2 =新的声音(MC);
mysound2.attachsound(tomato2 );
(50)mysound2.setvolume;
mysound2.start();