Показать сообщение отдельно
Старый 07.10.2010, 13:02
Obi вне форума Посмотреть профиль Отправить личное сообщение для Obi Найти все сообщения от Obi
  № 10  
Ответить с цитированием
Obi
 
Аватар для Obi

Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
50 картинок. Все еще не вижу разницы.
Код AS3:
const MATRIX_SCALING:Boolean = false;
 
var bitmapVector:Vector.<Bitmap> = new Vector.<Bitmap>();
 
generateBitmaps(50);
 
function generateBitmaps(count:int):void {
	while(count-- > 0) {
		var bmd:BitmapData = new BitmapData(1000, 1000, true, 0xFF << 24 | Math.random()*0xFFFFFF);
		brbrBitmapData(bmd);
 
		var scaleFactor:Number = 0.3;
 
		var bm:Bitmap;
		if(!MATRIX_SCALING) {
			bm = new Bitmap(bmd);
			bm.scaleX = bm.scaleY = scaleFactor;
		}else {
			var mtx:Matrix = new Matrix();
			mtx.scale(scaleFactor, scaleFactor);
 
			var scaledBmd = new BitmapData(bmd.width*scaleFactor, bmd.height*scaleFactor);
			scaledBmd.draw(bmd, mtx);
			bm = new Bitmap(scaledBmd);
		}
 
		bm.x = Math.random()*stage.stageWidth/2;
		bm.y = Math.random()*stage.stageHeight/2;
		addChild(bm);
		bitmapVector.push(bm);
	}
}
 
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
 
function enterFrameHandler(event:Event):void {
	var len:int = bitmapVector.length;
	for(var i:int = 0; i < len; i++) {
		var bm:Bitmap = bitmapVector[i];
		bm.rotation ++;
	}
}
 
// just fun
function brbrBitmapData(bitmapData:BitmapData):void {
	var len:int = (bitmapData.width * bitmapData.height) / 10;
	for(var i:int = 0; i < len; i++) {
		bitmapData.setPixel32(Math.random()*bitmapData.width, Math.random()*bitmapData.height, Math.random()*0xFFFFFFFF);
	}
}
 
var fpsTextField:FPSBox = new FPSBox();
fpsTextField.textColor = 0xFFEA2B;
addChild(fpsTextField);
> Если кеширует, то не понятно, зачем нужен cacheAsBitmap

Это и есть Bitmap. cashAsBitmap - Bitmap. Тафтология.

Добавлено через 4 минуты
Цитата:
Сообщение от i.o. Посмотреть сообщение
Человек уже получил вопрос, как ему уменьшить разрешение. Зачем докапываться "а для каких вам целей", да "плеер не дурак".. лишь бы пооффтопить - для этого флейм есть.
Это не флейм, а выяснение истины. Всем будет полезно узнать, например, что scale медленнее, чем трансформация bitmapDat'ы с помощью матрицы, или наоборот. Если вам не интересно — проходите мимо.

UPD: уменьшил размер битмапдат и нагенерировал заявленные 200 штук. Разницы все равно не увидел.
UPD2: в качестве счетчика фпс был использован класс FPSBox отсюда: http://blog.efnx.com/wp-content/uplo...113.src.tar.gz
__________________
#flasher@irc.trg.ru:6667


Последний раз редактировалось Obi; 07.10.2010 в 13:32.