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