flash中声音控制实现代码

2019-10-08 14:49:24王冬梅

1. 在场景上建立一个为100%长度的MC(loadBar)
2. 在第一帧使用以下代码 :
onLoad = function () {
mySound = new Sound();
mySound.loadSound("tomato.mp3"); //载入同一目录中的MP3
var percent = 0; //%一开始为0
loadBar._xscale = percent; //进度条的宽度比例为percent
};
onEnterFrame = function () {
mySoundBytesTotal = mySound.getBytesTotal(); //取得文件的size
mySoundBytesLoaded = mySound.getBytesLoaded(); //取得目前文件所载入的size
percent = int(mySoundBytesLoaded/mySoundBytesTotal*100); //计算出文件所载入的比例
loadBar._xscale = percent; //设定进度条宽度比例
if (percent>=100) { //当完全载入之后
delete onEnterFrame; //删除循环
mySound.start(); //音乐开始播放
}
};

Q1. 为何loadMovie当中的swf音乐无法播放?
ans: 只要在swf当中把 mySound = new Sound() 换成 mySound = new Sound(this) 就可以了
Q2. 为何不能同时设定两首音乐不同的音量? ans: 一般你们会这样使用AS
mySound1 = new Sound();
mySound1.attachSound("tomato1");
mySound1.start();
mySound2 = new Sound();
mySound2.attachSound("tomato2");
mySound2.setVolume(50); //另外一首音量为50
mySound2.start();
但这样是错误的, 正确方法是分别把音乐分开在不同的层当中 :
mySound1 = new Sound(this);
mySound1.attachSound("tomato1");
mySound1.start();
createEmptyMovieClip("mc", 0);
mySound2 = new Sound(mc);
mySound2.attachSound("tomato2");
mySound2.setVolume(50);
mySound2.start();