Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему так странно накладывается маска? (http://www.flasher.ru/forum/showthread.php?t=175613)

Путлер 21.02.2012 05:58

Почему так странно накладывается маска?
 
Вот тут прога.
Создается некая фигура с дырочкой - ее можно увидеть если снять галку.
Потом эта фигура применяется как маска ко всей картинке.
Но в маске дырка - значит под ней ничего не должно быть видно (так же как в тех местах, где маски нет совсем).
Но, как видите, все не так. Не понимаю, в чем тут дело.

FlashRus 21.02.2012 06:11

код в судию.

Wolsh 21.02.2012 08:24

mask.cacheAsBitmap = true;

Silicium 21.02.2012 10:00

maskType какой?

expl 21.02.2012 12:19

Там фигурку надо разрезать, чтобы односвязной была - забавная багофитча плеера.
А вообще, можно использовать вместо маски BlandMode.ALPHA - оно работает предсказуемее

Путлер 21.02.2012 14:28

у меня будет в этой проге сложная-пресложная маска с множеством отверстий - я сделал пока только тест и удивился.
Мой код (который виден на работающей софтинке) вот такой

Код AS3:

                                var Mask1:Shape = new Shape();
                                Mask1.graphics.lineStyle();
                                Mask1.graphics.beginFill(0xFF0000,1);
                                Mask1.graphics.drawRect(250,100,400,400);
                                Mask1.graphics.drawCircle(500,350,100);
                                Mask1.graphics.endFill();
                                GRAF.addChild(Mask1);
                                if (Checkbox2.selected){
                                        GRAF.mask=Mask1;
                                }

Добавлено через 25 минут
cacheAsBitmap не помогло, тип маски (как я понимаю) - clip (то есть не альфа, а полная заливка)

expl 21.02.2012 15:52

cachAsBitmap должно бы было помочь. Но там есть куча хитрых условий.

Ваш вариант не работает по этой причине
http://konansthoughts.blogspot.com/2011/07/20.html

Я бы BlandMode использовал и не парился.

Путлер 21.02.2012 16:09

понял, спс - маска с дыркой это ФИЧА

проблема в том, что в итоговом варианте моей проги дырок будут тысячи и они весьма прихотливой формы
в моем случае - разрезание ставит под сомнения саму возможность удачного завершения этой проги - координаты разрезания будут рассчитываться вечно

поэтому пока думаю, экспериментирую, ищу решение

Wolsh 21.02.2012 16:50

Чего тут искать? Флэш не вчера родился, и Вы не первый кому понадобилась маска.
Либо кеширование (и маски и таргета) в битмап, либо BlendMode.
Для второго надо маску и таргет поместить в общий контейнер, установить ему BlendMode.LAYER, а маске – BlendMode.ALPHA (или наоборот ERASE). Снижение производительности будет как при кешировании так и с блендами. Бленды более заморочные, имхо.


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

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