用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   无论老手还是新手,只要有自己的想法和建议,请大家积极投稿本栏目
当前位置 :首页>业界杂谈>经验技巧>列表

使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue point)

[来源:flashseer.org | 作者:雪の猫 | 时间:2008-03-28 | 点击:  | 收藏本文  【 】]
 

Macromedia Flash Professional 8 和 Adobe Flex Builder 2 都支持直接在Flash video (FLV)文件中使用提示点。使用Flash 8(ActionScript 2.0),完成这工作只需要一个FLVPlayback组件的实例和简单的设置。可以在组件检查面板中定义或者调用FLVPlayback.addAsCuePoint()方法;使用Flex Builder 2,需要的是对应VideoDisplay实例指定的CuePointManager类的实例。两种情况下,接下来都是设置一个cuePoint事件的监听器对象和定义该对象一个特定的响应函数。

 

而对音频文件,实现提示点要困难些。虽然使用Flash8能用如MediaController, MediaDisplay, 或MediaPlayback这些媒体组件来装载MP3文件,但是要注意这些组件是为了兼容Flash Player 6 and 7。这些组件的结构比FLVPlayback旧,这样,使用它们会使生成的swf文件多出至少55KB。使用FLVPlayback仅使之增加33KB,可是它不能装载MP3文件。类似的,Flex Builder 2的VideoDisplay类只能装载video。可以暂且做几个只有声音的FLV文件(不包含视频内容)。不过,这看来并不广泛适用。特别在一个团队中,你并不能决定选择哪些外部资源。而最通常的音频格式是MP3。幸运的是,用一点ActionScript就可以弥补这个不足了。

 

这篇文章将讲述一个特别解决方案的两个版本:用一个自定义类SoundSync来支持内部声音资源或者是外部的MP3文件。代码有ActionScript 2.0(Flash Professional 8 )和ActionScript 2.0(Flex Builder 2)两种。

 

不管使用那种语言,方法是一样的。ActionScript 2.0和ActionScript 3.0 都提供了Sound类来代表嵌入或装载的声音文件。两种语言都允许播放,从开头播放或从音频的某个时刻播放,暂停,循环。我们当然想不重造轮子!那些已经有的功能都是有用的。缺少的只是对提示点的支持,所以看来应该保留原有功能而extend这个Sound类。

 

自定义类SoundSync要继承Sound并添加下面的新公有方法:

addCuePoint(): 添加一个提示点

getCuePoint(): 通过提示点的名字或者时间返回该提示点

removeCuePoint(): 通过提示点的名字或者时间删除该提示点

removeAllCuePoints(): 删除所有的提示点

 

 

此外,还添加了几个私有方法。并根据使用语言不同重写一些原有的方法。简而言之,SoundSync类使用一个timer不断对照当前的播放时间检查当前提示点对象的time属性。我们先从ActionScript 2.0开始再移植到ActionScript 3.0。

 

需要环境

 

为了充分学习,需要如下软件和文件:

Flash Professional 8

 

Flex Builder 2

 

In Labs: Flash Professional 9 ActionScript 3.0 Preview (可选)

 

示例文件

sound_sync.zip (ZIP, 3MB)

 

准备知识

对ActionScript 2.0的中等掌握和对Flex Builder 2及ActionScript 3.0的介绍性了解。

 

 

ActionScript 2.0版的SoundSync类

 

自定义类必须保存到一个外部文本文件中,命名为SoundSync.as。按照最佳实践,应该把这个文件放在符合包结构的路径下的文件夹中。这里,应该放到相对于全局classpath设置的(选择Edit > Preferences > ActionScript category > ActionScript 2.0 Settings 按钮,中文的按钮……我不是中文版)路径为net/quip/sound这个文件夹下。为了方便按照我的域名给包起名为net.quip.sound。请随便把它改成你喜欢的吧。有关包的细节,请参考Flash8帮助文档中”……我又不是中文版–b”节。

 

创建ActionScript 2.0 类文件

启动Flash Professional 8,选择File > New > ActionScript File 图一

 ---

|图1    |

|    |

---

 

输入如下的ActionScript代码:

/**************代码*1***********/

import mx.events.EventDispatcher;

import mx.utils.Delegate;

class net.quip.sound.SoundSync extends Sound {

// PROPERTIES 属性

// CONSTRUCTOR 构造

// METHODS 方法

// EVENT HANDLERS 事件处理

}

 

 

头两行import了两个类,后面的代码会用到他们。在ActionScript 2.0中,import语句可以方便以后输入类名的时候不必再输入其完整的包名。

 

 

接下来,是声明这个类继承自基类Sound。然后写上属性,构造函数,方法和事件的注释占个位置。对一个类的代码,这些不是必须的,但是他们使类的结构一目了然。下面把细节添上。

上一页12 3 4 5 6 7 8 9 下一页
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:flash游戏制作参考流程
下一篇:编写开源的基于Flash RIA应用技术Blue框架的动机
Tags:    提示 文件 处理 使用 音频 一个 ActionScript // 方法
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  业界杂谈
  业界前沿   资源分享
  经验技巧   七嘴八舌
  热门文章
·分享一些flash8序列号
·flash cs4序列号
·如何把fla,swf文件转换为flv格式问答
·flv制作工具大全
·在线flv转换mpeg4
·2006年Flex大型优秀网站欣赏
·Adobe Flex编码指南v1.2(AS3 Flex3程
·Flash 3D引擎汇集(附演示)
·flash8中文版高速下载地址
·我对as3声音架构的理解
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号