Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Требуется, чтобы маска работала не в режиме add, а в режиме subtract. Возможно ли? (http://www.flasher.ru/forum/showthread.php?t=147423)

Parez 04.12.2010 00:19

Требуется, чтобы маска работала не в режиме add, а в режиме subtract. Возможно ли?
 
Здравствуйте.
Возникла проблема: требуется чтобы маска работала не в режиме add, а в режиме subtract. Возможно ли сделать такое?

Psycho Tiger 04.12.2010 00:46

BlendMode.ERASE

Parez 04.12.2010 12:03

Спасибо.

GenaFly 28.08.2011 19:09

Тот же вопрос, но реализовать не получается. Может что-то неправильно делаю.
Код AS3:

public function Main() {
                        var maska:Maska = new Maska();
                        maska.blendMode = BlendMode.ERASE;
                        addChild(maska);
 
                        var sprite:Sprite = new Sprite();
                          sprite.mask = maska;
                        addChild(sprite);
 
}

После выполнения кода маска работает по прежнему в режиме add. Никак не удается добиться режима subtract. Может кто подскажет в чем проблема?

dimarik 28.08.2011 23:28

Цитата:

Для этого процесса требуется, чтобы свойству blendMode родительского экранного объекта было задано значение flash.display.BlendMode.LAYER.
Пруф

GenaFly 28.08.2011 23:40

Ну хорошо. Разобрались с этим. Но даже с BlendMode.ERASE не получается сделать полноценную маску (точнее инверсированную маску). Проблема следующая:

Код AS3:

                public function Main() {
                        // родитель - BlendMode.LAYER;
                        blendMode = BlendMode.LAYER;
 
                        // MoveiClip размером 500х500
                        var ground:Ground = new Ground();         
                        addChild(ground);
 
                    // Маска размером 200х200, расположенная в точке 0,0.       
                          var maska:Maska = new Maska();
                        maska.blendMode = BlendMode.ERASE;
                        maska.width = maska.height = 200;
                        maska.x = maska.y = 0;
                        addChild(maska);
 
                  // ВНИМАНИЕ! Если бы маска "maska" была полноценной инверсированной маской, то следующий трэйс выдал бы false.
                        // Но в данном случае - получается true. То есть часть мувиклипа не вырезается, а просто делается прозрачной.
                        trace(ground.hitTestPoint(10,10,true));
                }

Вопрос, выткающий из последнего комментария в коде - возможно ли добиться настоящей инверсированной маски? Или это пока невозможно на данном этапе развития as3 ?

Добавлено через 14 часов 0 минут
Прочитав массу статей, пришел к выводу, что пока это невозможно сделать. Хотя странно, вроде такая элементарная задача.

Может кто подскажет - можно ли на as3 реализовать полноценный ластик, а не его имитацию? То есть чтобы векторная графика действительно стиралась в мувике. Подозреваю, что и это сделать тоже невозможно.


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

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