FLASH CS4 控制音频播放

合集下载

利用FlashCS4动作脚本控制声音

利用FlashCS4动作脚本控制声音

开启元件 、 声音关 闭元件 、 音量 大小元件 、 音量滑
收 稿 日期 : 2 0 目 : 福建省教 育厅基金 资助 项 目( J A1 1 2 1 0)
作者 简 介 : 许丽光 ( 1 9 7 7 .) , 男, 福 建 莆 田人 , 实验 师。
Abs t r a c t : T h e r e a l i z a t i o n o f i n t e r a c t i v e c o n r t o l o f a u d i o c l i p i n F l a s h CS 4 b y u s i n g Ac t i o n s c i r p t wa s
大小元 件 为 图形元 件 ,可在 场 景 中的适 当位置 直 接 用绿 色 的线 条勾 画一个 从 左 到右 逐渐 增 大 的类 似平 放 的直 角三 角形 的图形 ,注意 底边 长 度应 为 1 0 0 。 即底 边线 条 的宽度属 性应 设 为 1 0 0 , 用 于 表示 对应可控 制 的音量 范 围值 为 0  ̄1 0 0 , 声音 开启和声 音关 闭影 片 剪辑 元件 制 作好 之 后 重叠 放置 于 场景 中音 量 大小 图形 元件 前 方 的适 当位置 。声 音 开启 影 片 剪 辑 元 件 的实 例 名 称 属 性 设 置 为 O p e n S n d , 声 音 关 闭 影 片 剪 辑 元 件 的 实 例 名 称 属 性 设 置 为
要在课件中增加轻快 的背景音乐元素。 [ 1 ] 在实际教 学 中使用这样的 F l a s h 课件时 , 有了背景音乐的烘 托, 能够极大地活跃课堂教学气氛 , 使课堂教学更
有 吸引 力 , 获得 良好 的教学 效 果 , 特 别是 在 幼教 的

FLASH CS4 应用音频

FLASH CS4  应用音频

FLASH CS4 应用音频Flash中有两种声音类型:“事件声音”和“音频流”。

事件声音和音频流之间最大的区别不是声音文件本身的不同,而主要体现在动画播放过程中的不同。

事件声音必须完全下载后才能开始播放,除非明确停止,否则它将一直连续播放;音频流在前几帧下载了足够的数据后就开始播放,通过与时间轴同步以便在网络中播放。

1.将声音导入到库如果要在Flash文件中导入声音,可以执行【文件】|【导入】|【导入到库】命令,打开【导入到库】对话框。

然后选择并打开所需的声音文件,即可将其添加到【库】面板,如图12-1所示。

如果使用该声音,直接将其从【库】面板拖放到文档中即可。

图12-1 【库】面板中的声音元件将其从公用库中拖入到当前文档库中即可。

另外,需要将声音置于时间轴上的一个单独层上。

2.将声音添加到时间轴在Flash中要为影片添加声音文件,首先执行【插入】|【时间轴】|【图层】命令,为声音创建一个新图层。

然后选择新建的声音图层,将声音从【库】面板拖入到舞台中,声音就会添加到当前图层中,如图13-2所示。

图13-2 在文档中使用声音将每个声音放在一个独立的图层上,使每个图层作为一个独立的声音通道。

当播放影片时,所有层上的声音会混合在一起。

3.声音控制区在时间轴上,选择包含声音文件的任意帧,执行【窗口】|【属性】命令,打开【属性】面板。

然后,单击【声音】标签前面的箭头,以展开声音控制区域,如图12-3所示。

图12-3 声音控制区域在【效果】列表框中,不仅可以简单设置音频的效果,还可以通过【编辑封套】对话框精确制作所需的效果。

【效果】列表框中的选项如下所示:●无不对声音文件应用效果。

选中此选项将删除以前应用的效果。

●左声道仅播放左声道的声音。

此时单击【编辑声音封套】按钮,可打开【编辑封套】对话框,在上面一个波形预览窗口(左声道)中的直线位于最上面,表示左声道以最大的声音播放,而下面一个波形预览窗口(右声道)的直线位于最下面,表示右声道不播放,如图12-4所示。

Flash CS4 设计音频播放器

Flash CS4  设计音频播放器

Flash CS4 设计音频播放器ActionScript 3.0脚本语言除了可以加载外部的声音文件,还可以结合外部的XML 文件,制作播放列表供用户选择,并且可以控制声音的快进、倒退、音量等。

结合ActionScript 3.0的脚本绘图技术以及数组技术,用户可以方便地制作出媲美专业水平的音频播放器。

例如,本节就将使用ActionScript 3.0,制作一个可以进行列表选择、音量控制、进度控制的音频播放器。

操作步骤:(1)在Flash 中执行【文件】|【新建】命令,在【新建文档】对话框中选择【Flash 文件(ActionScript3.0)】选项,单击【确定】按钮,创建固定尺寸的空白文档。

(2)设置Flash 文档的大小为800px ×550px ,然后,执行【文件】|【导入】|【打开外部库】命令,从“XPlayerRes.fla ”外部库文件中导入各种元件。

然后,打开【组件】面板,导入Label 和ProgressBar 组件。

选择单击创建(3)将默认的“图层1”改名为background ,导入background 位图素材。

新建surface 图层,导入surfaceSkin2和surfaceSkin 影片剪辑元件,作为播放器的皮肤。

(4)新建controlBtns 图层,分别导入8个控制播放的按钮,为各按钮设置实例名称。

然后,新建infoArea 图层,导入infoArea 元件和listArea 元件,作为显示播放信息和列表信息的背景图像。

(5)新建component 图层,从【库】面板中分别拖拽3个标签组件(L abel )和一个进度条组件(ProgressBar ),用于显示各种歌曲的信息。

然后,在【属性】面板中设置这些组件的实例名称、位置和大小等属性。

设置大小插入背景导入皮肤导入按钮元件导入播放信息背景导入列表信息背景(6)新建ActionScript 图层,选中图层,然后打开【动作】面板,在面板中使用ActionScript 脚本实例化各种播放器所使用的对象。

Flash CS4 控制声音播放

Flash CS4  控制声音播放

Flash CS4 控制声音播放在开始加载声音文件后,为Sound对象调用play()方法可以播放加载的声音。

play()方法的基本形式如下。

sound.play(startTime,loops,sndTransform);play()方法可以接受以上3个可选参数,其详细介绍如下所示。

●startTime 播放声音的起始位置(以毫秒为单位)。

●loops 定义在声道停止播放之前,声音循环回startTime值的次数。

该参数的最小值为0,即播放一次。

如果传递的值为负数,仍然播放一次。

●sndTransform 分配给该声道的初始SoundTransform对象。

play()方法返回一个SoundChannel对象,用于控制一种声音的播放。

可以将该对象的position属例如,加载外部的music.mp3文件,并侦听该声音文件的加载完成事件。

当加载完成时,调用onComplete()函数以开始播放声音。

import flash.events.Event;import flash.media.Sound;import .URLRequest;var sound:Sound = new Sound();var req:URLRequest = new URLRequest("music.mp3");sound.load(req);sound.addEventListener(PLETE, onLoadComplete);function onLoadComplete(event:Event):void{sound.play();}如果想要停止加载声音,可以使用Sound对象的close()方法。

该方法关闭声音流,从而停止所有数据的下载。

close()方法的基本形式如下所示。

sound.close();。

Flash CS4 控制关键帧的音频

Flash CS4  控制关键帧的音频

Flash CS4 控制关键帧的音频
将声音添加到音频层上指定的关键帧,就可以为关键帧上的动画配音,并且能够控制关键帧的音频的播放和停止时间。

要使音频与场景中的某个事件配合,可以先选择该事件发生的起始关键帧作为音频的起始关键帧,再将声音添加到该帧上,同时,还可以选择一种同步方式。

然后,在音频层的时间轴上再创建一个关键帧,作为声音的终点关键帧,此时在音频层的时间轴中将出现音频线。

选择终点关键帧,在【属性】面板的【名称】下拉列表框中选择与起点关键帧相同的声音文件,然后,在【同步】下拉列表框中选择【停止】选项。

这样在播放动画时,播放到该终点帧处,声音就会停止播放。

选择 拖入到舞台
插入关键帧
音频线 选择 选择 选择。

Flash 里的声音控制

Flash 里的声音控制

Flash 里的声音控制有两种方法:1.把声音直接在拖倒时间轴上的关键帧里,然后在属性面版进行相关属性设置.需要注意几个同步方式的区别.事件(Event):将声音设置为事件,可以确保声音有效地播放完毕,不会因为帧已经播放完而引起音效的突然中断,制作该设置模式后声音会按照指定的重复播放次数一次不漏地全部播放完。

开始(Start):将音效设定为开始,每当影片循环一次时,音效就会重新开始播放一次,如果影片很短而音效很长,就会造成一个音效未完而又开始另外一个音效,这样就造成音效的混合而乱了。

停止(Stop):结束声音文件的播放,可以强制开始和事件的音效停止。

数据流(Stream):设置为数据流的时候,会迫使动画播放的进度与音效播放进度一致,如果遇到机器的运行不快,FLASH电影就会自动略过一些帧以配合背景音乐的节奏。

一旦帧停止,声音也就会停止,即使没有播放完,也会停止。

注意:其中应用最多的是事件选项,它表示声音由加载的关键帧处开始播放,直到声音播放完或者被脚本命令中断。

而数据流选项表示声音播放和动画同步,也就是说如果动画在某个关键帧上被停止播放,声音也随之停止。

直到动画继续播放的时候声音才开始从停止处开始继续播放,一般用来制作MTV2.用AS控制.要先创建声音对象,关联某个声音,然后运用声音对象的方法进行操作.For example: mysound=new Sound(); //创建声音对象mysound.attachSound("sound1"); // 链接声音sound1. 这里要先对声音的链接属性进行设置,两个选项(a.为ActionScript 运行导出 b. 在第一帧导出)都要打勾.标识符不能为空,在as中对声音的引用要用到.这里标识符是sound1.mysound.start(); //声音开始播放.Sound functions: <1> mysound.start(offsettime,loop) //offsettime:时间偏移量,单位s. loop,循环次数.这句话表示声音从offsettime开始播放到声音结束,播放loop次.(BTW,做声音开关的时候,本来想通过offsettime来让动画和声音同步的,发现根本不好用.特别是声音文件导出时如果压缩了,那通过这个来同步更是没戏.<2>mysound.stop();<3>mysound.setVolume(volume); volume:0-100. 0是最低音量,100最高.(通过按钮操作,设置音量做声音开关时发现,点击按钮,改变音量时,声音会从头开始播放,根本不是只改变当前时间及以后播放的声音音量)<4>mysound.getVolume();<5>mysound.setPan(pan) pan: -100到100 .这个是左右声道均衡值.<6>mysound.getPan()<7>mysound.duration() //声音持续播放时间<8>mysound.position() //声音播放的当前时间<9>mysound.onSoundComplete() {mysound.start();} //通过这个语句可以让声音无限制循环.mysound.onSoundComplete(){}//是声音结束时需要执行的操作还有两个系统函数:getTimer() 获取动画播放的时间stopAllSounds() 合理应用上面的声音对象方法或函数能够满足flash 对声音控制的一般需求.比如,1.可以做声音开关.简单的控制声音的播放和停止.2.做暂停按钮,(flash本身没有提供暂停的函数)用mysound.position() 记录声音停止时的位置,下次播放的时候从这个位置播放.3.背景音乐的无限循环.mysound.onSoundComplete() {mysound.start();} 经典案例:我做一个flash ,遇到这样的需求:我的音乐比较长且完整而且需要和画面配合,不是简单的声音循环.又需要做个声音开关按钮,开关控制声音播放时,声音要从和画面同步的声音处开始播放而不能从头开始播放.这样的话按钮代码on(press) {mysound.start();} 肯定是不能满足需求了.于是我试图通过下面几种方法解决问题:方法一:1.在动画开始时定义一个变量并赋值. var starttime=getTimer(); // record the start time of flash2.在按钮"on"上增加这样的代码:on(press){r_time=(getTimer()-starttime)/1000; //想获得动画从开始到点击按钮时总共播放的时间.getTimer()获得的时间单位是ms.mysound.start(r_time,1); //声音从r_time处开始播放.循环一次}照理说,这样应该让声音同步才是,但事实结果是声音和动画在声音关闭--再次开始播放后无法同步.方法二:通过设置声音音量来做声音开关.我想着这种方法只是改变一下音量,并没有让声音真正停止,声音应该和动画同步播放才是.事实结果是---声音会从头播放,无法同步.也不能达到我的要求.开关按钮代码:on(press){ //stop buttonmysound.setVolume(0);}on(press){ //play buttonmysound.setVolume(100);}很奇怪的是,声音也有fade in 和fade out .也就是说volume 能够动态改变的,不明白这样为什么还是不行.最后网上的一片文章给了我灵感.我通过下面的方法解决了我的问题.1.创建一个mc,把声音sound1拖倒mc的时间轴上.同步方式为数据流.(上面说过了,数据流能让声音和动画很好的同步.相当于声音流和每帧绑定)mc的帧长和我在主场景需要的声音帧长相同.2.在主场景创建mc实例.实例名:sd.持续帧长和mc的帧长相同.3.在主场景添加声音开关按钮,并添加按钮代码.on(press){ //stop按钮sd.gotoAndStop(455); //455 帧是我mc的最后一帧,这帧已经没有声音}on(press){ //play buttonsd.gotoAndPlay(_root._currentframe); //声音从主场景的当然帧这个时间开始播放}ok ,这样就能满足我的需求,解决我的问题拉!Happy 一下:)心得:其实最后这个方法是一个很巧妙而且折中的方法.巧妙的将as 控制声音和时间轴引用声音结合在了一起.时间轴上引用声音,能够设置数据流同步方式,将声音和动画绑定,保证了很好的同步.把声音做成mc ,让按钮发挥了很好的作用.通过控制mc从而控制声音的开关.。

基于Flash CS4音乐播放器的设计与实现

基于Flash CS4音乐播放器的设计与实现

基于Flash CS4音乐播放器的设计与实现/摘要:利用Flash 中的ActionScript实现音乐播放器在多媒体设计中有广泛的应用。

本文基于Flash CS4中的AS3,设计并制作一款音乐播放器,能够完成音乐播放、暂停、停止、播放进度显示、音量控制的功能。

关键词:元件;场景;ActionScript;音乐播放器;多媒体动画设计flash播放器官方下载一、设计播放器界面利用Flash CS4的基本绘图工具和颜色填充工具绘制播放器的界面,注意设置尺寸值,播放进度槽、播放进度条、音量按钮宽度值分别为400、安装flash播放器1、6,音量按钮高度值为4,这些数值将与后面AS代码的有关数据相对应。

分别将播放器界面背景、播放按钮、暂停按钮、停止按钮、播放进度槽、播放进度条、音量条、音量按钮转换成影片剪辑元件beijing、按钮元件1、按钮元件2、按钮元件3、影片剪辑元件4、影片剪辑元件5、影片剪辑元件6、影片剪辑元件7。

在Flash场景中由下至上,把播放器界面背景、暂停按钮、播放按钮、停止按钮、播放进度槽、播放进度条、音量条、音量按钮分别放置在不同的图层上,通过属性面板的位置参数对齐暂停按钮、播放按钮的位置,使播放按钮正好放置在暂停按钮的上方,并在属性面板中为元件依次命名为“bj_mc”、“stp_btn”、“ply_btn”、“restart_btn”、“jdc_mc”、“jdt_mc”、“bar_mc”、“slider_mc”。

如图1所示。

二、编写AS3代码1.编程前的准备工作(1)首先把音乐文件和Flash文件放置到同一个文件夹里,这样方便文件的调用。

(2)在时间轴上新建一个图层,命名为“action”。

选择第一帧,单击动作—帧选项卡,打开动作面板,编写代码。

这也是AS3和AS2的不同之处,AS3的动作是写到帧上,而不是写在按钮或者影片剪辑上。

2.调用外部音乐文件(1)调用外部文件之前要声明一个实例s来继承sound类,输入:var s:Sound = new Sound();(2)然后定义一个变量req,将音乐文件的路径信息赋给它,输入:var req:URLRequest = newURLRequest(“高山流水.mp3″);(3)实例s通过load()函数来调用音乐文件,输入:s.load(req);3.播放按钮程序的编写当鼠标单击播放按钮时,音乐开始播放,因此需要为播放按钮添加一个侦听器来侦听鼠标单击事件。

Flash CS4 编辑音频

Flash CS4  编辑音频
在【编辑封套】对话框中,还包括了许多按钮,它们的含义及功能如下所示。
图标
名称
功能
停止声音
终止播放
播放声音
测试效果
放大
放大窗口内音频的显示
缩小
缩小窗口内音频的显示

时间线以秒为单位进行显示

时间线以帧为单位进行显示
提示
包络线表示声音播放时的音量。最多可以创建8个控制柄。如果要删除控制柄,可以将其拖CS4中,使用【编辑封套】对话框可以对基本的声音进行控制,如定义声音的播放起点、声音的大小以及声音的长短等。
打开【编辑封套】对话框,在音频时间线上,拖动起点和终点游标,可以改变音频的起点和终点。
如果要改变音频的幅度,可以单击幅度包络线来创建控制柄,然后拖动幅度包络线上的控制柄,即可改变音频上不同点的高度。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FLASH CS4 控制音频播放
在之前的章节中,已介绍了如何在Flash中加载声音。

Flash CS4除了加载声音外,还可以对声音播放进度进行一系列的控制,如播放、暂停、停止。

除此之外,还可以控制音量的大小。

1.停止声音
在之前的章节中已经介绍了如何在Flash中播放音频。

在制作音频播放器时,除了需要播放音频外,还需要控制音频的停止。

这需要使用到flash.media包中的SoundMixer类。

SoundMixer是一种控制全局的类,其可以控制由Flash影片播放的所有声音流,并且拥有多种全局控制的属性和方法。

也是说,SoundMixer并不控制动态创建的Sound对象。

SoundMixer常用的属性主要有两种:
●bufferTime 该属性的作用是设置声音流在开始传输前预加载的时间,单位为秒。

●soundTransform 该属性的作用是为SoundMixer对象引入控制全局的SoundTransform对象。

SoundMixer的这两种属性都属于静态方法,仅可以操作嵌入到Flash影片中的声音,无法对在ActionScript中动态创建的声音进行操作。

除了以上的属性外,SoundMixer还包含3种常用的方法。

●areSoundsInaccessible() 确定是否因安全限制而无法访问声音
●computeSpectrum() 获取当前声音的波形快照,并将其放在指定的ByteArray对象中。

●stopAll() 停止当前播放的所有声音。

例如,在一个播放器中,停止播放的按钮实例名称为stopBtn,则为其添加的停止播放代码如下。

stopBtn.addEventListener(MouseEvent.CLICK,stopMusic);
function stopMusic(event:MouseEvent):void{
SoundMixer.stopAll();
}
需要注意的是,在使用stopAll()方法时,所引用的SoundMixer类本身,而不是该类的实例。

2.暂停与继续
除了停止声音播放外,很多播放器还可以实现暂停声音播放,当需要时再从当前暂停的位置继续播放。

在Flash中,暂停声音播放需要使用flash.media包中的SoundChannel类。

SoundChannel类的作用主要是控制Flash影片中的声道,监控声道的幅度、播放的进度等。

通过其Position属性可以记录当前播放的时间,然后使用stop()方法停止该声道的播放。

当需要声音继续播放时,则可以为Sound类的play()方法加参数,使其继续按照记录的已播放时间播放声音。

例如,获取名为bgmusic.mp3的外部声音文件,实现控制该文件的暂停播放和继续播放,代码如下。

var music:Sound= new Sound(new URLRequest("bgmusic.mp3"));
//加载外部声音
var channel:SoundChannel;
//声明声道
var pauseBtn:SimpleButton=new SimpleButton();
//实例化暂停按钮
var playBtn:SimpleButton=new SimpleButton();
//实例化播放按钮
var onPause:Boolean=false;
//声明变量onPause判断声音是否暂停
var position:int
//声明变量position作为播放进度
playBtn.addEventListener(MouseEvent.CLICK,playMusic);
//为播放按钮添加鼠标单击事件
pauseBtn.addEventListener(MouseEvent.CLICK,pauseMusic);
//为暂停按钮添加鼠标单击事件
function playMusic(event:MouseEvent):void{
//播放按钮的事件函数
if(onPause==false){
//判断如果非暂停状态
channel=music.play();
//直接在声道中播放音乐
}else{
//否则(处于暂停状态)
channel=music.play(position);
//则从已播放的进度播放音乐
onPause=false;
//取消暂停的状态
}
}
function pauseMusic(event:MouseEvent):void{
//暂停按钮的事件函数
if(onPause==false){
//判断,在非暂停状态
position=channel.position;
//记录当前播放进度
channel.stop();
//停止声音播放
onPause=true;
//确认暂停的状态
}
}
3.读取声音文件的附加信息
通常在网上下载或从CD中抓轨获得的mp3音乐都包含了音乐的附加信息(又称ID3),如演出者、作者、专辑名称和发行年代等信息。

这些信息以标签的形式存储在mp3文件的开头。

ActionScript可以方便地读取这些信息。

读取mp3音乐的ID3信息可以使用flash.me dia包中的ID3Info类。

ID3Info类共有7种属性。

●album 歌曲所在专辑名称
●artist 艺术家名称
●comment 录制该音乐的相关注解
●genre 歌曲的流派
●songName 歌曲的名称
●track 歌曲的音轨
●year 歌曲录制的年份
读取这些信息可以使用如下的方法。

var music:Sound=new Sound(new URLRequest("music.mp3")); //实例化音乐
trace(music.id3.songName);
//输出歌曲名。

相关文档
最新文档