![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2006
Сообщений: 179
|
Делаю загрущик фото по типу в Контакте:\
import flash.display.Bitmap; import flash.display.Loader; import flash.net.FileFilter; import flash.net.FileReference; import flash.events.MouseEvent; import flash.events.Event; import fl.events.ListEvent; import fl.data.DataProvider; // переменные var frl:FileReferenceList = new FileReferenceList(); var currentFile:FileReference; var dp:DataProvider = new DataProvider(); var currentFileNumber:uint; var bitmap:Bitmap; var totalAllowFiles:uint=50; var idFile:uint=0; // переменные myTileList.setStyle("contentPadding", 5); myTileList.setRendererStyle("imagePadding", 10); myTileList.dataProvider = dp; browseButt.addEventListener(MouseEvent.CLICK, browseFiles); function browseFiles(event:MouseEvent):void { currentFileNumber=1; var imageTypes = new Array(new FileFilter("Изображения (*.jpg)", "*.jpg")); frl.browse(imageTypes); // browse files frl.addEventListener(Event.SELECT, onImageSelect); } function onImageSelect (event : Event):void { // при выборе картинок getFile(); } function getFile() : void { // получение каждого файла из frl if(currentFileNumber<=frl.fileList.length && totalAllowFiles>0) { currentFile = FileReference(frl.fileList[currentFileNumber-1]); currentFile.load(); currentFile.addEventListener(Event.COMPLETE, onDataLoaded); } } function onDataLoaded (event:Event):void { // при загрузке инфы из fr var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); loader.loadBytes(event.target.data); } function onImageLoaded(event:Event):void { // доавбление картинкиn в bitmap var image:Bitmap = Bitmap(event.target.content); event.target.removeEventListener(Event.COMPLETE, onImageLoaded); var imageResize:Bitmap=resize(image, 150, 150); trace('после ресайз' + idFile); dp.addItem({source:imageResize, data:idFile}); // добавляем картинку в myTileList if(totalAllowFiles>0) { // груим дальше картинки если они есть в FileReference idFile++; totalAllowFiles--; currentFileNumber++; getFile(); } } function resize(btm:Bitmap, width:Number, height:Number):Bitmap { trace('до ресайз' + idFile); var size:Number = 1; var matrix:Matrix; var image:BitmapData; matrix = new Matrix(); if (btm.width > width || btm.height > height) { size = Math.min(width / btm.width, height / btm.height); matrix.scale(size, size); } btm.smoothing = true; image = new BitmapData(btm.width * size, btm.height * size, true); image.draw(btm, matrix, null, null, null, true); return new Bitmap(image, PixelSnapping.AUTO, true); } ArgumentError: Error #2015: Недопустимые данные BitmapData. at flash.display::BitmapData() at upload2_fla::MainTimeline/resize() at upload2_fla::MainTimeline/onImageLoaded() |
|
|||||
|
скорее всего недопустимые данные это слишком большой размер битмапДаты
|
|
|||||
|
Регистрация: Jan 2006
Сообщений: 179
|
Но я же делаю ресайз, картинки перед этим?
Добавлено через 1 минуту и что никак нельзя это победить? ну сделано же как-то в контакте и не важно какого размера ты офтки туда грузишь .... |
|
|||||
|
посмотри спецификацию битмапдаты повнимательней на предмет ограничений и проследи, какие именно данные поступают в конструктор битмап даты, так ты узреешь истину!
![]() |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 179
|
А подскажешь как проследить
делаю trace(btm); он всё время выводит [object Bitmap] Добавлено через 6 минут вот поять примерчик нашёл: прекрасно работающий |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 215
|
задаются либо слишком большие, либо слишком малые(=0) размеры
поэтому такое исключение и валится про ограничение на размер bitmap писалось на форуме |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 179
|
Уважаемые участники форума хочу Вам возразить, мой код загружает фотки с разрешением: 4272*2848
причём в один запус крпограммы он может все фотки прогрузить без проблем, а в лдругой раз споткнуться на 10, а в третий раз споткнуться на 30. Так что не думаю чт опроблема в этом, плюс, опять же загрущик в контакте не имеет таковых ораничений, я там загружал фотки таких же размеров. |
|
|||||
|
не не не!
тут как раз таки такая фишка... загрузить загрузит! и отобразит больших размеров! но как только ты начинаешь создавать bitmapdatу размеров больше выше изложеных появляется ошибка, уже было такое. послушай нас. проверь какие данные поступают в конструктор битмапдаты |
|
|||||
|
Цитата:
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|