Flash AS3.0 拍照保存图片到文件夹内…求高手帮忙修改 100

package{importflash.display.BitmapData;importflash.display.Sprite;importflash.display... package {
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.geom.Matrix;
import flash.net.FileReference;
import flash.utils.ByteArray;
import flash.geom.Rectangle;
import flash.media.Camera;
import flash.media.Video;
import com.adobe.images.JPGEncoder;

public class Main extends Sprite {
private var ii=0;
private var captrueBmd:BitmapData;
private var FileRefe:FileReference = new FileReference();

private var vid:Video;
private var cam:Camera;

public function Main()
{
init();
}

public function init()
{
setupCamera();
capture_btn.addEventListener(MouseEvent.CLICK, capture_click);
save_btn.addEventListener(MouseEvent.CLICK, save_click);
}
private function setupCamera():void
{
trace("setupCamera.....");
vid=new Video(700,400);
cam=Camera.getCamera();
cam.setQuality(0,1);
cam.setMode(1920, 1080, 25);
vid.attachCamera(cam);
addChild(vid);
vid.x=0;
vid.y=50;
}
private function capture_click(e:MouseEvent)
{
if (ii<4) {
if (! captrueBmd) {
captrueBmd=new BitmapData(400,300);
}
captrueBmd.draw(vid);
var myBmt:Bitmap=new Bitmap(captrueBmd);
addChild(myBmt);
myBmt.scaleX=myBmt.scaleY=0.3;
myBmt.y=380;
myBmt.x=60+ii*150;
ii++;
}
}
private function save_click(e:MouseEvent) {
if (captrueBmd) {
//定义jpg图片文件流
var jpgEncoder:JPGEncoder=new JPGEncoder(95);
var jpgStream:ByteArray=jpgEncoder.encode(captrueBmd);
FileRefe.save(jpgStream, "myphoto.jpg");
}
}
}
}
这程序存图时是弹出对话框
我需要存图时,存到pic命名的文件夹内 命名是1.jpg;2.jpg;3.jpg…
展开
 我来答
ylylsheep
2013-06-25 · TA获得超过1280个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:1054万
展开全部
flashplayer 安全限制 你不能访问用户的目录结构

所以只能用户手动自己选择保存位置

至于jpg名字直接修改 最后一句 FileRefe.save(jpgStream, "1.jpg"); 对应的名字就行了

PS: 使用air 工程文件 可以使用FILE类 这样就可以对文件夹操作。写入 读取 覆盖,自定义路径 等等 你可以查看帮助文档中的 file 类
一只小小喵BH
2013-06-25 · 超过16用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:62.3万
展开全部
你用的是flex吧,不然没有 pgEncoder这个类。

var f:FileStream=new FileStream();
var file:File=new File("d:/test/1.jpg");
var j:JPEGEncoder=new JPEGEncoder(100);
f.openAsync(file,FileMode.WRITE);
f.writeBytes(j.encode(b));//这里直接写入数据。
刚才试了一下flex建立air可以用。
至于自动命名可以自己弄一个loader,用loader类load一下是否有文件,如果有就把如1.jpg加一下变成2.jpg,一直加到没有为止。目前只有这个方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FlashASer

2013-06-25 · Animate,Photoshop,职场经验,人生感悟!
FlashASer
采纳数:14298 获赞数:18655

向TA提问 私信TA
展开全部
像楼上说的,如果不是AIR程序还要放到网上,则一定不能实现你要的效果,如果是本地的,可以考虑和其它程序语言结合实现。思路就是这些了,毕竟FLASH的安全限制挺多。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
远方来鹏
2013-06-25 · TA获得超过159个赞
知道小有建树答主
回答量:285
采纳率:100%
帮助的人:214万
展开全部
好像用File可以,有个SAVEBETYE的啥子方法,前段时间做过,还不知道你这个是做的AIR还是网站,如果是网站用 我想基本不好办了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式