Показать сообщение отдельно
Старый 06.09.2010, 15:28
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 2  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
sqrt я делаю сразу же при загрузке и потом с этим изображением работаю далее.
Как то так:
Код AS3:
		private function makeValidBitmapData($bitmapData:BitmapData):BitmapData						// тут ужимаем нашу битмапу до нужных размеров для передачи и отдаем новую
		{
			if ($bitmapData.width <= ApplicationData.BIG_PIC_SIZE && $bitmapData.height <= ApplicationData.BIG_PIC_SIZE)
				return $bitmapData.clone();															// если фото итак подходит, то возвращем его же
			var myMatrix	:Matrix = new Matrix();													// матрица преобразований, будим крутить и перемещать фотку
			var coefW		:Number = ApplicationData.BIG_PIC_SIZE / $bitmapData.width;			
			var coefH		:Number = ApplicationData.BIG_PIC_SIZE / $bitmapData.height;
			var multiplier	:Number;
			if (coefW > coefH)	{ multiplier = coefH; }  											// если фотка горизонтальная
			else 				{ multiplier = coefW; }												// если вертикальная или квдарат)
 
			myMatrix.createBox(multiplier, multiplier, 0, 0, 0);//scaleX,scaleY,rotation,x,y вот интересная фишка!!
 
			var newBitmapData:BitmapData = new BitmapData(multiplier * $bitmapData.width, multiplier * $bitmapData.height, true, 0xFFFFFF);// делаем новую битмапу, сюда срисуем все
				newBitmapData.draw($bitmapData, myMatrix , null, null, null, true);					// срисовываем
 
 
			return newBitmapData;
		}