Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Нарисовать дырку в Graphics (http://www.flasher.ru/forum/showthread.php?t=153759)

k0syak 08.04.2011 13:57

Нарисовать дырку в Graphics
 
Доброе время суток. Есть Shape, в котором нарисован прямоугольник. Необходимо сделать чтобы при клике мышкой по этому прямоугольнику стиралась какая-то область. (Вобщем стёрка). Как это сделать?

Jewelz 08.04.2011 13:59

рисовать с нулевой альфой

k0syak 08.04.2011 14:01

Не получается....

Код AS3:

rect.graphics.beginFill(0xffffff, 0);
                        rect.graphics.drawCircle(50, 50, 10);
                        rect.graphics.endFill();


Jewelz 08.04.2011 14:12

верно, чушь сказал, там же складываются прозрачности

Добавлено через 14 минут
тогда видимо только перерисовывать в битмапу

silin 08.04.2011 14:28

если рисовать по нарисованному без endFill, то получается дырка:
Код AS3:

graphics.beginFill(0xFF0000);
graphics.drawRect(0, 0, 200, 200);
graphics.drawCircle(100, 100, 50);


in4core 08.04.2011 14:34

BlendMode.ERASE

k0syak 08.04.2011 14:44

silin, да работает, только если потом тыкнуть на тоже место, то получается не прозрачность а выставленный в beginFill цвет.

in4core, BlendMode.ERASE - это для растра, на сколько я знаю.

silin 08.04.2011 14:50

>>только если потом тыкнуть на тоже место, то получается не прозрачность а выставленный в beginFill цвет
это в каком таком смысле тыкнуть ? :)

ага, если в смысле рисовать по клику, то рисовать придется все по-новой: и квадрат и дырку..

k0syak 08.04.2011 14:51

Ндаа... очень жаль.

silin 08.04.2011 14:55

попробовал: graphics.drawCircle(100, 100, 90); рисует дырку и по клику..
Код AS3:

public function Main():void 
{
        graphics.beginFill(0xFF0000);
        graphics.drawRect(0, 0, 200, 200);
        stage.addEventListener(MouseEvent.CLICK, onClick);
}
 
private function onClick(event:MouseEvent):void
{
        graphics.drawCircle(100, 100, 90);
}



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

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