Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   BitmapData.merge() Наложение прозрачной картинки (http://www.flasher.ru/forum/showthread.php?t=93411)

wvxvw 20.03.2007 19:15

BitmapData.merge() Наложение прозрачной картинки
 
Код:

function __draw(xx:Number, yy:Number):Void {
                __layer2.clear();
                drawCircle(__layer2, xx, yy, 20);
                t_bmpd.dispose();
                t_bmpd = new BitmapData(40+xx, 40+yy, true, 0x00ffffff);
                t_bmpd.draw(__layer2);
                __bmpd.merge(t_bmpd, new Rectangle(xx-20, yy-20, 40, 40), new Point(xx-20, yy-20), 256, 256, 256, 256);
                __layer1.clear();
                __layer1.beginBitmapFill(__bmpd, new Matrix(), true);
                __layer1.moveTo(0, 0);
                __layer1.lineTo(500, 0);
                __layer1.lineTo(500, 300);
                __layer1.lineTo(0, 300);
                __layer1.lineTo(0, 0);
                __layer1.endFill();
        }

__draw - функция, вызывается при движении "кисточки" и получает координаты курсора.
__layer2 - клип, где созается временная картинка "кисточка"
drawCircle - функция, рисующая круг
t_bmpd - битмапДата, куда записывается, что было нарисовано в __layer2
__bmpd - битмапДата, куда записывается суммированный результат.
__layer1 - клип, закрашиваемый с использованием __bmpd.

Проблема - при наложении прозрачной области из первой битмапдаты на вторую получается опять прозрачная. А надо, чтобы оставалось, то, что было.
Помогите, пожалста разобраться... я чего-то никак не соображу :rolleyes:
Заранее спасибо.

etc 20.03.2007 19:18

Цитата:

Сообщение от wvxvw
Проблема - при наложении прозрачной области из первой битмапдаты на вторую получается опять прозрачная. А надо, чтобы оставалось, то, что было.

Мне кажется, что здесь противоречие, нет?

wvxvw 20.03.2007 19:24

Ок, да, не совсем понятно выразился:
* При наложении прозрачной области из перой битмапДаты на непрозрачную область из второй битмапдаты получаю прозрачную, а хочу получить ту, которая была до merge().

etc 20.03.2007 19:40

Что-то мне кажется, что для alpha тебе надо 0 написать.

wvxvw 20.03.2007 19:48

Если пишу 0, то вообще никакого наложения не происходит =/ (т.е. он все пикселы добавляет, как будто они прозрачные)

etc 20.03.2007 20:19

Тогда тебе, возможно, нужен copyPixels.

wvxvw 20.03.2007 20:29

Спасибо, да, это то, что нужно.


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

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