Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перерисовка BitmapData из кеша (http://www.flasher.ru/forum/showthread.php?t=147886)

in4core 16.12.2010 16:01

Перерисовка BitmapData из кеша
 
Код AS3:

var bitmap:Bitmap = new Bitmap(_data); // где _data  экземпляр класса расширенного BitmapData  600/410
var tempData:BitmapData = new BitmapData(_data.width,_data.height);
var rect:Rectangle = new Rectangle(0,0,20,20);
tempData.draw(bitmap,null,null,null,rect);
trace(tempData.height) // 410

Почему так ведь квадрат задан на 20 ? Или мы можем делать зарисовку только после добавления объекта на сцену ?

gr_crd 16.12.2010 16:10

410 потомучто
Цитата:

где _data экземпляр класса расширенного BitmapData 600/410

in4core 16.12.2010 16:13

ну так смотрите строчку
Код AS3:

tempData.draw(bitmap,null,null,null,rect);

я же задаю rect для draw ! или не? пока что непонятно че не так

bav 16.12.2010 16:17

BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Создает объект BitmapData заданной ширины и высоты.
В хелпе не сказано, что метод draw() изменяет свойство height объекта BitmapData.

in4core 16.12.2010 16:21

да елы палы- после метода draw - битмап дата не меняется чтоли по вашему ?

gr_crd 16.12.2010 16:24

Цитата:

да елы палы- после метода draw - битмап дата не меняется чтоли по вашему ?
меняется, но не ее размеры. при создании было ясно сказано - 410 в высоту.

а при прорисовке - rect указал на то, что прорисовать нужно область 0,0,20,20, а остальное остается без изменений.
т.е. нарисовать в область, которую задал rect. высота и не должна меняться.

ps. и вообще, свойства height и width - только для чтения.

iNils 16.12.2010 16:25

Не меняется. Нужно создать новый экземпляр с нужным размером, перерисовать туда старый, сделать ему dispose и tempData присвоить новый экземпляр.

in4core 16.12.2010 16:30

Тоесть методика выходит такая.
1. Есть битмап дата. (1000/1000) мы ее пихаем в битмап
2. Создать битмап дату из полученного битмап (1)
3. перерисовать в новый экзепляр с dispose
4. (2) присвоить (3)

ес?

Добавлено через 40 секунд
Смысл такой, что мне нужно вырезать квадратец из картинки там где я захочу. вот

Psycho Tiger 16.12.2010 16:44

Рассматривайте БитмапДату как квадрат вашего монитора. Если монитор разрешения 1024х768, то открыв картинку 3000х3000 в размере 100% нельзя увидеть её полностью - она не влезет.

in4core 16.12.2010 16:57

Да я смысл то понимаю тигр. Пока не могу понять, одного

Код AS3:

var temp:BitmapDatanew BitmapData(20,20);
temp = tempData.draw(bitmap,null,null,null,rect) as BitmapData;

чего он на null тут ругается


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

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