Приветствую!
Столкнулся с необычной проблемой: растрированное изображение (имеющее области прозрачности), применяемое в качестве маски ведёт себя тупо как прямоугольник, залитый сплошным цветом (прозрачности не учитываются)...

Код AS3:
/*Некий класс, описывающий уровень...
skip
где-то после добавления на экран в одном из методов отрисовываю карту слоя (пример утрирован - не суть)*/
var floorTilesMaskSprite:Sprite = new Sprite(); //Временный спрайт куда при отрисовке карты пихаю составные части карты
for (var i:int = 0; i < 20; i++){
for (var j:int = 0; j < 20; j++){
var tile:Tile = new Tile(); /*Не вдаваясь в дебри будем считать что Tile отвечает и за графику и за
свойства (на деле мухи отдельно, но для примера не существенно)*/
var position:Point = new Point(j*X_SIZE, i*Y_SIZE);
tile.getPosition(position);
_leyer01.addTileToFloor(tile); /*_layer01 - экземпляр класса работающего с логикой (можно
перемещаться дальше или нет, провалимся на слой ниже или нет etc)... ну да, графику я тоже к нему
прикрутил :rolleyes: */
if (Math.random() > .3) {
var tilesMask:TilesMask = new TilesMask();
tilesMask.getPosition(position);
floorTilesMaskSprite.addChild(tilesMask); //На деле добавляется графика с контуром плитки
}
}
}
_leyer01.addShadowMask(restrize (floorTilesMaskSprite, floorTilesMaskSprite.width + X_SIZE, floorTilesMaskSprite.height + Y_SIZE));
//в этом же классе живёт метод для растризации (ну да, да... сам знаю...)
private function rastrize(vector:DisplayObject, width:Number, height:Number):Bitmap {
var bmpData:BitmapData = new BitmapData(width, height, true, 0x000033);
bmpData.draw(vector);
var bmp:Bitmap = new Bitmap(bmpData);
return bmp;
}

Код AS3:
/*Класс, экземпляром которого является _layer01 из вышеуказанного класса
skip
тут определены спрайты под плитки, спрайт под маску; определены публичные методы по добавлению в
каждый из спрайтов объектов... В методе, где добавляется объект в спрайт с маской параллельно вызывается
метод "переприменяющий" маскирование applyMask() - нужно, т.к. со временем маска может измениться
(некий объект упадёт на более нижний слой и тем самым станет частью пола текущего слоя)*/
private function applyMask():void {
_shadows.cacheAsBitmap = true;
_shadowsMask.cacheAsBitmap = true;
_shadows.mask = _shadowsMask;
}
Если не растрировать - маска работает корректно,.. но и растрируется всё корректно (проверял посредством вывода маскирующего спрайта как обычного - адекватно растрированная картинка там где и должна быть)...
P.S. sorry за быдлокод
UPD: картинка для наглядности =))