nOobCrafter
09.03.2009, 15:34
День добрый, когда то, где то тут нашел эффект для флеша, аля виста аэроглас. Смысл в том что отрисовывем рут, в битмапу, налаживаем на нее блюр и аттачим в тот же рут на самый верх. НО это было на примере с картинкой, а с "чистым" рутом есть нюансы. Там где просто фоновый цвет (у меня допустим серый) оно почему то отрисовывает черным. Что мот где надо исправить?
Вот код:
import flash.filters.BlurFilter;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
////
var blur:BlurFilter = new BlurFilter(10, 10, 3); // назначаем фильтр
////
blur_button.onPress = function() // на сцене есть волшебная кнупочка которая этот самый эффект включает.
{
var bmp:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0);
this._visible = false;
var rect:Rectangle = new Rectangle(0,0,Stage.width, Stage.height);
var point:Point = new Point(0,0);
bmp.draw(_root); // если отрисовывать картинку то все ок, а просто цвет нехочет(((
_root.attachBitmap(bmp, _root.getNextHighestDepth(), "auto", true);
bmp.applyFilter(bmp,rect,point,blur);
this.swapDepths(_root.getNextHighestDepth());
this._visible = true;
var mes:MovieClip = _root.attachMovie("message","msg_mc",_root.getNextHighestDepth(),{_x:125, _y:140});
mes.close_btn.onPress = function(){
bmp.dispose();
_root.blur_button.enabled = true;
this._parent.removeMovieClip();
}
this.enabled = false;
}
Если же положить просто шейп нужного цвета, то оно его отрисует.
Исходник вроде бы тов. Wolsh'a, елси убрать рисунок и просто отрисовать рут то получим черный фон, если кинуть просто шейп нужного цвета то все ок, но хочется все же в коде все делать.. Или нет вариантов?*(можно еще нарисовать программно мувик нужного цвета и растянуть, но интересует именно момент про пустой рут, можно или нет?)
Вот пример:
Вот код:
import flash.filters.BlurFilter;
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
////
var blur:BlurFilter = new BlurFilter(10, 10, 3); // назначаем фильтр
////
blur_button.onPress = function() // на сцене есть волшебная кнупочка которая этот самый эффект включает.
{
var bmp:BitmapData = new BitmapData(Stage.width, Stage.height, false, 0);
this._visible = false;
var rect:Rectangle = new Rectangle(0,0,Stage.width, Stage.height);
var point:Point = new Point(0,0);
bmp.draw(_root); // если отрисовывать картинку то все ок, а просто цвет нехочет(((
_root.attachBitmap(bmp, _root.getNextHighestDepth(), "auto", true);
bmp.applyFilter(bmp,rect,point,blur);
this.swapDepths(_root.getNextHighestDepth());
this._visible = true;
var mes:MovieClip = _root.attachMovie("message","msg_mc",_root.getNextHighestDepth(),{_x:125, _y:140});
mes.close_btn.onPress = function(){
bmp.dispose();
_root.blur_button.enabled = true;
this._parent.removeMovieClip();
}
this.enabled = false;
}
Если же положить просто шейп нужного цвета, то оно его отрисует.
Исходник вроде бы тов. Wolsh'a, елси убрать рисунок и просто отрисовать рут то получим черный фон, если кинуть просто шейп нужного цвета то все ок, но хочется все же в коде все делать.. Или нет вариантов?*(можно еще нарисовать программно мувик нужного цвета и растянуть, но интересует именно момент про пустой рут, можно или нет?)
Вот пример: