Форум 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()

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

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

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


 


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


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