Показать сообщение отдельно
Старый 06.08.2008, 20:02
tikhop вне форума Посмотреть профиль Отправить личное сообщение для tikhop Найти все сообщения от tikhop
  № 1  
Ответить с цитированием
tikhop

Регистрация: Jul 2006
Сообщений: 170
Cool Заливка паттерном.

Хотелось бы залить весь экран кусочком битмапа, делаю следующее
Код:
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;

Stage.align="tl";


//Создаем бэкгроунд
var backGroundWidth:Number=Math.ceil(2840/bg._width)*bg._width;
var backGroundHeight:Number=Math.ceil(2830/bg._height)*bg._height;
var backGround:BitmapData=new BitmapData(backGroundWidth, backGroundHeight, false, 0xFFFFFF);

//Копируем мувиклип в BitmapData
var bdWidth:Number=bg._width;
var bdHeight:Number=bg._height;
var tempBitmapData:BitmapData=new BitmapData(bdWidth, bdHeight, false, 0xFF00FF);
tempBitmapData.draw(bg);

//Вставляем копию мувиклипа в бэкграунд
function generateBackGround():Void
{
	var amountCopy:Number=Math.ceil(2840/bg._width)*Math.ceil(2830/bg._height); //количество копий
	
	var startX:Number=0;
	var startY:Number=0;
	
	for(var i:Number=0; i<amountCopy; i++)
	{
		backGround.copyPixels(tempBitmapData, new Rectangle(0, 0, 87, 81), new Point(startX, startY));
		startX+=bdWidth;
		if(startX>2840)
		{
			startY+=bdHeight;
			startX=0;
		}
	}
	
	tempBitmapData.dispose();
	this.attachBitmap(backGround, 0);
}
generateBackGround();
Все работает, вроде не жалуюсь.... НО хочется знать, можжет есть способ лучше, правильнее или более шустрый (на пару мс)