17.6.序列化自定义类

评论(0)浏览(78)分类:flash/flex/fcs/AIR
17.6.序列化自定义类问题我想把自定义类实例存储到LSO解决办法使用flash.net.registerClassAlias( )方法保留类型信息并把类实例添加到共享对象的data属性上。讨论LSOs 使用特殊的二进制格式,Action Message Format (AMF),当要在LSO中存储类实例时,实例会被编码为包含属性的普通的object。这样当重新从共享对象中读取实例时,已经不是原来的类实例了,因为已不能根..

17.5.删除共享对象中保存的数据

评论(0)浏览(111)分类:flash/flex/fcs/AIR
17.5.删除共享对象中保存的数据问题我想删除共享对象中的某个属性值或者干脆删除整个共享对象解决办法使用delete删除共享对象的data属性中的值,或使用clear( )方法清除整个共享对象讨论删除共享对象中的数据是很简单的,但是要注意方法,在ActionScript中我们经常看到删除对象或数组只要赋值为+展开-ActionScriptnull或undefined即可,但是对于共享对象这样做却不行://试图删..

17.3.保存本地共享对象

评论(0)浏览(110)分类:flash/flex/fcs/AIR
17.3.保存本地共享对象问题我想保存LSO到客户机上解决办法使用SharedObject.flush( )方法讨论以下几种情况会导致Flash自动试图保存LSO数据到硬盘上:当Flash播放器关闭时,当共享对象被垃圾回收时,当调用SharedObject.clear( )方法时。但是自动保存功能并不很实用,因为还有很多原因需要及时保存共享对象数据,因此我们可以显式调用SharedObject.flush( )方法:+展开..

17.2.写入数据到共享对象上

评论(0)浏览(79)分类:flash/flex/fcs/AIR
17.2.写入数据到共享对象上问题我想添加数据到LSO上.解决办法给共享对象的data对象添加属性值讨论共享对象(Shared objects)有个内建的属性data,data属性类型为object,因此可以添加任何信息上去:+展开-ActionScript//存储username值给example共享对象example.data.username="Darron";和早期版本的ActionScript不同,现在不能直接把属性值赋值给共享对象本身了,如果这..

17.1.创建,打开Local Shared Object

评论(0)浏览(109)分类:flash/flex/fcs/AIR
17.1.创建,打开Local Shared Object问题我想当访问swf过程中存储一些信息解决办法使用LSO.讨论如同这章的简介里描述的那样,Flash的LSOs 就如同Web浏览器中的cookies,它们被一些开发者称为“超级cookies”,因为LSOs可以存储大量数据,且存储和读取的都是原生的ActionScript数据类型。LSOs 默认的空间大小100 KB, 用户可以通过Flash Player's Settings Manager控制LSOs的使用空间..

17.0.简介

评论(0)浏览(66)分类:flash/flex/fcs/AIR
17.0.简介电影剪辑在运行时,大多数数据都存储在内容中,一旦电影剪辑关闭,那么这些数据也同时从内存中清除掉,如果想存储数据或者让客户端的两个电影剪辑共享数据该怎么办呢,要想办法把数据存储在Flash播放器外面。ActionScript中,SharedObject类实现了客户端机器数据的持久性存储。有两种类型的共享对象:本地和远程,这章集中讨论local shared obje..

第十七章.数据持久性

评论(0)浏览(108)分类:flash/flex/fcs/AIR
第十七章.数据持久性17.0.简介17.1.创建,打开Local Shared Object17.2.写入数据到共享对象上17.3.保存本地共享对象17.4.从共享对象中读取数据17.5.删除共享对象中保存的数据17.6.序列化自定义类17.7.Flash程序之间共享数据17.8.控制LSO的容量大小

16.14.检测用户带宽

评论(0)浏览(95)分类:flash/flex/fcs/AIR
16.14.检测用户带宽问题我想检测用户网络带宽以便优化视频回放解决办法通过下载一个图片,根据下载时间计算出用户的网速讨论遗憾的是Flash播放器并没有内建带宽检测系统,要想测出用户带宽,需要通过Flash播放器下载一个文件如JPEG文件,通过下载的大小和所花的时间可以计算出平均下载速度,根据8个比特等于1个字节,1000个字节等于1个kilobyte(KB),转换公式为:..

16.13.清除视频显示

评论(0)浏览(86)分类:flash/flex/fcs/AIR
16.13.清除视频显示问题我想视频显示的内容解决办法调用Video对象的clear( )方法讨论当关闭NetStream对象时,它不会自动清除video显示的内容。视频的最后一帧内容仍显示在Video对象上,需调用clear( )方法进行清除,看下面的例子:+展开-ActionScriptvideo.clear();要从显示列表上删除Video对象需调用removeChild( ):+展开-ActionScriptremoveChild(video);

16.12.擦洗视频

评论(0)浏览(82)分类:flash/flex/fcs/AIR
16.12.擦洗视频问题我想擦洗视频的回放(快进或倒退播放)解决办法联合使用滑竿控制器与seek( )方法讨论一般的方法是通过滑竿控制器来快进或倒退播放视频,首先要创建滑竿控制器,下面的例子代码演示滑竿控制器的编写:+展开-ActionScriptpackagecom.oreilly.as3cb.components{importflash.display.Sprite;importflash.net.NetStream;importflash.events.Event..

16.11.停止播放视频

评论(0)浏览(78)分类:flash/flex/fcs/AIR
16.11.停止播放视频问题我想停止视频的下载和播放解决办法使用NetStream类的close( )方法讨论NetStream对象的close( )方法可停止视频的播放,pause( )方法只是暂停播放,flv数据还是在继续下载,如果要完全停止视频下载,必须使用close( )方法,如下:+展开-ActionScriptvideoStream.close();当调用close( )方法后,Flash Player删除内存中的flv数据,要想播放需要..

16.10.暂停和继续播放视频

评论(0)浏览(163)分类:flash/flex/fcs/AIR
16.10.暂停和继续播放视频问题我想暂停或继续播放视频解决办法使用NetStream对象的pause( )方法讨论NetStream类的pause( )方法可以暂停和继续视频的回放。当没有参数时,即改变视频的暂停状态(如果在播放则暂停,如果暂停则继续播放):+展开-ActionScriptvideoStream.pause();如果参数为true,如果视频在播放则暂停,如果已经暂停则无任何效果:+展开-ActionScriptvide..

16.9.给视频添加滤镜

评论(0)浏览(73)分类:flash/flex/fcs/AIR
16.9.给视频添加滤镜问题我想应用滤镜效果(模糊,色彩,置换等)到视频上。解决办法把滤镜数组赋值给Video对象的filters属性讨论Video 类继承了DisplayObject 类的filters 属性,意味着可以把滤镜效果应用到Video 对象上。

16.8.监听提示点

评论(0)浏览(93)分类:flash/flex/fcs/AIR
16.8.监听提示点问题我想监听flv中的提示点解决办法使用onCuePoint( )回调函数讨论FLV格式可嵌入提示点,提示点有各种用处,如:字幕或提示说明同步动画记录视频回放状态当使用诸如Flash Video Exporter,On2 Flix (http:// www.on2.com),或Sorenson Squeeze (http://www.sorensonmedia.com)等编码器时会插入一些提示点在flv文件中。当播放这些视频时,经过提示..

16.7.管理和监视缓冲及下载进度

评论(0)浏览(99)分类:flash/flex/fcs/AIR
16.7.管理和监视缓冲及下载进度问题我想管理视频缓冲及监视下载进度解决办法使用bufferTime属性设置缓冲区大小,使用bytesLoaded和bytesTotal来监视下载进度讨论默认下,视频只缓冲0.1秒,可通过NetStream的bufferTime属性进行设置:+展开-ActionScriptvideoStream.bufferTime=10;//设置缓冲区大小为10秒客户端的带宽不仅相同,我们该怎么设置缓冲区大小以增强用户体验呢。首先..

16.6.缩放视频

评论(0)浏览(71)分类:flash/flex/fcs/AIR
16.6.缩放视频问题我想改变视频的显示尺寸解决办法设置Video对象的width和height属性,如果要根据视频编码时的尺寸播放,可使用videoWidth和videoHeight值讨论视频尺寸是由Video对象的width和heigh属性决定的。当构造Video对象时可指定宽度和高度,例如,初始化视频尺寸为160x120:+展开-ActionScriptvarvideo:Video=newVideo(160,120);通过width和height..

16.5.控制回放时间

评论(0)浏览(108)分类:flash/flex/fcs/AIR
16.5.控制回放时间问题我想控制视频的回放时间解决办法使用NetStream的seek( )方法讨论NetStream对象的time属性不是回放时间吗,直接修改值吗?这是不行的,因为time属性是只读的,因此需要使用seek( )方法。seek( )方法需要一个参数指定播放的位置,单位为秒,下面的例子从视频开始5秒后的位置播放:+展开-ActionScriptvideoStream.seek(5);当在渐进式下载视频中..

16.4.获得视频长度

评论(0)浏览(113)分类:flash/flex/fcs/AIR
16.4.获得视频长度问题我想知道视频长度是多少解决办法使用onMetaData( )回调函数读取长度的元数据值讨论NetStream类没有定义一个属性指明视频长度,不过大多数情况,可以从flv文件本身获得长度值。flv文件可以包含元数据,大多数视频编码器都包含长度元数据,单位为秒,我们可通过ActionScript读取它。当一个NetStream对象载入一个flv文件,它会自动调用onMetaDa..

16.3.读取回放时间

评论(0)浏览(62)分类:flash/flex/fcs/AIR
16.3.读取回放时间问题我想读取当前视频的回放时间解决办法使用NetStream对象的time属性讨论NetStream类的time属性是个只读属性,单位为秒,下面的例子用文本框显示回放时间:+展开-ActionScripttextField.text=videoStream.time+"seconds";注意其值没有经过四舍五入,也就是说有时候得到数可能诸如5.235 ,如果需要整数,可使用Math.round( ), Math.floor( ), 或..

16.2.控制视频声音

评论(0)浏览(85)分类:flash/flex/fcs/AIR
16.2.控制视频声音问题我想控制视频声音的音量及平衡解决办法使用NetStream对象的soundTransform 属性讨论如果Flash 视频有音轨,则声音部分会自动随着视频播放。如果想控制音量及平衡度,则需要访问NetStream 对象的soundTransform 属性,来获得一个SoundTransform 对象的一个引用。更多细节请看第15.14 章.

16.1.载入并播放视频

评论(0)浏览(76)分类:flash/flex/fcs/AIR
16.1.载入并播放视频问题我想渐进式下载视频并播放问题使用NetStream对象载入并播放视频,使用Video对象显示视频内容讨论ActionScript 3.0 需要多个类同时工作来载入和回放Flash视频。你必须使用NetStream对象载入视频并控制回放,但是NetStream类只关心如何读取数据,至于这些数据是什么内容并不知道,因此就需要Video对象,Video对象得到NetStream的数据并显示到屏..

16.0.简介

评论(0)浏览(137)分类:flash/flex/fcs/AIR
16.0.简介Flash播放器是有能力回放视频的,虽然也可以把视频内容嵌入到swf文件中,但大部分Flash视频内容都是以.flv格式存储的,通过ActionScript在运行时载入到Flash播放器,这样swf文件更小,更利于管理视频内容。Flash 视频载入有两种形式:渐进式下载和流下载。flv 流视频需要流服务器,比如Flash MediaServer。相反,渐进式下载不需要额外的软件,不..

第十六章.视频编程

评论(0)浏览(74)分类:flash/flex/fcs/AIR
第十六章.视频编程16.0.简介16.1.载入并播放视频16.2.控制视频声音16.3.读取回放时间16.4.获得视频长度16.5.控制回放时间16.6.缩放视频16.7.管理和监视缓冲及下载进度16.8.监听提示点16.9.给视频添加滤镜16.10.暂停和继续播放视频16.11.停止播放视频16.12.擦洗视频16.13.清除视频显示16.14.检测用户带宽

15.15.编写一个音乐程序

评论(0)浏览(74)分类:flash/flex/fcs/AIR
15.15.编写一个音乐程序问题我想写一个全功能的音乐程序,比如一个MP3 播放器解决办法利用前面讲到的知识即可做到讨论这一节将整合前面的技术到一个程序上:+展开-ActionScriptpackage{importflash.display.Sprite;importflash.display.Stage;importflash.display.StageAlign;importflash.display.StageScaleMode;importflash.text.TextField;importflash.events.Event..

15.14.改变声音的音量和平衡度

评论(0)浏览(127)分类:flash/flex/fcs/AIR
15.14.改变声音的音量和平衡度问题我想改变音量或左右声道平衡解决办法创建SoundTransform 对象, 改变音量及平衡度, 把该对象赋值给SoundChannel 对象的soundTransform属性。讨论在以前的版本中,可直接通过Sound对象改变音量及平衡度,现在这些被抽象出来形成SoundTransform类。SoundChannel对象有个soundTransform属性,它是SoundTransform的类实例。要改变音量或平衡度,..

15.13.读取音乐的声谱

评论(0)浏览(118)分类:flash/flex/fcs/AIR
15.13.读取音乐的声谱问题我想显示出声音的波形图(声谱)解决办法使用SoundMixer.computeSpectrum( )填充一个字节数组,读取这个数组得到具体数据。讨论访问声谱数据是ActionScript 3.0 新增的特性之一,在早期的Flash版本时期,开发者也很想获得这些数据,需要借助一些第三方工具,但是它们的实现过于复杂且效率低。现在这个功能已经内置于SoundMixer类之中,再加上..

15.12.停止播放所有的音乐

评论(0)浏览(140)分类:flash/flex/fcs/AIR
15.12.停止播放所有的音乐问题我要停止所有当前正在播放的音乐解决办法使用SoundMixer的stopAll( )方法讨论当开始播放一个音乐时,它会产生一个SoundChannel对象,在一个swf里可以播放多个音乐,每个音乐都对应一个SoundChannel对象,声音某些方面由Sound对象本身控制,有些则有SoundChannel对象控制,最后所有正在播放的声音进行合成输出到扬声器上。这个重要的工作由So..

15.11.获得声音的音量

评论(0)浏览(98)分类:flash/flex/fcs/AIR
15.11.获得声音的音量问题我想知道正在播放的声音的音量是多少解决办法通过SoundChannel.leftPeak and 和SoundChannel.rightPeak 属性讨论任何声音,当在播放时产生强或弱的声波,我们称之为振幅,ActionScript 3.0 可获得一个立体声的左右声道的振幅,分别为SoundChannel的leftPeak和rightPeak属性。它们的值范围是0.0到1.0,1.0表示最大的音量,具体的控制是通过So..

15.10.暂停和重新播放声音

评论(0)浏览(104)分类:flash/flex/fcs/AIR
15.10.暂停和重新播放声音问题我想暂停一下过一会儿再继续播放音乐解决办法利用SoundChannel的position属性即可做到讨论在第15.2章,我们讲过调用Sound对象的close( )方法可以停止播放,但是这样也停止了声音流,要想重新播放,必须再次调用load( )方法。还好,SoundChannel类提供了一个stop( )方法,它可以让音乐暂停而不影响声音流中断,要想重新播放,调用play( )方法即..

15.9.跟踪音乐播放进度

评论(0)浏览(90)分类:flash/flex/fcs/AIR
15.9.跟踪音乐播放进度问题我想知道当前播放的歌曲已经播放到什么位置了解决办法使用Sound.length得到歌曲的总长度,SoundChannel.position得到当前的播放位置讨论第15.6章讨论了如何添加一个进度条既显示音乐的播放进度,也显示音乐的下载进度,这一节就来创建播放进度条。这一节涉及如何跟踪音乐的播放进度,要做到这一点,必须知道两件事:音乐的长度和当前的播放位..