使用As 3播放视频,与AS2的方法上大体上相似,相比来讲对于cuePoint和metaData的处理AS3会显得更简单,并且方法更多,另外对于netStream的方法在AS3中也增加了许多.下面的是一个小的测试.
|
package cn.com.webstudio{ import flash.display.Sprite; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.MouseEvent;
public class Wsvideo extends Sprite { private var myvideo:Video; private var nc:NetConnection; private var ns:NetStream; public function Wsvideo() {
init(); }
private function init():void { //创建一个大小为400,240的video对象. myvideo=new Video(400,240); addChild(myvideo); nc=new NetConnection(); nc.connect(null); ns=new NetStream(nc);
myvideo.attachNetStream(ns); ns.play("wsvideo.flv"); ns.bufferTime =10;
//获取cuePoint和metaData信息.此处要比AS2更简单. var customclient:Object = new Object(); customclient.onCuePoint = cuePointHandler; customclient.onMetaData = metaDataHandler; //设定client属性为customclient对象。那么customclient对象的两个方法将被调用。 ns.client = customclient;
stage.addEventListener(MouseEvent.MOUSE_DOWN, onSwitchMovie);
} private function cuePointHandler(infoObject:Object):void{
trace(infoObject.name);
} private function metaDataHandler(infoObject:Object):void{ trace(infoObject.duration);
} private function onSwitchMovie(event:MouseEvent):void{ //As3.0中netStream中的新的togglePause()方法. ns.togglePause(); }
} }
|
在上面的代码,如果与AS2相比,现在只需要创建一个video实例即可,不需象在AS2中那需要在库中创建视频对象,当然这里主要是指不使用组件的方式.第二处是关于cuePoint和metaData的处理,在As3.0只需要创建一个对象如上面创建的是customclient对象,它相当于是为onCuePoint和onMetaData创建了事件侦听器.当事件发生时,执行cuePointHandler和metaDataHandler事件处理函数.最后将ns的client属性设置为customclient。client属性的主要是用于指定哪个对象的方法将调用。可参考帮助文件。AS3 中的togglePause();是一个不错的方法,自动在停止和播放之间切换。
鼠标点击停止播放,再次点击继续播放。
上一篇:
AS3 让载入的 GIF 动起来 下一篇:
AS3应用程序模块化开发与ApplicationDomain