Трабла с программными отражениями (mask by matrix)
Добрый день,
ковыряю исходник на AS2 листалки фоток а-ля iTunes. Мои текущие потребности подразумевают неоднородный фон. Но как выяснилось, отражения фотографий не имеют реальной прозрачности - из под них торчит тот самый matrix. Итак, куски кода:
Код AS1/AS2:
var reflectionBackgroundColour:Number = 0x000000;
var reflectionColors:Array = [0x00FF00, 0x0000FF];
var reflectionAlphas:Array = [100, 0];
var reflectionRatios:Array = [200, 255];
Код AS1/AS2:
mc.onLoadInit = function(target:MovieClip) {
target._parent._width = frontCDWidth;
target._parent._height = frontCDHeight;
root["_bmd" + this.number] = new BitmapData(target._width, target._height);
root["_ref" + this.number] = new BitmapData(target._width, target._height);
root["_bmd" + this.number].draw(target);
var mc:MovieClip = target._parent.createEmptyMovieClip("gradient_mc", target._parent.getNextHighestDepth());
matrix = new Matrix();
matrix.createGradientBox(target._width,target._height,reflectionRotation / 180 * Math.PI,0,0);
mc.beginGradientFill(reflectionFillType,reflectionColors,reflectionAlphas,reflectionRatios,matrix,reflectionSpreadMethod,reflectionInterpolationMethod,reflectionFocalPointRatio);
mc.moveTo(0,0);
mc.lineTo(0,target._height);
mc.lineTo(target._width,target._height);
mc.lineTo(target._width,0);
mc.lineTo(0,0);
mc.endFill();
target._alpha = 30;
target._parent.beginFill(reflectionBackgroundColour, 100);
target._parent.moveTo(0,0);
target._parent.lineTo(0,target._height);
target._parent.lineTo(target._width,target._height);
target._parent.lineTo(target._width,0);
target._parent.lineTo(0,0);
target._parent.endFill();
root["_ref" + this.number].draw(target._parent);
infostruc[this.number].loaded = true;
target._parent.removeMovieClip();
updateInfo();
loadNext();
};
Результат такой вот [ пикча] Т.е. получается, что "gradient_mc" и прочее, призваное маскировать, собственно маскирует, но его почему-то видно 8(
Помогите советом пожалуйста - как извести это...
|