Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Трабла с программными отражениями (mask by matrix) (http://www.flasher.ru/forum/showthread.php?t=146120)

Time 29.10.2010 12:33

Трабла с программными отражениями (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(
Помогите советом пожалуйста - как извести это...

Psycho Tiger 29.10.2010 13:31

Код AS3:

new BitmapData(target._width, target._height);

Попробуйте установить флаг transperent в true.

P.S. Не могу не восхититься Вашей датой регистрации. )

Time 29.10.2010 13:38

Ммм... да... 10 лет - надо отметить успеть (а то через пару дней 11 будет =). И последние лет 8 "поиск рулит", кроме вот этого случая...
Спасибо, пошел пробовать...


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

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