forked from: textfield disperse

by wwbeyondww1 forked from textfield disperse (diff: 1)
♥0 | Line 100 | Modified 2013-08-15 08:46:51 | MIT License
play

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)
           }

        }

}