Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.03.2009, 20:47
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 1  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
По умолчанию Недопустимые данные BitmapData

Делаю загрущик фото по типу в Контакте:\

Код AS3:
 
	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()

Старый 02.03.2009, 20:50
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 2  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
скорее всего недопустимые данные это слишком большой размер битмапДаты

Старый 02.03.2009, 20:56
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 3  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
Но я же делаю ресайз, картинки перед этим?

Добавлено через 1 минуту
и что никак нельзя это победить?
ну сделано же как-то в контакте и не важно какого размера ты офтки туда грузишь ....

Старый 02.03.2009, 21:49
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 4  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
посмотри спецификацию битмапдаты повнимательней на предмет ограничений и проследи, какие именно данные поступают в конструктор битмап даты, так ты узреешь истину!

Старый 02.03.2009, 22:13
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 5  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
А подскажешь как проследить
делаю trace(btm);

он всё время выводит [object Bitmap]

Добавлено через 6 минут
вот поять примерчик нашёл:
прекрасно работающий

Старый 03.03.2009, 13:45
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 6  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
задаются либо слишком большие, либо слишком малые(=0) размеры
поэтому такое исключение и валится

про ограничение на размер bitmap писалось на форуме

Старый 03.03.2009, 15:18
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 7  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
2880*2880 для FP9
4096*4096 для FP10

Старый 03.03.2009, 15:44
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 8  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
Уважаемые участники форума хочу Вам возразить, мой код загружает фотки с разрешением: 4272*2848
причём в один запус крпограммы он может все фотки прогрузить без проблем, а в лдругой раз споткнуться на 10, а в третий раз споткнуться на 30.
Так что не думаю чт опроблема в этом, плюс, опять же загрущик в контакте не имеет таковых ораничений, я там загружал фотки таких же размеров.

Старый 03.03.2009, 18:20
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 9  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
не не не!
тут как раз таки такая фишка... загрузить загрузит! и отобразит больших размеров!
но как только ты начинаешь создавать bitmapdatу размеров больше выше изложеных появляется ошибка, уже было такое. послушай нас. проверь какие данные поступают в конструктор битмапдаты

Старый 03.03.2009, 18:49
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 10  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
Цитата:
Сообщение от motoroller Посмотреть сообщение
Уважаемые участники форума хочу Вам возразить, мой код загружает фотки с разрешением: 4272*2848
причём в один запус крпограммы он может все фотки прогрузить без проблем, а в лдругой раз споткнуться на 10, а в третий раз споткнуться на 30.
Так что не думаю чт опроблема в этом, плюс, опять же загрущик в контакте не имеет таковых ораничений, я там загружал фотки таких же размеров.
4272*2848 сможет сконвертить в битмапдату только FP10. Без проблем предположительно.


Создать новую тему Ответ Часовой пояс GMT +4, время: 18:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.