/**
* Copyright xarple ( http://wonderfl.net/user/xarple )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/19l4
*/
package
{
import flash.filters.GlowFilter;
import flash.display.AVM1Movie;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.filters.DisplacementMapFilter;
import flash.filters.DisplacementMapFilterMode;
import flash.filters.BlurFilter;
import flash.geom.ColorTransform;
[SWF(width = "465", height = "465", frameRate = "30")]
/**
* ...
* @author
*/
public class Main extends Sprite
{
public static const WIDTH:int = 100;
public static const HEIGHT:int = 100;
private var label:Label;
private var labelMat:Matrix;
private var canvas:BitmapData;
private var shadow:BitmapData;
private var perlin:BitmapData;
private var filter:DisplacementMapFilter;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
this.cacheAsBitmap = true;
var spr:Sprite = new Sprite();
perlin = new BitmapData(WIDTH, HEIGHT, true, 0);
// テキストの影
// shadow = new BitmapData(WIDTH, HEIGHT, true, 0);
//spr.addChild( new Bitmap(shadow) );
label = new Label("wonderfl");
labelMat = new Matrix(1, 0, 0, 1, WIDTH / 2 - label.width / 2, HEIGHT / 2 - label.height / 2);
canvas = new BitmapData(WIDTH, HEIGHT, true, 0);
spr.addChild( new Bitmap(canvas) );
spr.filters = [new GlowFilter(0, 0.5, 10, 10, 2, 3)];
addChild(spr);
filter = new DisplacementMapFilter(
perlin,
new Point(),
BitmapDataChannel.ALPHA,
BitmapDataChannel.RED,
0,
0,
DisplacementMapFilterMode.CLAMP,
0,
0
);
addEventListener( Event.ENTER_FRAME, EnterFrameHandler );
}
private function EnterFrameHandler( e:Event ) : void
{
perlin.perlinNoise(
20,
20,
1,
Math.random() * 100,
true,
false,
BitmapDataChannel.ALPHA | BitmapDataChannel.RED,
false,
[0]
);
canvas.fillRect(canvas.rect, 0 );
labelMat.tx = WIDTH / 2 - label.width / 2 + (Math.random() * 4 - 2);
labelMat.ty = HEIGHT / 2 - label.height / 2 + (Math.random() * 4 - 2);
canvas.draw( label, labelMat );
var scale:Number = 5;
if ( int(Math.random() * 30) == 0 ) scale = 40;
filter.scaleX = scale;
filter.scaleY = scale;
canvas.applyFilter(
canvas,
canvas.rect,
new Point(),
filter
);
}
}
}
import flash.text.TextField;
import flash.text.TextFormat;
import flash.display.Sprite;
class Label extends Sprite {
private var text:TextField;
public function Label( t:String ) {
var tf:TextFormat = new TextFormat();
tf.font = "_ゴシック";
tf.size = 80;
tf.bold = true;
text = new TextField();
text.defaultTextFormat = tf;
text.textColor = 0;
text.selectable = false;
text.text = t;
text.autoSize = "left";
addChild( text );
}
}