Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   blur edge (http://www.flasher.ru/forum/showthread.php?t=189890)

lubko 18.12.2012 06:20

blur edge
 
можно ли размыть спрайт так, чтобы он был размыт по краям и был четким ближе к центру?
вообщем похоже на то когда смотришь в увеличительное стекло.

Hauts 18.12.2012 08:32

Да, можно.

lubko 19.12.2012 02:19

Цитата:

Сообщение от Hauts (Сообщение 1110517)
Да, можно.

Спасибо) хотел бы попросить направить меня в правильном русле. думал можно будет использовать этот класс
Думал сделать несколько new WindowBlur на одном бэкграунде с разным радиусом, но выходит что-то не то.

gagaga 19.12.2012 12:06

вы хотите иммитировать ГРИП ? покажите код, нарисуйте задачу

Hauts 19.12.2012 12:08

Я бы просто с масками пошаманил, чтобы сделать такой эффект. Чуть позже постараюсь пример скинуть :)

Hauts 19.12.2012 13:36

Вложений: 1
Да, что-то так себе получается. Этого я не предусмотрел :(

Код 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 Кб)

Wolsh 20.12.2012 14:19

Вложений: 1
У меня как-то... очень не шустро...
Blur.swf   (256.0 Кб)


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

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