cameraBtn.addEventListener(MouseEvent.CLICK,cameraClickHandler);
protected function cameraClickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
//先繪制當前圖行到一個bigmapdata對象
var bmpData:BitmapData = new BitmapData(GameModel.getInstance().screenWidth,GameModel.getInstance().screenHeight);
bmpData.draw(this);
if(CameraRoll.supportsAddBitmapData)
{
//測試環境是平板是會走到這里
// creatTxt();
var roll:CameraRoll = new CameraRoll();
roll.addEventListener(Event.COMPLETE,onCreatePicComlete);
roll.addEventListener(ErrorEvent.ERROR, onCreatePicError);
roll.addBitmapData(bmpData);
}
else
{
//測試環境是虛擬機里是會走到這里
//利用pngEncoder解碼器開始對bitmapdata編碼成二進制數據ByteArray
var bytes:ByteArray = PNGEncoder.encode(bmpData);
//把二進制數據寫入到本地中
//根據當前系統時間來編輯圖片文件的名字
var now:Date = new Date();
var year:Number=now.getFullYear();//年
var month:Number=now.getMonth()+1;//月
var day:Number=now.getDate();//日
var hour:Number = now.getHours();//時
var min:Number = now.getMinutes();//分
var sec:Number = now.getSeconds();//秒
var fileName:String = "word_" + year + month + day + hour + min + sec;
var fileFullName:String = File.applicationStorageDirectory.resolvePath("img/"+ fileName +".png").nativePath;
var file:File = new File(fileFullName);
trace(file.nativePath);
var stream:FileStream = new FileStream();
stream.open(file,FileMode.WRITE);
stream.writeBytes(bytes);
stream.close();
}
}
protected function onCreatePicError(event:ErrorEvent):void
{
// TODO Auto-generated method stub
trace("相冊圖片創建失敗");
// creatTxt();
var roll:CameraRoll = CameraRoll(event.target);
roll.removeEventListener(Event.COMPLETE,onCreatePicComlete);
roll.removeEventListener(ErrorEvent.ERROR, onCreatePicError);
}
protected function onCreatePicComlete(event:Event):void
{
// TODO Auto-generated method stub
trace("相冊圖片創建成功");
var roll:CameraRoll = CameraRoll(event.target);
roll.removeEventListener(Event.COMPLETE,onCreatePicComlete);
roll.removeEventListener(ErrorEvent.ERROR, onCreatePicError);
creatTxt();
ZoeDelay.Delay(1500,remoeTxtHanler);
}
private function creatTxt():void
{
savePicREsultTxt = new TextField();
var format:TextFormat = new TextFormat();
format.size = 60;
format.align = TextFormatAlign.CENTER;
format.color = 0x000000;
format.bold = true;
savePicREsultTxt.selectable = false;
savePicREsultTxt.mouseEnabled = false;
savePicREsultTxt.text = "圖片保存成功!";
// savePicREsultTxt.text = "創建圖片!";
savePicREsultTxt.width = 500;
savePicREsultTxt.height = 80;
savePicREsultTxt.setTextFormat(format);
savePicREsultTxt.x = (GameModel.getInstance().screenWidth - savePicREsultTxt.width)/2;
savePicREsultTxt.y = (GameModel.getInstance().screenHeight - savePicREsultTxt.height)/2;
addChild(savePicREsultTxt);
}
private var savePicREsultTxt:TextField;
private function remoeTxtHanler():void
{
// TODO Auto Generated method stub
this.removeChild(savePicREsultTxt);
savePicREsultTxt = null;
}
如果要通過App直接訪問手機的本地相冊,roll.browseForImage();就解決了