Entry 986

sound

   

Submitted by sike on Sept. 1, 2008 at 5:02 p.m.
Language: ActionScript 3. Code size: 4.4 KB.

import flash.filters.BitmapFilter;
import flash.filters.BitmapFilterQuality;
import flash.filters.BitmapFilterType;
import flash.filters.GradientBevelFilter;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.display.Sprite;


stage.scaleMode = StageScaleMode.NO_SCALE;
var url:String = "sound.mp3";
var request:URLRequest = new URLRequest(url);
var s:Sound = new Sound();
s.addEventListener(ProgressEvent.PROGRESS, progressHandler);
s.addEventListener(Event.COMPLETE, completeHandler);
s.load(request);
var song:SoundChannel = s.play();
song.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);


var ba:ByteArray = new ByteArray();

var gr:Sprite = new Sprite();
gr.x = 20;
gr.y = 200;
addChild(gr);

/*
 var bgColor:uint     = 0xCCCCCC;
 var size:uint        = 80;
 var offset:uint      = 50;
 var distance:Number  = 5;
 var angleInDegrees:Number = 225; // opposite 45 degrees
 var colors:Array     = [0xFF0000, 0xFFFFFF, 0x000000];
 var alphas:Array     = [1, 0, 1];
 var ratios:Array     = [0, 128, 255];
 var blurX:Number     = 8;
 var blurY:Number     = 8;
 var strength:Number  = 2;
 var quality:Number   = BitmapFilterQuality.HIGH
 var type:String      = BitmapFilterType.INNER;
 var knockout:Boolean = true;
 var filter:BitmapFilter=new GradientBevelFilter(distance,
                                           angleInDegrees,
                                           colors,
                                           alphas,
                                           ratios,
                                           blurX,
                                           blurY,
                                           strength,
                                           quality,
                                           type,
                                           knockout);
*/
var bgColor:uint = 0xCCCCCC;
var size:uint    = 80;
var offset:uint  = 50;
var distance:Number  = 0;
var angleInDegrees:Number = 45;
var colors:Array     = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF];
var alphas:Array     = [0, 1, 1, 1];
var ratios:Array     = [0, 63, 126, 255];
var blurX:Number     = 50;
var blurY:Number     = 50;
var strength:Number  = 2.5;
var quality:Number   = BitmapFilterQuality.HIGH;
var type:String      = BitmapFilterType.OUTER;
var knockout:Boolean = false;

var filter:BitmapFilter=new GradientGlowFilter(distance,
                                          angleInDegrees,
                                          colors,
                                          alphas,
                                          ratios,
                                          blurX,
                                          blurY,
                                          strength,
                                          quality,
                                          type,
                                          knockout);


var farr:Array=new Array();
farr.push(filter);

var time:Timer = new Timer(50);
time.addEventListener(TimerEvent.TIMER, timerHandler);
time.start();

function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {
	var result:TextField = new TextField();
	var format:TextFormat = new TextFormat();
	format.font = "Verdana";
	format.color = 0xFF0000;
	format.size = 10;
	result.defaultTextFormat = format;
	result.x = x;
	result.y = y;
	result.width = width;
	result.height = height;
	addChild(result);
	return result;
}
var loading:TextField = createTextField(0, 20, 200, 20);
var loadstr:String;
function progressHandler(event:ProgressEvent):void {
	loadstr=String(Math.floor((event.bytesLoaded/event.bytesTotal)*100));
	loading.text=loadstr;
	trace(loadstr);
	
	//trace(" bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}



function completeHandler(event:Event):void {
	//loading.visible=false;
	//s.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
	event.target.play();
}
function soundCompleteHandler(event:Event):void {
	time.stop();
}
function timerHandler(event:TimerEvent):void {
	SoundMixer.computeSpectrum(ba, true);
	var i:int;
	gr.graphics.clear();
	gr.graphics.lineStyle(0, 0xFFFFFF);
	gr.graphics.beginFill(0xFFFFFF);
	gr.graphics.moveTo(0, 0);
	var w:uint = 2;
	for (i=0; i<512; i+=w) {
		var t:Number = ba.readFloat();
		var n:Number = (t * 100);
		gr.graphics.drawRect(i, 0, w, -n);
		gr.filters=farr;
	}
}

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).