PDA

Просмотр полной версии : работа с фильтрами во флеше


NikolyA
26.09.2007, 17:44
Народ! привет! выручайте, решил поиграться с фильтрами и получилось, но вот беда, как быть мне со следующей проблемой, при нажатии на кнопки с фильтрами 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, я разобрался!!!