也可以follow catfly围脖:t.sina.com.cn/iscat
看我写的一系列三篇文章,才好理解所有与拍照,上传图片相关的问题。
摄像头拍照或视频截图类:http://www.xncat.com/2009/12/catflash/334.html
图片上传类[UpLoadPic]:http://www.xncat.com/2009/12/catflash/340.html
保存图片到服务器类(php服务器):http://www.xncat.com/2009/12/catflash/368.html
————————————
我们知道flash中将本地图片上传到服务器使用的是FileReference对象,那么如何将flash中的显示对象,如movieClip,Sprite,Video等截图并保存到服务器上呢?这个保存图片到服务器类SaveDrawPic.as就是为此而设计的。
演示demo
要实现这个功能需要用到JPGEncoder 类,相关说明网上很多。
来看一下怎么使用这个SaveDrawPic类,至少需要传递三个参数给它。
SaveDrawPic(_drawMc:Sprite,_saveBt:Sprite,_txt:TextField,_w:Number=320,_h:Number=280)
_drawMc:你需要截取哪一个显示对象的图像,
_saveBt:一个保存按钮,用来触发向服务器保存图片的动作,
_txt:友好提示文本。
关于拍照功能前面《摄像头拍照或视频截图类》已经讲过了,本例增加了把拍照的图片显示到右边的展示区的功能(最多展示四张)。
使用了addToThumb,removeSaveContentChild,resetSaveContent几个方法,可以下载原文件看看它们的具体实现。
var getV:GetVideoImage = new GetVideoImage(v,recam_bt,cam_bt,txt);
getV.addEventListener("completeCamPic",completeCamPicFunc);
function completeCamPicFunc(e:Event):void{
camPicContent.addChild(getV.getPrecamPic());
addToThumb(getV.getPrecamPic());
}
SaveDrawPic类使用方法:
以拍照图片的容器camPicContent为绘制对象,在舞台创建保存按钮,利用原来拍照中的提示文本,依次作为参数传给SaveDrawPic的实例。并侦听此实例发出的“saveSuccess”事件,此事件会在右边的文本区域输出图片地址。
通过SaveDrawPic类的getpicUrl方法可以获得图片在服务器上的地址。
var saveV:SaveDrawPic = new SaveDrawPic(camPicContent,save_bt,txt);
saveV.addEventListener("saveSuccess",saveSuccessFunc);
function saveSuccessFunc(e:Event):void{
txtArea.text = saveV.getpicUrl();
}
此类中也有isenabled方法,这是一个可以很方便给Sprite,MovieClip,SimpleButton等显示对象添加或移除鼠标事件的方法。
在另一篇文章《摄像头拍照或视频截图类》中有详细的说明。
示例原文件下载







