forked from: textfield disperse
forked from textfield disperse (diff: 1)
ActionScript3 source code
/**
* Copyright wwbeyondww1 ( http://wonderfl.net/user/wwbeyondww1 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/nosq
*/
// forked from Jacky.Riawan's textfield disperse
package {
import flash.events.Event;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.text.TextFormat;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.display.Sprite;
[SWF(backgroundColor="#FFFFFF", width="465", height="465", frameRate="60",quality="LOW")]
public class FlashTest extends Sprite {
private var myBitmapData:BitmapData
private var myBitmap:Bitmap
private var startLineY:int
private var currentLineY:int
private var startLineX:int
private var numLineX:int
private var timer:int
private var timed:int
public function FlashTest() {
// write as3 code here..
var myTextFormat:TextFormat=new TextFormat("Arial",20,null,false)
var myText:TextField=new TextField()
myTextFormat.color=0x000000
myTextFormat.align="center"
myText.autoSize=TextFieldAutoSize.LEFT;
myText.defaultTextFormat=myTextFormat
myText.text="HELLO NICE TO MEET YOU!\nTHANK YOU!\nBYE! :D"
myText.x=stage.stageWidth/2-myText.width/2
myText.y=stage.stageHeight/2-myText.height/2
addChild(myText);
myBitmapData=new BitmapData(myText.width,myText.height)
myBitmap=new Bitmap(myBitmapData)
myBitmap.x=myText.x
myBitmap.y=myText.y
myBitmapData.draw(myText)
startLineY=myBitmap.height
currentLineY=startLineY
startLineX=myBitmap.x
numLineX=myBitmap.width
addChild(myBitmap)
removeChild(myText);
timer=80
addEventListener(Event.ENTER_FRAME,countDown)
}
private function countDown(e:Event):void{
timer--
if(timer<0){
removeEventListener(Event.ENTER_FRAME,countDown)
addEventListener(Event.ENTER_FRAME,render)
}
}
private function render (e:Event):void{
timed++
if(timed%2==1){
for (var i:int=0; i<numLineX; i++){
var pixelCol:Number = myBitmapData.getPixel(i,currentLineY);
if (pixelCol == 0){
var color:String = "0x" + pixelCol.toString(16);
var part:particle = new particle(myBitmap.x + i,myBitmap.y + currentLineY,color);
addChild(part);
}
myBitmapData.setPixel(i,currentLineY,16777215);
}
currentLineY--;
if (currentLineY == 0){
removeEventListener(Event.ENTER_FRAME,render);
}
}
}
}
}
import flash.events.Event;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
class particle extends MovieClip{
private var speedx:Number
private var speedy:Number;
private var gravity:Number
function particle(posx:Number,posy:Number,col:String){
x=posx
y=posy
gravity=0
speedx=Math.random()*2-1
speedy=Math.random()*2-1
var bitmapData:BitmapData=new BitmapData(1,1,false,uint(col))
var bitmap:Bitmap=new Bitmap(bitmapData)
addChild(bitmap)
this.addEventListener(Event.ENTER_FRAME,render)
}
private function render(e:Event):void{
e.target.x+=speedx;
gravity+=.1
e.target.alpha-=.01
e.target.y+=speedy+gravity;
if(e.target.alpha<=0){
removeEventListener(Event.ENTER_FRAME,render)
parent.removeChild(this)
}
}
}