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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 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();
Все работает, вроде не жалуюсь.... НО хочется знать, можжет есть способ лучше, правильнее или более шустрый (на пару мс)

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
С помощью битмапфилла))
Код:
import flash.display.BitmapData;
//
Stage.scaleMode = "noScale";
Stage.align = "TL";
Stage.addListener(this);
this.onResize = function () {
    // здесь аттачится картинка из библиотеки - можно по-другому
    var myBitmapData:BitmapData = BitmapData.loadBitmap("libBitmap");
    this.createEmptyMovieClip("bmp_fill_mc", 1);
    with (bmp_fill_mc) {
        beginBitmapFill(myBitmapData, true, true);
        moveTo(0, 0);
        lineTo(0, Stage.height);
        lineTo(Stage.width, Stage.height);
        lineTo(Stage.width, 0);
        lineTo(0, 0);
        endFill();
    }
};
this.onResize();
;
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 06.08.2008 в 20:51.
Создать новую тему Ответ Часовой пояс GMT +4, время: 07:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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