我终于尝试将我的Flash游戏移植到应用程序,从iOS开始。我被困在图像保存功能上。在瑞士法郎的,我用jpegencoder保存到桌面服务器。似乎有一些研究表明,该代码仍然可以在移动设备上工作,所以我尝试了它,但是在从Adobe AIR进行iPhone测试时似乎没有做任何事情(该按钮注册了一个点击,但没有可以成为图像的图像)发现,没有发生任何事情的通知,不要求访问图像的权限等)。这是旧代码:使用Adobe AIR在iOS上保存位图
saveToDisc.addEventListener(MouseEvent.CLICK, saveToDiscSave);
function saveToDiscSave(e:MouseEvent):void {
this.visible = false; //hides menu
var bitmapData:BitmapData = new BitmapData(1242,1864);
bitmapData.draw(MovieClip(root));
var jpgEncoder:JPGEncoder = new JPGEncoder(80);
var byteArray:ByteArray = jpgEncoder.encode(bitmapData);
var fileReference:FileReference=new FileReference();
fileReference.save(byteArray, "Dinogeddon-DollDivine.jpg");
//this.visible = true; //returns menu. commented out to see if click registered
}
所以有更多的研究,我发现这看起来简单,像它专门了iOS版的CameraRoll代码。所以我尝试过,但我遇到了同样的问题:没有证据表明发生了任何事情。没有保存图像,没有错误,没有权限请求。
saveToDisc.addEventListener(MouseEvent.CLICK, saveToDiscSave);
function saveToDiscSave(e:MouseEvent):void {
this.visible = false;
var cameraRoll:CameraRoll = new CameraRoll();
var bitmapData:BitmapData = new BitmapData(1242,1864);
bitmapData.draw(MovieClip(root));
cameraRoll.addBitmapData(bitmapData);
//this.visible = true;
}
喜欢,我什至不知道我要去哪里错了..应用程序是否处于测试模式,甚至能够保存图像?我是否应该期待某种通知弹出?是否有保存到手机的东西的大小限制? HALP
你想在相机胶卷中的图像?或者只是存储在设备上的某个地方,以后可以再次检索它? FileReference我不认为适用于移动设备,您必须使用FileStream和File类保存到应用程序存储目录。你确定'CameraRoll.supportsAddBitmapData'是真的吗? – BadFeelingAboutThis
此外,您应该听取错误,因为相机胶卷addBitmapData方法是异步操作。 'cameraRoll.addEventListener(ErrorEvent.ERROR,handleMyError);',你也可以监听Event.COMPLETE事件。 – BadFeelingAboutThis
应用程序不需要图像。这仅仅是为了用户自己的细读。我不在乎它是否是专门的相机胶卷。我只是希望它在任何习惯这种事情的地方都能保存下来? –