15.8.判定音乐是否播放完毕

评论(0)浏览(122)分类:flash/flex/fcs/AIR
15.8.判定音乐是否播放完毕问题开始播放后,我想知道什么时候播放完毕解决办法监听soundComplete事件。讨论很多情况下我们需要知道什么时候音乐会播放完毕,例如,音乐播放器的播放列表,需要判定是否播放完毕以便播放下一首音乐。这一节我们将介绍flash.media包中的SoundChannel类。当我们调用Sound对象的play( )方法时,它会返回一个SoundChannel对象,因此每一首正在播..

15.7.读取声音文件的ID3标签数据

评论(0)浏览(169)分类:flash/flex/fcs/AIR
15.7.读取声音文件的ID3标签数据问题我想访问正在播放的mp3文件的信息,比如歌曲名,艺术家,专辑,分类等等。解决办法读取Sound对象的id3属性讨论MP3 文件大多包含一些如songname, artist, album, genre, year等元数据,不过这些并不是都有,但大多数情况下都有songname和artist标签。通过Sound对象的id3属性可获得这些数据。这个属性其实是flash.media.ID3Info的类实例,它包..

15.6.获得声音文件的大小

评论(0)浏览(80)分类:flash/flex/fcs/AIR
15.6.获得声音文件的大小问题我想知道一个mp3文件的大小及当前载入的大小。解决办法通过Sound对象的bytesTotal和bytesLoaded属性讨论当载入音频文件时,最好能让用户看到当前载入数据的进度。最后有一个可视化的进度条,就像Windows Media Player或QuickTime Player那样。这一节我们利用Sound对象的两个属性做个灰色的进度条,bytesTotal和bytesLoaded.。bytesTotal指当..

15.5.循环播放

评论(0)浏览(86)分类:flash/flex/fcs/AIR
15.5.循环播放问题我想多次播放声音或重复播放。解决办法在play( )方法中设置循环值讨论默认情况下播放声音只是从头到尾播放一次即停止,很多时候我们希望可以播放多次或循环播放,把它作为游戏或网页的背景音乐。这里我们可设置循环让音乐厅起来好像是很长的音乐。Play()方法的第2个参数即为循环次数,在设置第2个参数时必先设置第1个参数,第1个参数表示起始..

15.4.声音的起始播放位置

评论(0)浏览(93)分类:flash/flex/fcs/AIR
15.4.声音的起始播放位置问题我不想从头播放声音而是从某个位置开始播放解决办法设置play( )方法的参数讨论很多情况下我们并不希望从头开始播放声音,换句话说,我们要剪掉前面一部分后开始播放.Sound对象提供了这种能力让我们轻松做到这一点。如果调用play( )方法不指定参数,即从头开始播放,如果传递一个毫秒为单位的可选参数就会从指定的位置播放,如下面的例子在5...

15.3.给声音数据设置缓冲

评论(0)浏览(101)分类:flash/flex/fcs/AIR
15.3.给声音数据设置缓冲问题我想让声音播放的更流畅些解决办法通过SoundLoaderContext类设置缓冲时间讨论Sound类播放声音的方式是把整个声音数据载入完毕才进行播放,这对于小文件可能没什么问题,但如果是个大的声音文件,我们更希望边载入边播放,减少等待时间,更利于用户体验。根据声音的编码和网络宽带,有时候声音播放的速度可能比下载的速度还要快,这种情况下声..

15.2.开始和停止播放声音

评论(0)浏览(81)分类:flash/flex/fcs/AIR
15.2.开始和停止播放声音问题如何开始播放或停止播放声音。解决办法使用play( )方法播放声音,使用close( )方法停止播放。讨论播放声音很简单,只要调用Sound对象的play( )方法即可,如:+展开-ActionScript_sound=newSound(newURLRequest("song.mp3"));_sound.play();很简单吧,另外play( )方法有一些可选的参数,具体请看第15.1章和15.10章.。close( )方法即不是停止正..

15.1.创建Sound对象及载入声音

评论(0)浏览(125)分类:flash/flex/fcs/AIR
15.1.创建Sound对象及载入声音问题我想载入声音到SWF应用程序上。解决办法创建一个Sound对象,载入外部的声音文件讨论创建一个Sound对象很容易,这跟创建其他类实例差不多,首先记得先引入Sound类库:+展开-ActionScriptimportflash.media.Sound;Var_sound:Sound=newSound();接着我们需要一个声音文件,比如song.mp3,和swf文件放在服务器的同一个目录下。要载入声音文件到So..

15.0.简介

评论(0)浏览(116)分类:flash/flex/fcs/AIR
15.0.简介在应用程序,游戏或Web站点上使用声音可以大大争强用户体验。在Flash IDE里通常是通过导入声音库,把声音放入时间线帧,关联到电影剪辑等等。本章内容覆盖ActionScript 3.0 使用Sound类及其相关类进行声音编程。Sound类用于载入外部MP3文件,因为这文件并不是嵌入到swf内的,因此需要根据URL进行载入,这要遵循域安全约束(第三章)。这一章涉及..

第十五章.声音编程

评论(0)浏览(76)分类:flash/flex/fcs/AIR
第十五章.声音编程15.0.简介15.1.创建Sound对象及载入声音15.2.开始和停止播放声音15.3.给声音数据设置缓冲15.4.声音的起始播放位置15.5.循环播放15.6.获得声音文件的大小15.7.读取声音文件的ID3标签数据15.8.判定音乐是否播放完毕15.9.跟踪音乐播放进度15.10.暂停和重新播放声音15.11.获得声音的音量15.12.停止播放所有的音乐15.13.读取音乐的声谱15.14.改变声音..

14.8.字符串转换为日期

评论(0)浏览(107)分类:flash/flex/fcs/AIR
14.8.字符串转换为日期问题我想通过字符串创建Date对象解决办法使用DateFormat对象的parse( )方法讨论ActionScript并没有提供现成的方法把字符串转换为日期,自定义类ascb.util.DateFormat的parse()方法把传递进来的字符串参数转换为日期格式返回一个新的Date对象。+展开-ActionScriptvarformatter:DateFormat=newDateFormat("m/d/Y");创建好DateFormat 实例,下一步就..

14.7.使用Timer(定时器)

评论(0)浏览(87)分类:flash/flex/fcs/AIR
14.7.使用Timer(定时器)问题我想通过一定的间隔或一定的延时轮询某个方法解决办法使用flash.util.Timer 类讨论flash.util.Timer 类允许通过添加时间事件或延时来调用方法。通过Timer构造器创建实例对象,传递一个毫秒数字作为构造器参数作为间隔时间,下面的例子实例化一个Timer对象每隔1秒钟发出事件信号:+展开-ActionScriptvartimer:Timer=newTimer(1000);一旦创建了..

14.6.DMYHMSM和毫秒之间的转换

评论(0)浏览(112)分类:flash/flex/fcs/AIR
14.6.DMYHMSM和毫秒之间的转换问题我想在DMYHMSM格式(天,月,年,小时,分,秒,毫秒等形式的时间) 和毫秒之间自由转换。解决办法使用time属性讨论我们已经习惯时间和日期是以年月日的形式,例如时间10:25 a.m., Tuesday, January 5, 2010 很容易理解,但是像ActionScript等一些语言是以毫秒为单位存储时间的,因此在显示给用户看之前需要做个转换。当我们用ActionScript构造..

14.5.格式化秒或毫秒为分或秒

评论(0)浏览(106)分类:flash/flex/fcs/AIR
14.5.格式化秒或毫秒为分或秒问题我想把秒或毫秒格式化为分或秒。解决办法使用自定义类ascb.util.DateFormat.formatSeconds( ) 或ascb.util.DateFormat.formatMilliseconds( )方法。讨论ActionScript里很多值都是以秒或毫秒形式存在的,例如声音长度单位是毫秒。但是在大多数情况下我们希望显示单位为分或秒,这里我们提供了DateFormat实现了上述方法。ascb.utils.DateForma..

14.4.格式化日期和时间

评论(0)浏览(81)分类:flash/flex/fcs/AIR
14.4.格式化日期和时间问题我要自定义日期和时间的显示格式解决办法使用Date.toString( ), 或者自定义方法DateFormat.format( )讨论Date.toString( )方法返回Date对象的字符串类型数值,比如:+展开-ActionScript//显示:TueJan514:25:20GMT-08002010trace((newDate()).toString());如果忽略toString()方法,ActionScript 也会自动调用toString( )方法,结果是一样的..

14.3.获取星期天数和月份名称

评论(0)浏览(115)分类:flash/flex/fcs/AIR
14.3.获取星期天数和月份名称问题我想知道星期几或几月解决办法创建包含星期天数和月份的名称数组,然后使用数字的天数和月份来提取相应的数组元素值。讨论ActionScript的Date类提供了day和month属性,它们返回整数值如星期(0到6),月份(0到11)。但是如果想获得名称而不是数字的话就需要自己创建包含星期天数和月份的名称数组,或者使用自定义类ascb. util.DateFormat。..

14.2.获取时间值

评论(0)浏览(107)分类:flash/flex/fcs/AIR
14.2.获取时间值问题我要取得年月日,星期,小时,分,秒,毫秒等数值。解决办法是用fullYear, date, month, day, hours, minutes, seconds, milliseconds 等属性。讨论从Date对象的fullYear, date, month, day, hours, minutes, seconds, milliseconds属性中读取:fullYear 属性返回4位数的年份值,如2010.date 属性返回月天数,如1 到31.month 属性返回月份,..

14.1.获得当前日期和时间

评论(0)浏览(131)分类:flash/flex/fcs/AIR
14.1.获得当前日期和时间问题我想知道当前日期和时间解决办法使用Date( ) 创建一个date对象,或者使用一个CGI脚本或其他服务端脚本返回服务器时间,然后根据返回值创建date对象讨论ActionScript计算出来的日期和时间是根据客户端计算机的日期和时间而得出的,因此如果客户端的时间不正确,那么date对象也是不正确的。+展开-ActionScript//创建新的Date对象varcurrent:Da..

14.0.简介

评论(0)浏览(78)分类:flash/flex/fcs/AIR
14.0.简介日期和时间对于很多ActionScript程序来说是很重要的,比如用于一些和时间相关的定时操作,或者检测用户的登陆是否过期等。在ActionScript内部是以毫秒的形式存储日期和时间的,但是很多编程语言的日期和时间是以秒为单位的,这点需要注意。另外,Date 类用于设置或获取日期和时间,或者直接通过其属性fullYear, month 等,这些属性的值也是以毫秒..

第十四章.时间和日期

评论(0)浏览(94)分类:flash/flex/fcs/AIR
第十四章.时间和日期14.0.简介14.1.获得当前日期和时间14.2.获取时间值14.3.获取星期天数和月份名称14.4.格式化日期和时间14.5.格式化秒或毫秒为分或秒14.6.DMYHMSM和毫秒之间的转换14.7.使用Timer(定时器)14.8.字符串转换为日期

13.10.对字符串使用正则表达式的方法

评论(0)浏览(94)分类:flash/flex/fcs/AIR
13.10.对字符串使用正则表达式的方法RegExp 类包含两个方法:exec() 和 test()。除 RegExp 类的 exec() 和 test() 方法外,String 类还包含以下方法,使您可以在字符串中匹配正则表达式:match()、replace()、search() 和 splice()。test() 方法RegExp 类的 test() 方法只检查提供的字符串是否包含正则表达式的匹配内容,如下面的示例所示:+展开-ActionScriptvarpattern:RegExp=/C..

13.9.标志和属性

评论(0)浏览(82)分类:flash/flex/fcs/AIR
13.9.标志和属性下表列出了可以为正则表达式设置的五种标志。每种标志都可以作为正则表达式对象属性进行访问。 标志属性描述gglobal匹配多个匹配。iignoreCase不区分大小写的匹配。应用于 A-Z 和 a-z 字符,但不能应用于扩展字符,如 é 和 é。mmultiline设置此标志后,$ 和 ^ 可以分别匹配行的开头和结尾。 sdotall设置此标志后,.(点)可以匹配换行符 (\n)。x..

13.8.正则表达式分组

评论(0)浏览(70)分类:flash/flex/fcs/AIR
13.8.正则表达式分组您可以使用括号在正则表达式中指定组,如下所示:/class-(\d*)/组是模式的子部分。您可以使用组实现以下操作:将数量表示符应用到多个字符。界定要应用逻辑“或”(通过使用 | 字符)的子模式。捕获正则表达式中的子字符串匹配(例如,在正则表达式中使用 \1 以匹配先前匹配的组,或类似地在 String 类的 replace() 方法中使用 $1)。下面几节将..

13.7.逻辑“或”

评论(0)浏览(102)分类:flash/flex/fcs/AIR
13.7.逻辑“或”在正则表达式中使用 |(竖线)字符可使正则表达式引擎考虑其它匹配。例如,下面的正则表达式匹配单词 cat、dog、pig 和 rat 中的任意一个:+展开-ActionScriptvarpattern:RegExp=/cat|dog|pig|rat/;您可以使用括号定义组以限制逻辑“或”字符 | 的范围。下面的正则表达式匹配 cat 后跟 nap 或 nip:+展开-ActionScriptvarpattern:RegExp=/cat(na..

13.6.数量表示符

评论(0)浏览(110)分类:flash/flex/fcs/AIR
13.6.数量表示符使用数量表示符指定字符或序列在模式中的重复次数,如下所示:数量表示符元字符描述*(星号)匹配前面重复零次或多次的项目。 +(加号)匹配前面重复一次或多次的项目。 ?(问号)匹配前面重复零次或一次的项目。 {n}{n,}和{n,n}指定前一项目的数值数量或数量范围: /A{27}/ 匹配重复 27 次的字符 A。/A{3,}/ 匹配重复 3 次或更多次的字符 A。/A..

13.5.字符类

评论(0)浏览(101)分类:flash/flex/fcs/AIR
13.5.字符类可以使用字符类指定字符列表以匹配正则表达式中的一个位置。使用方括号([ 和 ])定义字符类。例如,下面的正则表达式定义了匹配 bag、beg、big、bog 或 bug 的字符类:/b[aeiou]g/字符类中的转义序列通常在正则表达式中具有特殊含义的大多数元字符和元序列在字符类中“不具有”那些特殊含义。例如,在正则表达式中星号用于表示重复,但是出现在..

13.4.字符、元字符和元序列

评论(0)浏览(107)分类:flash/flex/fcs/AIR
13.4.字符、元字符和元序列最简单的正则表达式是与字符序列匹配的表达式,如以下示例中所示:var pattern:RegExp = /hello/;但是,下列字符(称为元字符)在正则表达式中具有特殊含义:^ $ \ . * + ? ( ) [ ] { } |例如,下面的正则表达式所匹配的是字母 A 后跟字母 B 的零个或多个实例(星号元字符表示重复)再跟字母 C:/AB*C/在正则表达式模式中包含元字符时若要使其不..

13.3.创建正则表达式实例

评论(0)浏览(107)分类:flash/flex/fcs/AIR
13.3.创建正则表达式实例有两种方法可以创建正则表达式实例。一种方法是使用正斜杠字符 (/) 来界定正则表达式,另一种是使用 new 构造函数。例如,以下两个正则表达式是等效的:+展开-ActionScriptvarpattern1:RegExp=/bob/i;varpattern2:RegExp=newRegExp("bob","i");正斜杠界定正则表达式的方式与用引号界定字符串文本的方式相同。正斜杠内的正则表达式部分定义“模式..

13.2.正则表达式语法

评论(0)浏览(77)分类:flash/flex/fcs/AIR
13.2.正则表达式语法本节介绍了 ActionScript 正则表达式语法的全部元素。正如您所看到的一样,正则表达式可能非常复杂且具有许多细微差别。您可以从网上或者书店中找到有关正则表达式的详细资料。切记,不同的编程环境实现正则表达式的方式也不同。ActionScript 3.0 按照 ECMAScript 第 3 版语言规范 (ECMA-262) 中的定义实现正则表达式。通常,您要使用的正则表达..

13.1.正则表达式基础知识

评论(0)浏览(70)分类:flash/flex/fcs/AIR
13.1.正则表达式基础知识使用正则表达式简介正则表达式描述字符模式。通常,正则表达式用于验证文本值是否符合特定模式(例如,验证用户输入的电话号码位数是否正确),或者替换与特定模式匹配的部分文本值。正则表达式可能非常简单。例如,假设您要确认特定字符串与“ABC”是否匹配,或者要使用某些其它文本替换字符串中出现的每个“ABC”。在这种情况下,您可以使用以..