Я пытаюсь разрешить пользователю импортировать гигантские изображения во флэш-приложение.
К сожалению, размеры объекта BitmapData не могут превышать «8,191 пикселей по ширине или высоте, а общее количество пикселей не может превышать 16,777,215 пикселей» (см. Ссылка )
Очевидно, сFlashPlayer11 эти ограничения исчезают - НО: поскольку я получаю только байты из FileReference, мне нужно преобразовать их через Loader.loadBytes (), чтобы получить доступ к данным изображения.Кажется, что это не работает для изображений, превышающих старые ограничения BitmapData.
У кого-нибудь есть идея, что вызывает эту проблему / как обойти ее?
function onAddButtonClicked(e:MouseEvent = null):void {
trace("Opening file");
_frl = new FileReferenceList();
_frl.addEventListener(Event.SELECT, onFilesSelected);
_frl.browse([new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png")]);
}
//When user has selected the files
function onFilesSelected(e:Event):void {
for each (var item:FileReference in _frl.fileList) {
item.load();
item.addEventListener(Event.COMPLETE, onFileLoaded);
}
}
//When files are loaded into the application
function onFileLoaded(e:Event):void {
trace("File Loaded!");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onBytesLoaded);
loader.loadBytes(e.target.data);
}
//When files are finally available as Loader/Image
function onBytesLoaded(e:Event):void {
addChild((e.target as LoaderInfo).loader);
}