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

forked from: Base64 to Sound

@Author: kimo0517

works with Image to Base64 Encoder 

http://wonderfl.net/c/soNh
/**
 * Copyright 556556bt ( http://wonderfl.net/user/556556bt )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/hODf
 */

/*

 * @Author: kimo0517

 * works with Image to Base64 Encoder 

 * http://wonderfl.net/c/soNh

 */



package 

{

    import flash.display.Bitmap;

    import flash.display.Sprite;

    import flash.display.Loader;

    import flash.events.MouseEvent;

    import flash.events.Event;

    import flash.events.IOErrorEvent;

    import flash.events.FocusEvent;

    import flash.text.TextField;

    import flash.text.TextFieldType;

    import flash.desktop.Clipboard;

    import flash.desktop.ClipboardFormats;

    import com.bit101.components.PushButton;

    import flash.utils.ByteArray;

    import flash.media.Sound;



    

    import flash.net.FileReference;

    import flash.net.FileFilter;

    

    import mx.utils.Base64Decoder;

    

    [SWF(width=468, height=468, backgroundColor=0xAADDFF)]

    public class Base64ToImage extends Sprite 

    {

        private var imgBytesLoaded:ByteArray = null;

        private var bmd:Bitmap;

        private var tf:TextField;

        private var btnConvertToPic:PushButton;

        private var btnSavePic:PushButton;

        private var fr:FileReference;

        

        private var sound:Base64MP3Sound;

        

        public function Base64ToImage():void 

        {

            if (stage) init();

            else addEventListener(Event.ADDED_TO_STAGE, init);

        }

        

        private function init(e:Event = null):void 

        {

            removeEventListener(Event.ADDED_TO_STAGE, init);

            // entry point

            

            tf = new TextField;

            tf.textColor = 0x000000;

            tf.multiline = false;

            tf.background = true;

            tf.width = 450;

            tf.height = 20;

            tf.x = 5;

            tf.y = 5;

            tf.type = TextFieldType.INPUT; 

            tf.text = "Paste Base64 String here";

            tf.addEventListener(FocusEvent.FOCUS_IN, _selectTFText);

            addChild(tf);

            

            btnConvertToPic = new PushButton(this, 5, 25, "Convert To Mp3", _btnConvertToPicClicked);

            btnSavePic = new PushButton(this, btnConvertToPic.x + btnConvertToPic.width, 25, "Save Photo", _btnSavePicClicked);

            

            bmd = new Bitmap;

            bmd.y = btnConvertToPic.y + btnConvertToPic.height + 5;

            bmd.smoothing = true;

            addChild(bmd);

        }

        

        private function _selectTFText(e:FocusEvent):void {

            tf.text = "";

        }

        

        private function _btnConvertToPicClicked(e:MouseEvent):void {

            if (tf.text == "") {

                tf.text = "Paste Base64 String here";

                return;

            }

            

            sound = new Base64MP3Sound( tf.text );

            stage.addEventListener( MouseEvent.MOUSE_DOWN, function( event:MouseEvent ):void{ sound.play()} );



        }

        

        private function _loadBMDError(e:Event):void {

            tf.text = "input string is not photo!";

            imgBytesLoaded.clear();

            imgBytesLoaded = null;

        }

        

        private function _btnSavePicClicked(e:MouseEvent):void {

            if (imgBytesLoaded == null) {

                tf.text = "Load a photo first!";

                return;

            }

            

            fr = new FileReference();

            fr.save(imgBytesLoaded);

        }

        

        private function _loadBMDComplete(e:Event):void {

            if (bmd.bitmapData != null) {

                bmd.bitmapData.dispose();

            }

            bmd.bitmapData = e.target.content.bitmapData.clone();

            bmd.height = 468 - bmd.y;

            bmd.width = 468;

            if (bmd.scaleX < bmd.scaleY) {

                bmd.scaleY = bmd.scaleX;

            } else {

                bmd.scaleX = bmd.scaleY;

            }

            

            tf.text = "Photo loaded!";

        }

        

    }

    

    

}



    import flash.events.Event;

    import flash.media.Sound;

    import flash.utils.ByteArray;

    import mx.utils.Base64Decoder;

    class Base64MP3Sound extends Sound{

        public function Base64MP3Sound( data:String ):void{

            loadMP3( data );

        }

        public function loadMP3( data:String ):void{

            decoder.decode( data )

            byteArray = decoder.toByteArray()

            byteArray.position = 0;

            loadCompressedDataFromByteArray( byteArray, byteArray.length );

        }

        public var decoder:Base64Decoder = new Base64Decoder();

        public var byteArray:ByteArray = new ByteArray();

    }