In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Red Dragon & Blue Dragon

My first visualization using a class 'BitmapData'. So it has simple algorism... :-l

If you want to play a song in your hard disk, move this SWF file to your disk please.
Get Adobe Flash player
by Jjoriping 11 Mar 2012
    Embed
/**
 * Copyright Jjoriping ( http://wonderfl.net/user/Jjoriping )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/mHEO
 */

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.events.KeyboardEvent;
    import flash.events.MouseEvent
    import flash.events.Event
    import flash.text.TextField;
    import flash.display.MovieClip;
    import flash.text.TextFormat;
    import flash.filters.GlowFilter;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.text.TextFieldType;
    import flash.display.BlendMode;
    import flash.net.URLRequest;
    import flash.utils.setInterval;
    import flash.geom.Matrix;
    import flash.geom.ColorTransform;
    public class RDBD extends Sprite {
        public function RDBD() {
            var 바깥배경:Sprite=new Sprite();
            addChild(바깥배경);
            function 바깥배경색(색:Number):void{
                바깥배경.graphics.beginFill(색);
                바깥배경.graphics.drawRect(-2048,-2048,4196,4196);
            }
            바깥배경색(0);
            var 겉배경:Sprite=new Sprite();
            겉배경.blendMode=BlendMode.HARDLIGHT;
            겉배경.visible=false;
            겉배경.graphics.beginFill(0xFFFF00);
            겉배경.graphics.drawRect(-2048,-2048,4196,4196);

            stage.quality = "low";
            var 글:TextField=new TextField();
            var 글포맷:TextFormat = new TextFormat("Malgun Gothic",11,0xFFFFFF);
            var 글필터:GlowFilter = new GlowFilter(0x3388DD,1,3,3,5);
            글.selectable = false;
            글.defaultTextFormat = 글포맷;
            글.filters = [글필터];
            글.autoSize = "left";
            글.htmlText = "Jjoriping's Visualization\n<font size='16'><font color='#FF8844'>Red Dragon</font></font> & <font size='16' color='#88EEFF'>Blue Dragon</font></font>";
            
            var 주소입력:TextField=new TextField();
            var 주소포맷:TextFormat = new TextFormat("Malgun Gothic",11,0xFFFFFF);
            주소입력.defaultTextFormat = 주소포맷;
            주소입력.text = "(Input a MP3 file on the Internet and press Enter)";
            주소입력.border = true;
            주소입력.borderColor = 0xFFFFFF;
            주소입력.type = TextFieldType.INPUT;
            주소입력.autoSize = "left";
            주소입력.y = 40;
            var 버튼라벨:TextField=new TextField();
            var 버튼포맷:TextFormat = new TextFormat("Malgun Gothic",12,0x337733);
            버튼라벨.defaultTextFormat = 버튼포맷;
            버튼라벨.htmlText = "<p align='center'>Example Song</p>";
            버튼라벨.y = 60;
            버튼라벨.x = 2;
            버튼라벨.selectable = false;
            버튼라벨.autoSize = "left";
            var 버튼:MovieClip=new MovieClip();
            버튼.graphics.beginFill(0x99FF99,0.8);
            버튼.graphics.drawRoundRect(0,60,5+버튼라벨.width,버튼라벨.height,5);
            버튼.addEventListener("click",내장노래재생);
            stage.addEventListener("keyDown",키누름);
            function 키누름(ㄷ:KeyboardEvent):void {
                if (ㄷ.keyCode == 13) {
                    소리.load(new URLRequest(주소입력.text));
                    소리.addEventListener("complete",소리로드완료);
                }
            }
            var 붉게:Boolean = false;
            var 푸르게:Boolean = true;
            function 소리로드완료(ㄷ:Event):void {
                채널 = 소리.play();
                붉게 = 주소입력.text.length % 2 == 0;
                if (붉게) {
                    푸르게 = ㄷ.target.bytesTotal % 2 == 0;
                }
                stage.removeEventListener("keyDown",키누름);
                소리재생활동();
                if(내장소리여부){
                    붉게=true;
                }
                겉배경.visible=true;
            }
            function 소리재생활동():void {
                setInterval(실시간,10);
                버튼.visible = false;
                주소입력.border = false;
                주소입력.selectable = false;
            }
            function 내장노래재생(ㄷ:MouseEvent):void {
                소리.load(new URLRequest("http://Jjoriping.ufree.kr/download/example.mp3"));
                소리.addEventListener("complete",소리로드완료);
                주소입력.text="INUxBOKU Secret Service ED - Photograph"
                정보 = 0.8;
                사인값 = 3;
                내장소리여부 = true;
            }
            var 내장소리여부:Boolean = false;
            var 배경:Sprite=new Sprite();
            var 그림:Sprite=new Sprite();
            var 새원:MovieClip=new MovieClip();
            새원.graphics.beginFill(0xFFFFFF,0.5);
            새원.graphics.drawCircle(0,0,10);
            var 비트맵배열:Array=new Array();
            var 비배열:Array=new Array();
            for (var b:Number=0; b<10; b++) {
                var 비:BitmapData = new BitmapData(1024,8191,false,0);
                var 비트맵:Bitmap = new Bitmap(비);
                비트맵.y = -7791 - 7391 * b;
                비트맵.x = -100;
                그림.addChild(비트맵);
                비트맵배열.push(비트맵);
                비배열.push(비);
            }
            addChild(그림);
            addChild(배경);
            addChild(글);
            addChild(주소입력);
            addChild(버튼);
            addChild(겉배경);
            버튼.addChild(버튼라벨);
            배경.blendMode = BlendMode.ADD;
            var 소리:Sound=new Sound();
            var 타:Number = 0;
            var 피크:Number;
            var 채널:SoundChannel;
            var 비번:Number = 0;
            var 정보:Number = 2;
            var 사인값:Number = 2.5;
            function 실시간():void {
                피크=(채널.leftPeak+채널.rightPeak)/정보;
                타 +=  0.01;
                var 가로위치:Number = 375 + Math.sin(타*사인값) * 275;
                var 가로위치2:Number = 375 - Math.sin(타*사인값) * 275;
                if (비트맵배열[비번].y > -800) {
                    비번 +=  1;
                }
                var 세로위치:Number = 170 - 피크 * 170 - 비트맵배열[비번].y;
                var 세로위치2:Number = 270 - 피크 * 170 - 비트맵배열[비번].y;
                if (푸르게) {
                    비배열[비번].draw(새원,new Matrix(피크*5,0,0,피크*5,가로위치,세로위치),new ColorTransform(피크-타,피크,피크+타/2));
                }
                if (붉게) {
                    비배열[비번].draw(새원,new Matrix(피크*5,0,0,피크*5,가로위치2,세로위치2),new ColorTransform(피크+타/2,피크,피크-타));
                }
                for (var bS:Number=0; bS<10; bS+=1) {
                    비트맵배열[bS].y +=  피크 * 7 - 2;
                }
                그림.scaleY +=  피크 / 100 - 0.005;
                if (그림.scaleY > 1) {
                    그림.scaleY = 1;
                }
                if (그림.scaleY < 0.1) {
                    그림.scaleY = 0.1;
                }
                그림.x = (1 - 그림.scaleY) * 275;
                그림.scaleX = 그림.scaleY;
                if (피크>0.7) {
                    원복제(1,피크*30);
                }
                겉배경.alpha=피크/10;
            }
            function 원복제(수:Number,크기:Number):void {
                for (var i:Number=0; i<수; i++) {
                    var 새배:MovieClip=new MovieClip();
                    새배.y = -100;
                    새배.x = Math.random() * 550;
                    새배.graphics.beginFill(0xFFFFFF,0.1);
                    새배.graphics.drawCircle(0,0,크기);
                    새배.addEventListener("enterFrame",새배실시간);
                    배경.addChild(새배);
                }
            }
            function 새배실시간(ㄷ:Event):void {
                ㄷ.target.y +=  피크 * 8;
                ㄷ.target.rotationY +=  피크 * 5;
                if (ㄷ.target.y > 900) {
                    ㄷ.target.removeEventListener("enterFrame",새배실시간);
                    배경.removeChild(배경.getChildByName(ㄷ.target.name));
                }
            }
        }
    }
}