Форум 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)
-   -   работа с фильтрами во флеше (http://www.flasher.ru/forum/showthread.php?t=101701)

NikolyA 26.09.2007 17:44

работа с фильтрами во флеше
 
Вложений: 1
Народ! привет! выручайте, решил поиграться с фильтрами и получилось, но вот беда, как быть мне со следующей проблемой, при нажатии на кнопки с фильтрами 1,2,3,4, фильтры применяються на мувик, а надо чтоб фильтры наслаивались друг на друга!!! помогите мне плиз, исходник для 8-ки прилагаетсья!!! или кто может объяснить как сделать наслоение, а лучше помогите на данном примере, очень Вас прошу, очень надо!!!!

telit 26.09.2007 17:53

Сделай общий массив для фильтров и делай push() при нажатии на кнопку!

NikolyA 26.09.2007 18:13

to telit: не очень понимаю о чем идет речь, покажи плиз на данном примере! огромное спасибо

telit 26.09.2007 19:07

Код:

import flash.filters.BitmapFilter;
import flash.filters.ColorMatrixFilter;
import flash.filters.ConvolutionFilter;
import flash.display.BitmapData;

var FilterArray:Array = new Array();

function sepia() {
        var listener:Object = new Object();
        listener.pane.container.blink = pane.container.blink;
        var xPercent:Number = 1-(_xmouse/Stage.width);
        var yPercent:Number = 1-(_ymouse/Stage.height);
        var matrix:Array = new Array();
        matrix = matrix.concat([0.35, 0.35, 0.35, 0, 0]);
        matrix = matrix.concat([0.3, 0.3, 0.3, 0, 0]);
        matrix = matrix.concat([0.21, 0.21, 0.21, 0, 0]);
        matrix = matrix.concat([0, 0, 0, 1, 0]);
        var filter11:BitmapFilter = new ColorMatrixFilter(matrix);
        FilterArray.push(filter11);
        girl.filters = FilterArray;
        Mouse.addListener(listener);
        listener.onMouseDown();
}

_root.filter1.onPress = function() {
        sepia();
};

function black_and_white() {
        var listener:Object = new Object();
        listener.pane.container.blink = pane.container.blink;
        var xPercent:Number = 1-(_xmouse/Stage.width);
        var yPercent:Number = 1-(_ymouse/Stage.height);
        var matrix:Array = new Array();
        matrix = matrix.concat([0.35, 0.35, 0.35, 0, 0]);
        matrix = matrix.concat([0.35, 0.35, 0.35, 0, 0]);
        matrix = matrix.concat([0.35, 0.35, 0.35, 0, 0]);
        matrix = matrix.concat([0, 0, 0, 1, 0]);
        var filter22:BitmapFilter = new ColorMatrixFilter(matrix);
        FilterArray.push(filter22);
        girl.filters = FilterArray;
        Mouse.addListener(listener);
        listener.onMouseDown();
}

_root.filter2.onPress = function() {
        black_and_white();
};

var presets2:Array = [{mtx:[0, -1, 0, -1, 5, -1, 0, -1, 0], div:1, bias:0}];
function sharpen() {
        var div:Number = parseInt(divisorFld2.text);
        var bias:Number = parseInt(biasFld2.text);
        var mtx:Array = [];
        for (i=0; i<9; i++) {
                mtx[i] = parseInt(this["m"+i+"Fld2"].text);
        }
        var filter33:BitmapFilter = new ConvolutionFilter(3, 3, mtx, div, bias);
                FilterArray.push(filter33);
        girl.filters = FilterArray;
}

_root.filter3.onPress = function() {
        sharpen();
};

var presets0:Array = [{mtx:[0, -2, 0, -2, 20, -2, 0, -2, 0], div:10, bias:-40}];
function enhance() {
        var div:Number = parseInt(divisorFld0.text);
        var bias:Number = parseInt(biasFld0.text);
        var mtx:Array = [];
        for (i=0; i<9; i++) {
                mtx[i] = parseInt(this["m"+i+"Fld0"].text);
        }
        var filter44:BitmapFilter = new ConvolutionFilter(3, 3, mtx, div, bias);
                FilterArray.push(filter44);
        girl.filters = FilterArray;
}
_root.filter4.onPress = function() {
        enhance();
};


NikolyA 26.09.2007 19:15

Разобрался, спасибо!!! топик можно закрыть, спасибо telit, я разобрался!!!


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

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