flash on 2011-5-13
♥0 |
Line 114 |
Modified 2011-05-13 12:07:53 |
MIT License
archived:2017-03-20 06:51:07
ActionScript3 source code
/**
* Copyright yama3 ( http://wonderfl.net/user/yama3 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/6Bx0
*/
package {
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.filters.BlurFilter;
import flash.geom.ColorTransform;
import flash.geom.Rectangle;
import flash.geom.Transform;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFieldType;
import flash.text.AntiAliasType;
import flash.text.TextFormat;
import flash.events.Event;
import flash.text.TextFormatAlign;
import flash.filters.GlowFilter;
[SWF(frameRate="30", width="465", height="465", backgroundColor="0xffffff")]
public class FlashTest extends Sprite {
private var _maxLabel:int = 150;
private var _maxWidth:int = 50;
private var vecText:Vector.<lettre> = new Vector.<lettre>();
private var colorT:ColorTransform;
private var canvas:BitmapData;
private var contLabel:Sprite = new Sprite();
public function FlashTest() {
if(stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event=null):void {
this.removeEventListener(Event.ADDED_TO_STAGE, init);
var bg_canvas:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xff000000);
var bg_color:Bitmap = new Bitmap(bg_canvas);
this.addChild(bg_color);
canvas = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x00000000);
var glow:GlowFilter = new GlowFilter(0x00ff00, 1, 8, 8, 2, 1, false, false);
this.contLabel.filters = [glow];
this.addChild(this.contLabel);
var fd:Bitmap = new Bitmap(canvas);
var blur:BlurFilter = new BlurFilter(2, 2, 1);
fd.filters = [blur];
this.addChild(fd);
colorT = new ColorTransform(0.95, 1, 0.95, 0.98, 0, 0, 0, -0.2);
this.addEventListener(Event.ENTER_FRAME, refresh);
}
private function refresh(e:Event):void {
canvas.colorTransform(new Rectangle(0, 0, stage.stageWidth, stage.stageHeight), this.colorT);
for(var i:int=0; i<this.vecText.length; i++) {
this.refreshLabel(i);
}
if(this.vecText.length < this._maxLabel) {
var label:lettre = new lettre();
label.x = int(Math.random()*this._maxWidth)*(stage.stageWidth/this._maxWidth);
this.contLabel.addChild(label);
this.vecText.push(label);
}
}
private function refreshLabel(i:int):void {
var label:lettre = this.vecText[i];
if(label.y > stage.stageHeight) {
this.contLabel.removeChild(label);
this.vecText.splice(i, 1);
} else {
label.refresh();
}
if((label.y - label.lastPrint) > label.textHeight) {
label.lastPrint = label.y;
this.printLabel(label);
}
}
private function printLabel(label:lettre):void {
var trans:Transform = label.transform;
this.canvas.draw(label, trans.matrix);
}
}
}
import flash.filters.GlowFilter;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormatAlign;
import flash.text.AntiAliasType;
class lettre extends TextField
{
private var allowT:Array;
private var vitesse:Number;
public var lastPrint:int = -30;
public function lettre()
{
var str:String = new String("abcdefghijklmnopqrstuvwxyz0123456789");
allowT = str.split("");
this.creaLabel();
this.vitesse = 1 + Math.random() * 2;
}
public function refresh():void {
this.text = allowT[int(Math.random()*(allowT.length-1))];
this.y += this.vitesse;
}
private function creaLabel():void {
var format1:TextFormat = new TextFormat();
format1.font = "Arial";
format1.color = 0xffffff;
format1.size = 10;
format1.leading = -4;
format1.bold = true;
this.width = 15;
this.multiline = true;
this.wordWrap = true;
this.autoSize = TextFieldAutoSize.NONE;
this.antiAliasType = AntiAliasType.ADVANCED;
this.defaultTextFormat = format1;
this.text = allowT[int(Math.random()*(allowT.length-1))];
this.defaultTextFormat = format1;
}
}