Ну хорошо. Разобрались с этим. Но даже с 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 реализовать полноценный ластик, а не его имитацию? То есть чтобы векторная графика действительно стиралась в мувике. Подозреваю, что и это сделать тоже невозможно.
|