查看: 1260|回复: 22
|
Flash高手请进。。。
[复制链接]
|
|
我原本的FLA文件声音可以走的
但我做Mute button时A_MC里的声音文件全部没声了。。。
因为有很多mc里的音量不是100,我不能用单一的setVolume(0);
我必需检查它要播的音量。。然后再检查Mute按钮的状态。。才return回Volume数量
以下是我的Coding
A_MC 里的声音控制: (这个MC有很多声音,我不列出来全部了)
- CryingSound=new Sound();//放上声音
- CryingSound.attachSound("Crying");
- CryingSound.setVolume(myplayvolume(50));
- CryingSound.start(0,1);
复制代码
主时间轴:A_MC的AS
- onClipEvent(EnterFrame){//每一秒检查Mute按钮状态
- myplayvolume=function(Vol_Num){ //Vol_Num是那个声音应该要放的音量
- if(Muted==true){
- playingVolume=0; //如果Mute按钮按了,音量变没声
- return playingVolume;
- }else if(Muted==false){
- playingVolume=Vol_Num;
- return playingVolume;
- }
- }
- }
复制代码
myplayvolume是我自己写的,是不是这里的return,setVolume不能接受到?
这一个Function用来检查Mute按钮状态,跟return它的音量...
如果Mute没按,它就播它Pass进来的Vol_Num
......
[ 本帖最后由 blueyesblue 于 12-11-2005 11:07 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 11-11-2005 08:07 AM
|
显示全部楼层
楼主,我自问不能帮到你,但如果你要检查他是不是有接受return,setVolume你可以用trace("xxxx");来检查。。。
如果可以的话,最好放上你的file。。。 |
|
|
|
|
|
|
|
发表于 11-11-2005 03:26 PM
|
显示全部楼层
试试在这里 trace(Muted)
相信会返回 undefined
如是 myplayvolume 将返回 undefined (在 setVolume() 里也代表 0)
onClipEvent(EnterFrame){//每一秒检查Mute按钮状态
myplayvolume=function(Vol_Num){ //Vol_Num是那个声音应该要放的音量
trace(Muted)
if(Muted==true){
playingVolume=0; //如果Mute按钮按了,音量变没声
return playingVolume;
}else if(Muted==false){
playingVolume=Vol_Num;
return playingVolume;
}
}
}
还有……
似乎不需要 onClipEvent(EnterFrame){//每一秒检查Mute按钮状态
还有 myplayvolume 在 onClipEvent(EnterFrame) 结束后应该就会自动 dispose 所以 myplayvolume 也是 undefined
CryingSound=new Sound();//放上声音
CryingSound.attachSound("Crying" );
trace(myplayvolume) //相信也是返回 undefined
CryingSound.setVolume(myplayvolume(50));
CryingSound.start(0,1);
小章鱼不知道楼主真正是怎样的结构,所以也没有办法确认。
要知道 Flash 编程的结构会比其它的来得复杂。 |
|
|
|
|
|
|
|
发表于 11-11-2005 11:35 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 12-11-2005 11:00 AM
|
显示全部楼层
原帖由 sson 于 11-11-2005 03:26 PM 发表
试试在这里 trace(Muted)
相信会返回 undefined
如是 myplayvolume 将返回 undefined (在 ...
啊呀。。。给你们说中了。。。。真的return,undefined。。。。。
另一个return "Type function"
zomok 会这样的 ? |
|
|
|
|
|
|
|
发表于 12-11-2005 11:53 AM
|
显示全部楼层
原帖由 blueyesblue 于 12-11-2005 11:00 AM 发表
啊呀。。。给你们说中了。。。。真的return,undefined。。。。。
另一个return "Type function"
zomok 会这样的 ?
由于架构的关系,你必须清楚 Flash 的架构才行。
还有每个声音要有不一样的音量,必须把他们捆绑到不一样的 MC 才能
- // 在主时间轴上
- var muted:Boolean = false
- var oSound:MovieClip = this.createEmptyMovieClip("__sounds__", this.getNextHighestDepth())
- function getSound(id:String) {
- if (oSound[id] == undefined) {
- oSound.createEmptyMovieClip(id, oSound.getNextHighestDepth())
- oSound[id].sfx = new Sound(oSound[id])
- oSound[id].sfx.attachSound(id)
- }
- return oSound[id].sfx
- }
- function muteSound(flag:Boolean) {
- muted = flag
- if (muted) {
- var s = new Sound(oSound)
- s.setVolume(0)
- } else {
- var s = new Sound(oSound)
- s.setVolume(100)
- }
- }
- // 调用就是
- // _root.getSound({id}).setVolume(50)
- // _root.getSound({id}).setPan(100)
- // _root.getSound({id}).start()
- //
- // _root.muteSound(true/false)
- //
- // 没有测过,不过应该是对的
- // 这一个还有很多缺点,不过应该可以满足你的需要
- // 可以的话更改为 class 会更好。
复制代码 |
|
|
|
|
|
|
|

楼主 |
发表于 12-11-2005 04:31 PM
|
显示全部楼层
原帖由 sson 于 12-11-2005 11:53 AM 发表
// 调用就是
// _root.getSound({id}).setVolume(50)
// _root.getSound({id}).setPan(100)
// _root.getSound({id}).start()
//
// _root.muteSound(true/false)
这短用在MC,控制声音吗 ?
可以给一小段例子吗 ?怎样用 ?
因为我不是很明白你教我的结构 |
|
|
|
|
|
|
|
发表于 12-11-2005 05:45 PM
|
显示全部楼层

对,这段就是控制声音的。
比如你要播 "Crying" 的声音(必须在 Library 里做 Linkage ,{id}是Linkage Identifier)
跟你的大同小异啦(你的)
1 CryingSound=new Sound();//放上声音
2 CryingSound.attachSound("Crying");
3 CryingSound.setVolume(myplayvolume(50));
4 CryingSound.start(0,1);
soundOn_btn1._visible = false;
soundOff_btn1.onPress = function() {
soundOff_btn1._visible = false;
soundOn_btn1._visible = true;
Muted=true;
};
soundOn_btn1.onPress = function() {
soundOff_btn1._visible = true;
soundOn_btn1._visible = false;
Muted=false;
};
小章鱼的
1 不必
2 CryingSound = _root.getSound("Crying")
3 CryingSound.setVolume(50)
4 CryingSound.start(0,1)
soundOn_btn1._visible = false;
soundOff_btn1.onPress = function() {
soundOff_btn1._visible = false;
soundOn_btn1._visible = true;
_root.muteSound(true);
};
soundOn_btn1.onPress = function() {
soundOff_btn1._visible = true;
soundOn_btn1._visible = false;
_root.muteSound(false);
};
// 在某 Button 上(点击时播 Crying,音量为 60,loop 为 3 次)
on(press){
_root.getSound("Crying").setVolume(60)
_root.getSound("Crying").start(0, 3)
}
// 在某 Button 上(点击时 mute)
on(press){
_root.muteSound(true)
}
// 在某 Button 上(点击时 unmute)
on(press){
_root.muteSound(false)
} |
|
|
|
|
|
|
|

楼主 |
发表于 12-11-2005 09:48 PM
|
显示全部楼层
回 sson
我放你教的Code
有声音回了。。。Timing And Loop也对了就是
Mute Part还是弄不到咯
[ 本帖最后由 blueyesblue 于 12-11-2005 11:05 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 12-11-2005 10:21 PM
|
显示全部楼层
你把小章鱼的
var muted:Boolean = false
改成
var muteSound:Boolean = false
当然不行呀
多个声音一起播就
_root.getSound("SmileID1").setVolume(100)
_root.getSound("SmileID1").start()
_root.getSound("SmileID2").setVolume(80)
_root.getSound("SmileID2").start()
_root.getSound("SmileID3").setVolume(60)
_root.getSound("SmileID3").start()
偶尔也要自己消化一下嘛……
还好今天有上网,明天起最少 5 天小章鱼不会在。 |
|
|
|
|
|
|
|

楼主 |
发表于 12-11-2005 10:46 PM
|
显示全部楼层
sson 谢谢你。。。
至于那一段,我以为你帮我时跟我的Variable
所以我改回你的muteSound 
看了几本书学那些基本的东西不能用在我的Flash
就像原本的Code怪怪的到Undefine,你们写怎么久可能也得不到Undefine吧
你要快点回来才行 
不然没有人教我用Advance AS |
|
|
|
|
|
|
|
发表于 12-11-2005 11:26 PM
|
显示全部楼层
小章鱼也不是什么高手,所以也是经常会碰到 undefined
只有善用 trace 咯,什么东西不确定的就给它 trace 一下。
近期小章鱼也很少上佳礼了,从然上来也是胡乱看看一二帖罢。
不过这里高手真的还蛮多的,问问 super-tomato ,他定可以帮你。 |
|
|
|
|
|
|
|

楼主 |
发表于 14-11-2005 09:10 PM
|
显示全部楼层
.sfx
是什么来的为什么Marcomedia LiveDocument找不到的 ?
你也很强了..算是高手了啦.....
Super-Tomato最近好像很忙不要麻烦他了
[ 本帖最后由 blueyesblue 于 14-11-2005 09:13 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 15-11-2005 05:18 AM
|
显示全部楼层
sfx??? 這不是 self-extrator 的壓縮格式嗎?? |
|
|
|
|
|
|
|

楼主 |
发表于 15-11-2005 04:24 PM
|
显示全部楼层
原帖由 super-tomato 于 15-11-2005 05:18 AM 发表
sfx??? 這不是 self-extrator 的壓縮格式嗎??
wkakaa.....不是啦.......
我讲的.sfx是小章鱼的ActionScript里的
应该是用来当声音的新ID |
|
|
|
|
|
|
|
发表于 15-11-2005 06:54 PM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 17-11-2005 05:59 PM
|
显示全部楼层
大多数的AS在下面了
// 在主时间轴上
var muted:Boolean = false
var oSound:MovieClip = this.createEmptyMovieClip("__sounds__", this.getNextHighestDepth())
function getSound(id:String) {
if (oSound[id] == undefined) {
oSound.createEmptyMovieClip(id, oSound.getNextHighestDepth())
oSound[id].sfx = new Sound(oSound[id])
oSound[id].sfx.attachSound(id)
}
return oSound[id].sfx
}
function muteSound(flag:Boolean) {
muted = flag
if (muted) {
var s = new Sound(oSound)
s.setVolume(0)
} else {
var s = new Sound(oSound)
s.setVolume(100)
}
}
// 调用就是
// _root.getSound({id}).setVolume(50)
// _root.getSound({id}).setPan(100)
// _root.getSound({id}).start()
//
// _root.muteSound(true/false)
//
// 没有测过,不过应该是对的
// 这一个还有很多缺点,不过应该可以满足你的需要
// 可以的话更改为 class 会更好。
[ 本帖最后由 blueyesblue 于 17-11-2005 06:00 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 18-11-2005 02:01 AM
|
显示全部楼层
最好把文件傳過來會比較清楚,因爲你寫的代碼意義不太能夠理解
var muted:Boolean = false
var oSound:MovieClip = this.createEmptyMovieClip("__sounds__", this.getNextHighestDepth())
function getSound(id:String) {
if (oSound[id] == undefined) {
oSound.createEmptyMovieClip(id, oSound.getNextHighestDepth())
oSound[id].sfx = new Sound(oSound[id])
oSound[id].sfx.attachSound(id)
}
return oSound[id].sfx
}
function muteSound(flag:Boolean) {
muted = flag
if (muted) {
var s = new Sound(oSound)
s.setVolume(0)
} else {
var s = new Sound(oSound)
s.setVolume(100)
}
}
// _root.getSound({id}).setVolume(50)
// _root.getSound({id}).setPan(100)
// _root.getSound({id}).start()
//
_root.muteSound(true/false) //這裡的參數不是true就是false,2選一
是我的話會這樣寫
Sounds = function(id) {
var target = this.createEmptyMovieClip("_sound"+id, this.getNextHighestDepth());
var s = new Sound(target); //定義聲音對象,定義的原因去看我以前寫的教程
s.attachSound(id); //取得library中的音樂linkage id
return s; //返回音樂對象
}
Sound.prototype.init = function(vol,pan,offset,loop) {
if(vol == undefined) vol = 100; //如果沒有音量參數,音量就設定為100
if(pan == undefined) pan = 100; //同上
if(offset == undefined) offset = 0; //同上
if(loop == undefined) loop = 1; //同上
this.setVolume(volume); //設定音量
this.setPan(pan); //設定左右揚聲
this.start(offset, loop); //開始播放
}
var mySound = Sounds("library中的音樂名" ); //交由函數定義sound class
mySound.init(50,-100,0,10); //初始音樂播放,函數中參數分別為,(音量,平衡,開始播放秒數,重新播放次數)
var mySound2 = Sounds("library中的音樂名" ); //交由函數定義sound class
mySound2.init(100,100); //初始音樂播放,函數中參數分別為,(音量,平衡,開始播放秒數,重新播放次數)
muteSound這個根本不需要,只要自己定義 setVolume() 為 0 就代表把音量降至 0了 |
|
|
|
|
|
|
|
发表于 19-11-2005 01:25 AM
|
显示全部楼层
小章鱼回来了,比预期的还早回到家。
blueyesblue
.sfx 是自定义啦,由于小章鱼编惯了(sfx = sound effect)所以就用酱咯
muteSound 是方便一次过把所有的声音 setVolume() 为 0
super-tomato 的方法可能比较适合 blueyesblue
不过小章鱼比较常用于游戏,所以比较不喜欢这种方法,
尤其是 AS2.0 后,更合适小章鱼的编法。
等 AS3.0 出来后就更赞了。期待中 ^^ |
|
|
|
|
|
|
|
发表于 19-11-2005 06:46 AM
|
显示全部楼层
哈哈~~~ 在论坛用2.0回复只怕会产生更多问题,用1.0的继承方法方便快捷。
3.0 《--- 最恨他的regexp这个时候才出现,害我们之前写了那么多步骤  |
|
|
|
|
|
|
| |
本周最热论坛帖子
|