18.3.基于本地连接通信的有效性验证

评论(0)浏览(77)分类:flash/flex/fcs/AIR
18.3.基于本地连接通信的有效性验证问题我想知道发送的数据是否被接收端顺利收到解决办法设置接收端发送确认信息给发送端讨论要确认信息是否被收到,需要在接收端返回给发送端一条确认信息,为了验证信息是否被收到,可以在接收端发送一条确认消息给发送端。由于本地连接自身的限制,一个通道不能用于双向通信,因此需要各自建立一条通道互不干扰,具体步骤如下:1.接收端和发送端..

18.2.发送数据

评论(0)浏览(83)分类:flash/flex/fcs/AIR
18.2.发送数据问题我想在几个flash之间传送数据解决办法通过send( )方法的第三个参数传递数据讨论send( )方法的第三个参数即传递的数据,前两个参数是必须的:通道名称,接收端方法名称。需要注意的是这个方法名称不能和LocalConnection类内部的属性和方法名称冲突,否则send( )将调用失败,send, connect, close, allowDomain, allowInsecureDomain, client,..

18.1.创建本地连接

评论(0)浏览(85)分类:flash/flex/fcs/AIR
18.1.创建本地连接问题我想让同一台电脑上的两个Flash进行通信解决办法使用flash.net包中的LocalConnection类来收发数据。在接收端使用LocalConnection.connect( )方法监听信息,定义一个函数触发LocalConnection.send( )发送数据,两个Flash必须指定相同通信信道。讨论当两个或多个在同一个电脑上运行着的Flash 可通过flash.net.LocalConnection 进行通信,而不必..

18.0.简介

评论(0)浏览(63)分类:flash/flex/fcs/AIR
18.0.简介当我们讨论Flash之间的交互时,有两种情况需要考虑,第一,两个Flash都在同一个客户端上彼此之间需要通信,另一种情况是两个Flash在不同的电脑上,他们之间需要通信。在Flash播放器6之前的版本里,同一台电脑上的两个Flash要通信只有一个办法(不使用服务端的功能),那就是使用fscommand( )函数执行JavaScript方法,JavaScript充当中间桥梁。但..

17.8.控制LSO的容量大小

评论(0)浏览(94)分类:flash/flex/fcs/AIR
17.8.控制LSO的容量大小问题我想控制LSO的硬盘占用空间解决办法使用Security.showSettings( )方法或者访问Web站点的Flash Player Settings Manager.讨论默认LSO的大小为100 KB。在.第17.3节介绍了flush( )方法来申请获得一定的硬盘空间大小,如果请求的空间超出共享对象空间的最大值, 则会提示用户是否同意分配空间, 通过flash.system.Security.showSettings( )方法可..

17.7.Flash程序之间共享数据

评论(0)浏览(104)分类:flash/flex/fcs/AIR
17.7.Flash程序之间共享数据问题我想要同一个域中的两个swf文件能访问同一个LSO。解决办法当创建或打开LSO时指定本地路径参数。讨论默认情况下,LSOs存储的名称是唯一的,这主要是为了防止名称冲突,例如,在Windows XP,如果电影剪辑名称为movie.swf,放在http://www.person13.com/ascb路径下,写入时LSO名称为example,则保存的路径为:C:\Documents and Settings\[user ..

17.6.序列化自定义类

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

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

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

17.3.保存本地共享对象

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

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

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

第十七章.数据持久性

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

16.13.清除视频显示

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

16.12.擦洗视频

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

16.11.停止播放视频

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

16.10.暂停和继续播放视频

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

16.9.给视频添加滤镜

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

16.8.监听提示点

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

16.6.缩放视频

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

16.2.控制视频声音

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

16.1.载入并播放视频

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

16.0.简介

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

第十六章.视频编程

评论(0)浏览(72)分类: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.检测用户带宽