[AS3]as3.0摄像头或视频帧拍照或视频截图类示例
开发flash项目时,经常会遇到需要用摄像头拍照,或者对视频进行截图。所以我写了这个类GetVideoImage,无论是摄像头还是视频,都是用Video对象来负责播放视频流,
所以拍照或视频截图都是对video用BitmapData.draw方法来截图视频的图像。
使用方法:
创建一个Video对象,重拍按钮,拍照按钮,友好提示文本,然后依次把它们作为参数传递给GetVideoImage类的实例。并侦听此实例发出的"completeCamPic”事件。
通过GetVideoImage类的getPrecamPic方法可以获得拍照或截取所得的图片对象,它是一个Sprite类型。
- var v:Video = new Video(320,280);
- videoContent.addChild(v);
- var getV:GetVideoImage = new GetVideoImage(v,recam_bt,cam_bt,txt);
- getV.addEventListener("completeCamPic",completeCamPicFunc);
- function completeCamPicFunc(e:Event):void{
- camPicContent.addChild(getV.getPrecamPic());
- }
在这里介绍一下GetVideoImage类中的isenabled方法,这个方法可以给Sprite,MovieClip,SimpleButton等显示对象添加或移除鼠标点击事件。
需要给它传递三个参数:isenabled(btMc:DisplayObject,isable:Boolean,fn:Function)
btMc:为需要添加事件的显示对象
isable;为true添加事件,为false移除事件
fn:为事件绑定的函数
- function isenabled(btMc:DisplayObject,isable:Boolean,fn:Function):void {
- var bt;
- if (isable) {
- if(btMc is Sprite){bt = btMc as Sprite;bt.buttonMode=true;}else{bt = btMc;}
- bt.addEventListener(MouseEvent.CLICK,fn);
- bt.alpha=1;
- } else {
- if(btMc is Sprite){bt = btMc as Sprite;bt.buttonMode=false;}else{bt = btMc;}
- bt.removeEventListener(MouseEvent.CLICK,fn);
- bt.alpha=0.5;
- }
- }
添加事件后,鼠标经过按钮对象会变成手形,点击触发绑定的函数,
移除事件后,鼠标经过按钮没有手形,点击无事件,按钮变成半透明效果。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例