Flash 两分钟短片制作心得笔记
制作环境
主要制作软件:Flash CS3
脚本:AS  2.0
系统:Win 7
辅助软件:
格式工厂:用来转换视频和音频的格式,也用来提取视频里面的声音(直接把视频拖进去,把输出格式选为音频格式即可)
AVS Audio Editor:用来编辑声音的,我第一次用这款软件,我只会用他来截取某一段音频,然后保存。变调,删除某一段音频。我试过用他来降低音量,可是不知道为什么,在软件里面预览的时候,音量是降低了,但是,导出文件的时候,音量还是不变的。有空再好好研究一下。
暴风影音:播放swf文件的时候,可以看到当前的帧数和总的帧数。
超级变声软件Deluxe Ultra Voice Changer(手机安卓软件):用这个软件来录音,它可以把你的声音变成童音,男音,机器人的生意,阴森的声音等,总共有20多种音可以选择,感觉挺好的。觉得不是很方便的地方是,不能选择存储位置。
技巧和注意事项:
制作人物动画的时候,要把人物身体和脸部的各个部分都用单独的图层存放;
图形和组也可以“创建补间动画”,但是创建的时候,flash会把图形和组先转成元件,再“创建补间动画”,所以,直接用“图形”和“组”创建补间动画的时候,库里面会自动添加名字为“补间X”的元件,其实这些都是flash自动生成的元件;
如果是多个内容放在同一个图层,那么,创建补间动画时,flash会自动把这些内容都变成一个元件,这就是为什么要把每个部分都单独放一个图层的原因;
Flash的填充工具是允许线条不完全封闭的,可以根据需要选择以下选项:
在查线条空隙的时候,用“部分选择工具”,这样会容易得多;
在flash的主时间轴的最上面一个图层,要在最上面的一个图层放置一个黑的宽屏图层,这样子,最大化播放的时候就会很整洁。

Flash动画的制作最好都用图形元件制作,用图形元件制作动画的好处:
可以在flash的舞台上直接按“enter”键预览主时间轴上面图形元件里面的动画;
可以通过在属性面板设置播放的值来灵活控制图形元件的播放和显示
单帧:只显示“第一帧“文本框中的那一帧;
播放一次:将图形元件从“第一帧”文本框的帧开始,逐帧播放,直到图形元件里面的内容结束。内容被播放一次后便停在最后一帧不懂。(如果主时间轴上给图形元件的帧数少于要播放的帧数,那么当主时间轴上面的帧用完时,图形元件也结束播放)
循环:将图形元件从“第一帧”文本框的帧开始,逐帧播放。图形元件中的内容播放完后,会返回图形元件的第一帧重新播放,直到主时间轴上面的帧用完为止;
把鼠标放在补间区间上面,如果“同步”被勾选,那么它两端的两个关键帧的“第一帧”就不能随意更改了,这时候需要取消勾选“同步”才行。

但是,图形元件里面插入声音是没有效果的,不仅在flash里面预览的时候不起作用,即使发布成swf也是听不到的,这时候需要转成“影片剪辑”类型才行;

关于影片剪辑:
如果在元件中有插入声音,那么元件的类型就必须改成“影片剪辑”才能在发布的时候放出声音;
不能在主时间轴的flash舞台上面按“enter”键预览元件里面的内容,也就是说,在主时间轴上面的显示永远是“影片剪辑”元件的第一帧,一定要按“ctrl+enter”测试影片才能预览效果。所以在制作元件嵌套的动画时,会比较麻烦。
关于声音
这次影片在配音的时候遇到一个小问题:在主时间轴按“Enter“键预览的时候,声音和图片是同步的,但是,当按”Enter+Ctrl“键发布测试影片时候,发现有一个声音提前了,并且,从那个声音开始,往后的所有声音也提前了。后来,用”暴风影音“打开发布的swf文件(播放时可以看到文件总共有多少个帧,以及当前播放到第几帧了),看到图像跟flash里面的显示是对应的,是那个声音提前了。一开始不知道是怎么回事,最后,试了一下改“发布设置”,下图是我改好的样子。原本,“声音设置”面板下的压缩写的是“mp3”,采样率是“22KHZ”,因为我的声音文件都是“44khz”的,所以我试着改了一下,结果真的就解决了,很开心o(∩_∩)o ~~。



声音的压缩(摘自《Flash CS5动画设计宝典》,智丰工作室,邓文达编著,清华大学出版社)
位置:在“声音属性”面板(库面板中,双击声音文件前面的喇叭图形);
压缩
默认值:是flash提供的一个通用的压缩方式,可以对整个文件中的声音用用一个压缩比进行压缩,而不用分别对文件中不同声音进行单独的属性设置,避免了不必要的麻烦
ADPCM:常用于压缩注入按钮特效,事件声音等比较简短的声音,选择ADPCM选项会出现不同的设置选项
A. 预处理:选中该复选框,可以将混合立体声转换为单声道,文件大小相应减半,如果声音已经是单声道,那么该选项不起作用。
B. 采样率:可在此选择一个选项以控制声音的保真度和文件大小。脚底的采样率可以减小文件的大小,但同时也会见底声音的品质。
a. 5KHZ采样率仅能达到人们说话声的质量;
b. 11khz采样率是播放一段音乐所要求的最低标准,所能达到的声音质量为1/4的CD音质。
c. 22KHZ采样率的声音质量可达到一般的CD音质,也是目前众多网站所选择的播放声音的采样率。鉴于目前的网络速度,鉴于大家采用该采样率作为Flash动画中的声音标准。
d. 44KHZ采样率是标准的CD音质,可以达到很好的听觉效果。
C. ADPCM位:用于设置编码时的比特率。数值越大,生成的声音的音质越好,而声音文件的容量也就越大。
MP3格式:使用该方式压缩声音文件可使文件体积变成原来的1/10,而且基本不损害音质。这是一种高效的压缩方式,常用于压缩较长且不用循环播放的声音,这种方式在网络传输中应用广泛,这种压缩方式有以下选项:
D. 比特率:MP3压缩方式的比特率决定导出声音文件中每秒播放的位数。设定的数值越大得到的音质就越好,而文件就会越大。Flash支持8kbps~170kbps CBR(恒定比特率)的速率,但导出音乐时,需将比特率设置为17kbps或更高,以获得最佳效果。
E. 品质:用于设置导出声音的压缩速度和质量
a. 快速:使压缩速度加快而降低声音质量;
b. 中等:可以获得稍慢的压缩速度和较高的声音质量;
c. 最佳:可以获得最慢的压缩速度和最佳的声音质量。
原始:导出声音时不压缩;
语音:如果要选择一个特别适合于用语音的压缩方式导出声音,可以使用该选项。
声音我选的都是“数据流”,重复设为“1”。选择“数据流”,是因为他会把声音固定在主时间轴上面,逐帧对应,播放的时候,是逐帧下载逐帧播放的。重复设为“1”,即只播放一遍。
事件:事件的声音必须完全下载后才能开始播放,且不一定与动画同步,除非遇到明确的指令,否则声音将一直播放直到结束,并且到了下一轮又会重新播放。因此如果声音文件比动画长,就会造成声音的重叠。这种播放类型对于体积大的声音文件来说非常不理,适用于体积小的声音文件。
(摘自《Flash CS5动画设计宝典》,智丰工作室,邓文达编著,清华大学出版社)
开始:声音不与动画同步,也不会造成声音的重叠。与事件不同的地方在于,声音在前一轮的播放没有结束的情况下,下轮不会马上开始播放,而是前轮播放结束后才开始新的播放。他会在播放音效前,检查同一音效是否正在播放,如果发现同一音效正在播放,就会直接忽略播放音效的设定。
(摘自《Flash CS5动画设计宝典》,智丰工作室,邓文达编著,清华大学出版社)
停止:该选项使声音从影片中的某一帧开始停止播放。
(摘自《Flash CS5动画设计宝典》,智丰工作室,邓文达编著,清华大学出版社)
数据流:只要下载一部分,声音就可以开始播放,并且与动画同步,如果动画停止播放,声音也会停止。这种播放类型一般用于体积大、需要同步播放的声音文件,例如,Flash MV中的MP3声音文件。在浏览过程中,可能会因为要保持声音与画面的同步而放慢画面的播放速度。
制作flash(摘自《Flash CS5动画设计宝典》,智丰工作室,邓文达编著,清华大学出版社)


为了控制声音的音量,有试过用AS,可是结果不理想,而且上网查了一下,这是AS 2.0的毛病,单纯用flash是解决不了这个问题的。
我的主时间轴里面插入了很多个声音文件,但是其中有一个声音,我想用它来作为整个短片的背景音贯穿整部短片。所以,当时我的目的是,控制这个声音在某一段音量降低,然后在其他段又升高音量。百度了一下代码,单独建立一个新的图层,然后在第一帧插入一个空白关键帧,写入代码如下:

music= new Sound();//创建一个声音

music.attachSound("mysound");//把声音跟你库中标识符为“mysound”的声音文件链接起来。打开你的库,鼠标右键点你要控制的声音,选择“链接”,设置标识符为mysound。(标识符可以自己随意命名)

music.start();//一定要有这个句子,声音文件才能播出来

music.setVolume(50);//设置音量为原来的50%


但是我发现我控制这个声音的音量,结果场景中其他声音的音量也被控制了,也就是说,我设置这个声音的音量为50%,场景中其他的音量也变成50%了。可能因为我本身对flash不熟悉,AS也不太了解,所以虽然上网查了些资料,最终我没能做到我想要的效果。
关于遮罩层
注意,只有填充部分起作用,线条不起作用。想用线条的话,需要将线条转成填充才行。(修改—形状—将线条转为填充图案)
遮罩层是没有透明度的,要透明度的话,需要加AS脚本实现。
以下是我测试的代码:
mask_mc.cacheAsBitmap=true;//通过AS脚本可设置显示对象的遮罩,如要将A作为B的遮罩,则可以写:B.mask=A
                          // 另外显示对象具有一个位图缓存属性,即cacheAsBitmap属性。开启该属性后(赋值true),
                          //就能在遮罩和被遮罩对象直接进行透明映射。
                          //这几行代码需要写在跟遮罩层的关键帧上面或者遮罩层同一时间的其他帧上才有效果
text_mc.cacheAsBitmap=true;
text_mc.setMask(mask_mc);//ActionScript2.0的实现方法,AS3.0应该用text_mc.mask=mask_mc,这里mask_mc作为text_mc的遮罩层
以下是在网上查到的一些相关资料:
flash 遮罩半透明 
2012-03-04 21:21:18|  分类: Flash|字号 订阅
今天在做光线旋转效果时,由于背景是个比较大的图片,而flash 比较小,所以flash 边缘会出现边缘直线的形状,于是想用半透明遮罩来使边缘模糊半透明,一般情况下,边缘是不人半透明,于是查了一下,方法如下:
  1.  在舞台中制作一个影片剪辑,并在该影片剪辑内部制作想要的动画效果。本例中制作了一个包含滚动文字动画的影片剪辑,并将其在舞台中的实例命名为:text_mc
  2. 制作用于遮罩的影片剪辑(无需在时间轴上将其转换为遮罩图层),可以由外部导入的PNG图片或者flash中绘制的半透明形状转化而成。本例从外部导入了一张半透明的PNG图片,并转换成影片剪辑。将其在舞台中的实例命名为:mask_mc
  3. 在时间轴上添加以下代码:
    mask_mc.cacheAsBitmap=true;
    text_mc.cacheAsBitmap=true;
    text_mc.mask=mask_mc;
至此,alpha通道遮罩效果已经完成,可以通过“ctrl+enter”测试影片。
实现原理:
  通过AS脚本可设置显示对象的遮罩,如要将A作为B的遮罩,则可以写:B.mask=A
另外显示对象具有一个位图缓存属性,即cacheAsBitmap属性。开启该属性后(赋值true),就能在遮罩和被遮罩对象直接进行透明映射。
说明:以上脚本为ActionScript3.0,若使用ActionScript2.0实现此效果,将上面第三点中的 “text_mc.mask=mask_mc;” 改text_mc.setMask(mask_mc);