Тема: blur edge
Показать сообщение отдельно
Старый 19.12.2012, 13:36
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Да, что-то так себе получается. Этого я не предусмотрел

Код AS3:
import flash.display.StageScaleMode;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.PixelSnapping;
import flash.filters.BlurFilter;
import flash.display.Graphics;
import flash.display.GradientType;
import flash.geom.Matrix;
 
stage.showDefaultContextMenu = false;
stage.scaleMode = StageScaleMode.NO_SCALE;
 
var image:MovieClip = this.getChildByName("image") as MovieClip;
image.visible = false;
 
var bd:BitmapData = new BitmapData(image.width,image.height,true,0x00000000);
bd.draw(image);
 
var container:Sprite = new Sprite();
container.x = image.x;
container.y = image.y;
this.addChild(container);
 
var bitmap_1:Bitmap = new Bitmap(bd,PixelSnapping.AUTO,true);
var bitmap_2:Bitmap = new Bitmap(bd,PixelSnapping.AUTO,true);
var maskClip:Sprite = new Sprite();
 
container.addChild(bitmap_1);
 
var bluredContainer:Sprite = new Sprite();
bluredContainer.addChild(bitmap_2);
container.addChild(bluredContainer);
container.addChild(maskClip);
 
bluredContainer.cacheAsBitmap = true;
maskClip.cacheAsBitmap = true;
bluredContainer.mask = maskClip;
 
bitmap_2.filters = [new BlurFilter(10,10,3)];
 
var gr:Graphics = maskClip.graphics;
var maskWidth:Number = image.width;
var maskHeight:Number = image.height;
 
var matrix:Matrix = new Matrix();
matrix.createGradientBox(maskWidth, maskHeight, 0);
 
gr.lineStyle(1)
gr.beginGradientFill(GradientType.RADIAL, [0xFFFFFF, 0xFFFFFF], [0,1],[0, 255],matrix);
gr.moveTo(0,0);
gr.lineTo(maskWidth, 0);
gr.lineTo(maskWidth, maskHeight);
gr.lineTo(0, maskHeight);
gr.lineTo(0, 0);
gr.endFill();
blur_edge_example.swf   (394.2 Кб)
Вложения
Тип файла: swf blur_edge_example.swf (394.2 Кб, 426 просмотров)
__________________
hauts.ru