这段时间一直在忙活一个电子教材的项目,东西不难,但是不小心就很容易报错,或者很难找到bug然后继续工作。下面我来总结一下这段时间做这个项目的一些问题和解决方法~
1,第一帧,一定要加stop();不然会出现奇怪的错误。
2,
任何时候用this[""]一定要确保它 被for循环包围着的。不然也会报错!
3,关于时间的一些代码
时间延迟:var timer:Timer=new Timer(5000,1);//5000代表延迟5秒执行function里面的语句
timer.start();//开始计时
timer.addEventListener(TimerEvent.TIMER,tim)//事件
function tim(e)
{
}
声道的用法:
var music:SoundChannel;//定义一个叫music的声道
var snd_ting:Sound=new s_ting() as Sound;//把库里面的s_ting(AS链接)音频赋值给snd_ting这个变量
var snd_dian:Sound=new s_dian() as Sound;
music=snd_dian.play();//音频的播放
music.stop();//音频的停止
为了防止点击多个按钮多个声音同时播放的情况,在方法里面加上
if(music)
{
music.stop();
}
这样就可以只播放一种音频了。
4,多个影片剪辑批量执行一些相同的事件,比如n个按钮分别播放n个音频,如果给每个按钮加监听事件想必是十分麻烦的,那现在我用的是switch语句,嵌套for循环来使用,效率和代码量会大大改善!
如图定义一个int变量a,用 switch(e.currentTarget.name)来获取鼠标点击的影片剪辑实例名称,如果是bk1,bk2,bk3......就执行case语句里面的函数。这里的 music=this["sndb"+a].play();意思是播放sndb1,sndb2......这样对应的音频!这个方法相当实用。
5,如果要跳转到另一个场景的话,一定记得加空格。
gotoAndPlay(1,"场景 1");//这里的场景后面是有一个空格的。
6,声音播放完成后再执行一些命令可以用这个语句
首先定义一个music的声道。然后给music加下面的监听事件,再写上方法的内容就OK了。
music.addEventListener(Event.SOUND_COMPLETE, f_complete);
7,让影片剪辑缩放的代码:
mc1.scaleX=mc1.scaleX*2;
mc1.scaleY=mc1.scaleY*2;
上面是让mc1放大两倍的意思。
目前,就先总结这些,下回再遇到新的问题,再整理出来~如果有更好的建议或者代码方法可以与我联系,不甚感激~