![]() |
Перерисовка BitmapData из кеша
Код AS3:
|
410 потомучто
Цитата:
|
ну так смотрите строчку
Код AS3:
|
BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Создает объект BitmapData заданной ширины и высоты. В хелпе не сказано, что метод draw() изменяет свойство height объекта BitmapData. |
да елы палы- после метода draw - битмап дата не меняется чтоли по вашему ?
|
Цитата:
а при прорисовке - rect указал на то, что прорисовать нужно область 0,0,20,20, а остальное остается без изменений. т.е. нарисовать в область, которую задал rect. высота и не должна меняться. ps. и вообще, свойства height и width - только для чтения. |
Не меняется. Нужно создать новый экземпляр с нужным размером, перерисовать туда старый, сделать ему dispose и tempData присвоить новый экземпляр.
|
Тоесть методика выходит такая.
1. Есть битмап дата. (1000/1000) мы ее пихаем в битмап 2. Создать битмап дату из полученного битмап (1) 3. перерисовать в новый экзепляр с dispose 4. (2) присвоить (3) ес? Добавлено через 40 секунд Смысл такой, что мне нужно вырезать квадратец из картинки там где я захочу. вот |
Рассматривайте БитмапДату как квадрат вашего монитора. Если монитор разрешения 1024х768, то открыв картинку 3000х3000 в размере 100% нельзя увидеть её полностью - она не влезет.
|
Да я смысл то понимаю тигр. Пока не могу понять, одного
Код AS3:
|
Сигнатура у draw
Код:
public function draw (source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false) : void; |
Не нифига не разобрался.....блин
Код AS3:
тоесть соотв у нас temp получается не 20/20 а опять 400, но виден только наш квадрат на 20. и это понятно почему ибо дату переписали на старый размер. Как же правильно надо? покажите пожалуйста |
Вы знаете, как = работает?
Что вот после строчки temp = tempData; с temp происходит? |
Яж написал что знаю
Цитата:
|
я так и не понял, что за задача решается изначально
вырезать кусок из битмапы? или в том, чтобы новый битмап создался 20х20? если второе, то надо так его и создать var tempData:BitmapData = new BitmapData(20,20); Ну, а для того, чтобы в новый битмап записать то, что нужно, используем матрицу http://help.adobe.com/ru_RU/AS3LCR/F...om/Matrix.html сначала она меня напрягала, но постепенно я к ней привык :) |
Рисуйте в temp, который нужного размера. Ставьте temp куда надо. Я вообще боюсь что-то говорить тем, кто этого не понимает.
|
Задача : есть картинка. нужно из нее вырезать кусок. Любой координаты по желанию, затем добавить этот кусок в дисплей лист как битмап
Добавлено через 7 минут -De- ты написал ерунду. Твоя методика работать вообще не будет Код AS3:
|
Используй copyPixels, может с ним разберешься :)
-De- написал все правильно... |
1. создаете битмапдату 20х20
2. задаете смещение через матрицу (используйте matrix.createBox) 3. отрисовываете контент в битмапдату с указанием этой матрицы |
благодарю
Добавлено через 6 минут Код AS3:
|
Код AS3:
|
спасибки. теперь намного понятнее
|
Код AS3:
|
| Часовой пояс GMT +4, время: 00:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.