Я наконец-то пытаюсь перенести свои Flash-игры в приложения, начиная с iOS. Я застрял на функции сохранения изображений. В swf я использовал jpegencoder для сохранения на настольный сервер. После некоторых исследований показалось, что этот код все еще должен работать на мобильных устройствах, поэтому я попробовал, но он, похоже, ничего не делает при тестировании на iPhone из Adobe AIR (кнопка регистрирует щелчок, но нет изображения, которое может быть найдено, нет уведомлений о том, что что-то происходит, не запрашивается разрешение на доступ к изображениям и т. д.). Это старый код:
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
}
Итак, проведя дополнительные исследования, я нашел код CameraRoll, который выглядел просто и выглядел так, как будто он был создан специально для iOS. Я попробовал это, но у меня та же проблема: нет доказательств того, что что-то происходит. Изображение не сохранено, ошибок нет, запросов разрешений нет.
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
CameraRoll.supportsAddBitmapData
верно? - person BadFeelingAboutThis   schedule 08.04.2016cameraRoll.addEventListener(ErrorEvent.ERROR, handleMyError);
, вы также можете прослушивать событиеEvent.COMPLETE
. - person BadFeelingAboutThis   schedule 08.04.2016