[转] 影片剪辑中时间轴下的声音处理
[转] 影片剪辑中时间轴上的声音处理http://bbs.9ria.com/viewthread.php?tid97727&extrapage%3D1%26amp%
[转] 影片剪辑中时间轴上的声音处理
http://bbs.9ria.com/viewthread.php?tid=97727&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000
[心得]?影片剪辑中时间轴上的声音处理由于项目架构的关系,会在时间轴上加声音流,跟动画匹配,有时候会做到影片剪辑里。如果是线性的播放完全没有问题,但是遇到有播放进度条,可以跳帧,问题就出现了:播放头刚到含有声音的影片剪辑,通过调整进度条,主时间轴一下子跳过了这个影片剪辑所在的帧——导致,画面变了,但是之前的影片剪辑里的声音还在播放。。。
不谈这种方式的其他问题,就这一项,我纠结了好久。使用侦听,当播放头不在这个影片剪辑的范围时,就将影片剪辑stop,这当然不行,因为跳过了影片剪辑,它的实例名就是null了
鉴于在时间轴上的声音,没法使用SoundChannel,soundTransform里又没有关闭声音的方法
最后,灵光一闪,解决的居然很轻巧
代码创建一个影片剪辑,将需要停止的影片剪辑斌给新剪辑,然后在侦听的时候stop这个新建的影片剪辑,居然成了。。。- var newMc:MovieClip = oldMc;
- //含有声音的影片剪辑在主时间轴的开始帧和结束帧
- var startFrame:int = 56;
- var endFrame:int = 1902;
- addEventListener(Event.ENTERFRAME,isJumpOldMc);
- function isJumpOldMc(e=null)
- {
- if(this.currentFrame>endFrame||this.currentFrame<startFrame) newMc.stop();
- }
复制代码真是很叹息,原来只需要小拐一个弯就成事了~
收获了一件事,就是注意到MovieClip类居然有soundTransform,可以用来管理时间轴上的音量、声道等等,以前真没发现- var mc:MovieClip = new MovieClip();
- ? ? ? ? ? ? ? ? var stransf:SoundTransform = mc.soundTransform;
- ? ? ? ? ? ? ? ? stransf.volume = 0.6;
- ? ? ? ? ? ? ? ? mc.soundTransform = stransf;
复制代码不知道大家是否遇到过这样的问题,有没有更好的解决方法