forked from: wonderfl.net
changes: random colors,
/**
* Copyright 20130808 ( http://wonderfl.net/user/20130808 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/49s7
*/
// forked from miyaoka's wonderfl.net
// changes: random colors,
package
{
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.filters.*;
import caurina.transitions.Tweener;
[SWF(width = "800", height = "600", backgroundColor = 0xFFFFFF, frameRate = "60")]
public class Kirari2 extends Sprite
{
private var startPt:Point;
private var lineLayer:Shape = new Shape();
public function Kirari2():void
{
//bg
graphics.beginFill(0);
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
//Wonderfl.capture_delay( 5 );
//event
stage.addEventListener(MouseEvent.MOUSE_DOWN, function ():void
{
addChild(lineLayer);
startPt = new Point(mouseX, mouseY);
stage.addEventListener(MouseEvent.MOUSE_MOVE, drawLineHandler);
});
stage.addEventListener(MouseEvent.MOUSE_UP, function ():void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, drawLineHandler);
removeChild(lineLayer)
lineLayer.graphics.clear();
var endPt:Point = new Point(mouseX, mouseY);
var kt:KirariText = new KirariText("wonderfl.net");
kt.x = startPt.x;
kt.y = startPt.y;
var pt:Point = endPt.subtract(startPt);
kt.scaleX = kt.scaleY = Point.distance(startPt, endPt) / kt.width;
kt.rotation = 90 - Math.atan2(pt.x, pt.y) * 180 / Math.PI;
kt.addEventListener(KirariText.COMPLETE, function():void
{
Tweener.addTween(kt, {
alpha: 0,
time:1.0,
delay:0.2,
onComplete: function ():void
{
removeChild(kt);
kt = null;
}
});
});
addChild(kt);
});
}
private function drawLineHandler(e:MouseEvent):void
{
var g:Graphics = lineLayer.graphics;
g.clear();
g.lineStyle(0, 0xffffff, 0.5);
g.moveTo(startPt.x, startPt.y);
g.lineTo(mouseX, mouseY);
}
}
}
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.filters.*;
import caurina.transitions.Tweener;
class KirariText
extends Sprite
{
public var t:Number = 0;
public var lastT:Number = 0;
private var tft:TextFormat = new TextFormat();
public static const COMPLETE:String = "complete";
public function KirariText(text:String):void
{
//text
tft.align = TextFormatAlign.CENTER;
tft.bold = true;
tft.font = "Arial Black";
tft.size = 96;
/*
ParseInt Tip http://www.actionscript.org/forums/showthread.php3?t=98150
RandomColors http://www.kirupa.com/developer/as3/random_colors_as3.htm
*/
var colorArray:Array = new Array("0x007FFF","0x00BFFF","0x1DACD6","0x1E90FF","0x4997D0","0x66FF00","0x71A6D2","0x72A0C1","0x7FFF00","0x8DB600","0x8FBC8F","0x99BADD","0x9BC4E2","0xA1CAF1","0xA4C639","0xAAF0D1","0xACE5EE","0xB2EC5D","0xBCD4E6","0xBFFF00","0xC154C1","0xC4C3D0","0xCCCCFF","0xCCFF00","0xCCFF00","0xD1E231","0xDC143C","0xDFFF00","0xE32636","0xE52B50","0xE62020","0xE6E200","0xE79FC4","0xE9D66B","0xEC3B83","0xED872D","0xEEDC82","0xEF3038","0xEFBBCC","0xEFDECD","0xF0E130","0xF0E68C","0xF0E68C","0xF0F8FF","0xF0FFFF","0xF2F3F4","0xF400A1","0xF4F0EC","0xF6ADC6","0xF7E98E","0xF8DE7E","0xFAEBD7","0xFAF0BE","0xFB607F","0xFBA0E3","0xFBCCE7","0xFBCEB1","0xFCC200","0xFCF75E","0xFDD5B1","0xFDEE00","0xFE6F5E","0xFEFE22","0xFEFE22","0xFF0038","0xFF003F","0xFF007F","0xFF00FF","0xFF033E","0xFF1493","0xFF1493","0xFF4F00","0xFF55A3","0xFF7E00","0xFF7F00","0xFF8C00","0xFF9966","0xFFA6C9","0xFFA700","0xFFA812","0xFFBF00","0xFFC1CC","0xFFDB58","0xFFE135","0xFFEF00","0xFFF600","0xFFF8DC","0xFFFAF0","0xFFFDD0","0xFFFF31","0xFFFFF0");
var myColor:Number = Math.round (Math.random () * (colorArray.length - 1));
var RandomColor:String = colorArray[myColor];
trace(RandomColor);
var randUint:uint = uint(Math.random() * uint.MAX_VALUE);
trace(randUint);
var tfd:TextField = new TextField();
tfd.defaultTextFormat = tft;
tfd.textColor = parseInt(RandomColor,16);
tfd.mouseEnabled = false;
tfd.autoSize = TextFieldAutoSize.LEFT;
var tx:Number = 0;
for (var i:int = 0; i < text.length; i++)
{
tfd.text = text.charAt(i);
var bmd:BitmapData = new BitmapData(tfd.width, tfd.height, true, 0x000000);
bmd.draw(tfd)
var bmp:WordBmp = new WordBmp(bmd);
bmp.smoothing = true;
bmp.x = tx;
bmp.scaleX = bmp.scaleY = Math.random() * 0.8 + 1.0;
tx += bmp.width * (0.6 + Math.random() * 0.2); ;
bmp.y = (Math.random() * 1.0 + 5) * 10
bmp.alpha = 0.0;
bmp.rotation = (Math.random() - 0.5) * 10;
Tweener.addTween(bmp, {
alpha: 1,
y: -bmp.height* (2.0 + Math.random() * 0.2 ),
time: (1 - i / text.length) * 0.3 + 0.3 + Math.random()*0.05,
delay: i / text.length * 0.3,
transition: "easeOutQuart",
onComplete: jumpupCompleteHandler,
onCompleteParams: [bmp]
});
addChild(bmp);
}
start();
}
private function jumpupCompleteHandler(bmp:WordBmp):void
{
Tweener.addTween(bmp, {
y: -bmp.height * (1.0 - Math.random() *0.1) ,
time: 0.5 + Math.random() * 0.4,
transition: "easeOutBounce"
});
}
private function start():void
{
t = 0;
lastT = 0;
Tweener.removeTweens(this);
Tweener.addTween(this, {
t: numChildren,
delay:1.5,
time: 1.0,
transition: "easeOutCubic",
onUpdate: function ():void
{
for (var i:int= lastT; i < t; i++)
{
var bmp:WordBmp = WordBmp(getChildAt(i));
bmp.t = 0;
Tweener.addTween(bmp, {
t:1.0,
time:0.3 +Math.random()*0.5,
transition:"easeOutSine",
onUpdate: function ():void
{
bmp.filters = [
new BevelFilter(6, 180 * bmp.t, 0xffffff, 1.0, 0x6c5718, 0.9, 4,4,10)
];
},
onComplete: function ():void
{
bmp.t = 0;
Tweener.addTween(bmp, {
t:1.0,
time:0.2,
transition: "easeOutCubic",
onUpdate:function ():void
{
bmp.filters = [
new BevelFilter(6 - bmp.t * 2, 180, 0xffffc6, 1.0, 0x6c5718, 0.9, 4, 4, 10 - bmp.t * 8 )
]
}
});
}
});
}
lastT = Math.ceil(t);
},
onComplete :function ():void
{
dispatchEvent(new Event(COMPLETE));
}
})
}
}
class WordBmp
extends Bitmap
{
public var t:Number;
public function WordBmp(bitmapData:BitmapData = null, pixelSnapping:String = "auto", smoothing:Boolean = false):void
{
super(bitmapData, pixelSnapping, smoothing);
filters = [
new BevelFilter(4, 180 * 0, 0xFFFFFF, 1.0, 0x6c5718, 0.9, 4,4, 2)
];
}
}