STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
234889
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2685 · P5370

<div style="position:absolute;top:-99px;left:-99px;"><img src="https://tools.swfchan.com/stathit.asp?noj=FRM26077879-15DC&rnd=26077879" width="1" height="1"></div>

abotdance.swf

This is the info page for
Flash #268481

(Click the ID number above for more basic data on this flash file.)


ActionScript [AS3]
Section 1
//abot_audio_1 (abotdance_fla.abot_audio_1) package abotdance_fla { import flash.display.*; public dynamic class abot_audio_1 extends MovieClip { public var midL:MovieClip; public var midR:MovieClip; public var tweeterL:MovieClip; public var tweeterR:MovieClip; public var bassR:MovieClip; public var screen:MovieClip; public var bassL:MovieClip; } }//package abotdance_fla
Section 2
//abot_audiobasspeaker1_21 (abotdance_fla.abot_audiobasspeaker1_21) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class abot_audiobasspeaker1_21 extends MovieClip { public function abot_audiobasspeaker1_21(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 3
//abot_audiobasspeaker2_17 (abotdance_fla.abot_audiobasspeaker2_17) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class abot_audiobasspeaker2_17 extends MovieClip { public function abot_audiobasspeaker2_17(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 4
//abot_audiochest_10 (abotdance_fla.abot_audiochest_10) package abotdance_fla { import flash.display.*; public dynamic class abot_audiochest_10 extends MovieClip { public var spos1:MovieClip; public var spos2:MovieClip; public var spos3:MovieClip; public var spos0:MovieClip; public var smask:MovieClip; } }//package abotdance_fla
Section 5
//abot_audioshoulderhorn_6 (abotdance_fla.abot_audioshoulderhorn_6) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class abot_audioshoulderhorn_6 extends MovieClip { public function abot_audioshoulderhorn_6(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 6
//abot_audioshoulderhorn1_28 (abotdance_fla.abot_audioshoulderhorn1_28) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class abot_audioshoulderhorn1_28 extends MovieClip { public function abot_audioshoulderhorn1_28(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 7
//abot_medrangerumble2_14 (abotdance_fla.abot_medrangerumble2_14) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class abot_medrangerumble2_14 extends MovieClip { public function abot_medrangerumble2_14(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 8
//abot_midrangerumble1_24 (abotdance_fla.abot_midrangerumble1_24) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class abot_midrangerumble1_24 extends MovieClip { public function abot_midrangerumble1_24(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 9
//darnel_bop2_46 (abotdance_fla.darnel_bop2_46) package abotdance_fla { import flash.display.*; public dynamic class darnel_bop2_46 extends MovieClip { public var foot:MovieClip; } }//package abotdance_fla
Section 10
//darnell_dances_35 (abotdance_fla.darnell_dances_35) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class darnell_dances_35 extends MovieClip { public var gfx:MovieClip; public function darnell_dances_35(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 11
//darnell_head_44 (abotdance_fla.darnell_head_44) package abotdance_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class darnell_head_44 extends MovieClip { public function darnell_head_44(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package abotdance_fla
Section 12
//MainTimeline (abotdance_fla.MainTimeline) package abotdance_fla { import flash.display.*; import mwelsh.audio.visualizer.*; import flash.geom.*; import flash.events.*; import mwelsh.audio.visualizer.visualizations.*; import flash.media.*; import mwelsh.geom.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.errors.*; import flash.accessibility.*; import flash.external.*; import flash.text.*; import flash.ui.*; public dynamic class MainTimeline extends MovieClip { public const L_BAND:uint = 3; public const M_BAND:uint = 15; public var darnellCount:uint; public var filename:String; public var music:Sound; public var energies:Array; public var playing:Boolean; public var bopFrameOffset2:Number; public var vis:AudioVisualizer; public var sndChannel:SoundChannel; public var a:SimpleSpectrumVisualization; public var curSong:uint; public var autoPlay:Boolean; public var sObj:SharedObject; public var distVis:DistordImage; public var bopFrameOffset:Number; public var maxEnergies:Array; public var darnell:MovieClip; public var beatParity:Boolean; public var abot:MovieClip; public var time:int; public function MainTimeline(){ addFrameScript(0, frame1); } public function init(){ var _local1:Point; var _local2:Point; var _local3:Point; var _local4:int; stage.quality = "HIGH"; _local1 = new Point(abot.screen.spos2.x, abot.screen.spos2.y); _local1 = abot.screen.localToGlobal(_local1); _local2 = new Point(abot.screen.spos3.x, abot.screen.spos3.y); _local2 = abot.screen.localToGlobal(_local2); _local3 = new Point(abot.screen.spos1.x, abot.screen.spos1.y); _local3 = abot.screen.localToGlobal(_local3); vis = new AudioVisualizer(Math.ceil(((_local2.x - _local1.x) * 1.1)), Math.ceil(((_local3.y - _local1.y) * 1.1)), ["SimpleSpectrumVisualization"], "SimpleSpectrumVisualization"); darnell.gotoAndStop(1); addEventListener("enterFrame", tick); distVis = new DistordImage(vis.getBitmapData(), 4, 4); distVis.mask = abot.screen.smask; abot.screen.addChild(distVis); abot.bassL.stop(); abot.bassR.stop(); abot.midL.stop(); abot.midR.stop(); abot.tweeterL.stop(); abot.tweeterR.stop(); darnell.gfx.stop(); sObj = SharedObject.getLocal("ABotSettings", "/"); loadSettings(); Security.allowDomain("*"); Security.allowInsecureDomain("*"); ExternalInterface.addCallback("stopMusic", stopMusic); ExternalInterface.addCallback("playSong", playSong); if (AudioVisualizer.DEBUG){ _local4 = AudioVisualizer.DEBUG_SONG; if (_local4 == -1){ _local4 = int((AudioVisualizer.DEBUG_SONGS.length * Math.random())); }; loadMusic(("songs/" + AudioVisualizer.DEBUG_SONGS[_local4])); playMusic(); } else { if (autoPlay){ ExternalInterface.call("Abot.Play", (4 - Math.floor((Math.log(((Math.random() * 31) + 1)) / Math.LN2)))); }; }; } public function loadSettings(){ if (sObj.data.autoPlay != undefined){ autoPlay = sObj.data.autoPlay; } else { autoPlay = true; }; } function frame1(){ autoPlay = true; beatParity = false; playing = false; darnellCount = 0; curSong = 0; energies = [0, 0, 0, 0, 0, 0]; maxEnergies = [0, 0, 0, 0, 0, 0]; init(); time = getTimer(); bopFrameOffset = 0; bopFrameOffset2 = 0; abot.gotoAndStop(15); } public function stopMusic(_arg1:Event=null){ if (sndChannel){ sndChannel.stop(); sndChannel.removeEventListener(Event.SOUND_COMPLETE, songComplete); }; autoPlay = false; playing = false; saveSettings(); vis.pauseBeatDetection(); } public function playMusic(_arg1:Event=null){ if (sndChannel){ sndChannel.stop(); sndChannel.removeEventListener(Event.SOUND_COMPLETE, songComplete); }; if (!music){ return; }; vis.resetBeatDetection(); autoPlay = true; playing = true; saveSettings(); sndChannel = music.play(); sndChannel.addEventListener(Event.SOUND_COMPLETE, songComplete); } public function songComplete(_arg1:Event):void{ nextSong(); } public function nextSong():void{ ExternalInterface.call("Abot.NextSong"); } public function tick(_arg1:Event){ var _local2:uint; var _local3:SoundData; var _local4:Boolean; var _local5:uint; var _local6:Number; var _local7:Point; var _local8:Number; var _local9:uint; var _local10:uint; var _local11:Boolean; var _local12:uint; var _local13:Number; _local2 = (getTimer() - time); _local3 = vis.getSoundData(); _local4 = _local3.smartBeat; _local5 = _local3.bpm; if (_local4){ _local10 = (beatParity) ? 1 : 15; _local11 = false; _local12 = darnell.gfx.currentFrame; if ((((_local12 > 1)) && ((_local12 < 8)))){ bopFrameOffset2 = (bopFrameOffset2 - ((_local5) ? ((60 / _local5) / 14) : (1 / 14) * (darnell.gfx.currentFrame - 1))); } else { if ((((_local12 > 15)) && ((_local12 < 22)))){ bopFrameOffset2 = (bopFrameOffset2 - ((_local5) ? ((60 / _local5) / 14) : (1 / 14) * (darnell.gfx.currentFrame - 15))); } else { if ((((_local12 > 7)) && ((_local12 < 16)))){ darnell.gfx.gotoAndStop(15); bopFrameOffset2 = 0; } else { if ((((_local12 > 21)) && ((_local12 < 29)))){ darnell.gfx.gotoAndStop(1); bopFrameOffset2 = 0; }; }; }; }; beatParity = !(beatParity); darnellCount++; if (darnellCount == 16){ darnellCount = 0; }; }; if (_local3.beat){ abot.gotoAndStop(4); }; _local6 = 0; if (!playing){ bopFrameOffset = (bopFrameOffset + (_local2 / 1000)); while (bopFrameOffset >= (1 / 10)) { if (abot.currentFrame == abot.totalFrames){ abot.gotoAndStop(1); } else { abot.nextFrame(); }; bopFrameOffset = (bopFrameOffset - (1 / 10)); }; } else { if (abot.currentFrame < 15){ bopFrameOffset = (bopFrameOffset + (_local2 / 1000)); _local13 = (1 / 60); while ((((((abot.currentFrame < 15)) && (_local13))) && ((bopFrameOffset >= _local13)))) { if (abot.currentFrame == abot.totalFrames){ abot.gotoAndStop(1); } else { abot.nextFrame(); }; bopFrameOffset = (bopFrameOffset - _local13); }; } else { bopFrameOffset = 0; }; }; bopFrameOffset2 = (bopFrameOffset2 + (_local2 / 1000)); _local13 = (_local5) ? ((60 / _local5) / 14) : (1 / 14); if (((1) || (((!((darnell.gfx.currentFrame == 8))) && (!((darnell.gfx.currentFrame == 22))))))){ while (((((((1) || (((!((darnell.gfx.currentFrame == 8))) && (!((darnell.gfx.currentFrame == 22))))))) && (_local13))) && ((bopFrameOffset2 >= _local13)))) { if (darnell.gfx.currentFrame == darnell.gfx.totalFrames){ darnell.gfx.gotoAndStop(1); } else { darnell.gfx.nextFrame(); }; bopFrameOffset2 = (bopFrameOffset2 - _local13); }; } else { bopFrameOffset2 = 0; }; distVis.setTransform(abot.screen.spos2.x, abot.screen.spos2.y, abot.screen.spos3.x, abot.screen.spos3.y, abot.screen.spos0.x, abot.screen.spos0.y, abot.screen.spos1.x, abot.screen.spos1.y); _local7 = new Point(abot.screen.spos2.x, abot.screen.spos2.y); _local7 = abot.screen.localToGlobal(_local7); vis.x = _local7.x; vis.y = _local7.y; energies[0] = (_local3.getTotalSubbandEnergy(1, L_BAND, 0) / 3); maxEnergies[0] = Math.max(energies[0], maxEnergies[0]); abot.bassL.gotoAndStop(Math.max(1, Math.floor((((energies[0] / maxEnergies[0]) * abot.bassL.totalFrames) + 0.5)))); energies[1] = (_local3.getTotalSubbandEnergy(1, L_BAND, 1) / 3); maxEnergies[1] = Math.max(energies[1], maxEnergies[1]); abot.bassR.gotoAndStop(Math.max(1, Math.floor((((energies[1] / maxEnergies[1]) * abot.bassR.totalFrames) + 0.5)))); energies[2] = (_local3.getTotalSubbandEnergy(L_BAND, M_BAND, 0) / 2); maxEnergies[2] = Math.max(energies[2], maxEnergies[2]); abot.midL.gotoAndStop(Math.max(1, Math.floor((((energies[2] / maxEnergies[2]) * abot.midL.totalFrames) + 0.5)))); energies[3] = (_local3.getTotalSubbandEnergy(L_BAND, M_BAND, 1) / 2); maxEnergies[3] = Math.max(energies[3], maxEnergies[3]); abot.midR.gotoAndStop(Math.max(1, Math.floor((((energies[3] / maxEnergies[3]) * abot.midR.totalFrames) + 0.5)))); energies[4] = _local3.getTotalSubbandEnergy(M_BAND, 0x0100, 0); maxEnergies[4] = Math.max(energies[4], maxEnergies[4]); abot.tweeterL.gotoAndStop(Math.max(1, Math.floor((((energies[4] / maxEnergies[4]) * abot.tweeterL.totalFrames) + 0.5)))); energies[5] = _local3.getTotalSubbandEnergy(M_BAND, 0x0100, 1); maxEnergies[5] = Math.max(energies[5], maxEnergies[5]); abot.tweeterR.gotoAndStop(Math.max(1, Math.floor((((energies[5] / maxEnergies[5]) * abot.tweeterR.totalFrames) + 0.5)))); time = (time + _local2); } public function playSong(_arg1:String):void{ loadMusic(_arg1); playMusic(); } public function saveSettings(){ sObj.data.autoPlay = autoPlay; sObj.flush(); } public function cleanupMusic(_arg1:Event=null):void{ music.removeEventListener(IOErrorEvent.IO_ERROR, cleanupMusic); music.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, cleanupMusic); music = null; } public function loadMusic(_arg1:String):void{ var lc:SoundLoaderContext; var file = _arg1; if (sndChannel){ sndChannel.stop(); sndChannel.removeEventListener(Event.SOUND_COMPLETE, songComplete); }; filename = file; lc = new SoundLoaderContext(1000, true); if (music){ cleanupMusic(); }; try { music = new Sound(new URLRequest(filename), lc); music.addEventListener(IOErrorEvent.IO_ERROR, cleanupMusic); music.addEventListener(SecurityErrorEvent.SECURITY_ERROR, cleanupMusic); } catch(e:Error) { if ((((e is IOError)) && ((e.errorID == 2032)))){ music.close(); }; trace((("Error loading music file " + m_Filename) + "!")); trace(e); music = null; }; } } }//package abotdance_fla
Section 13
//SimpleSpectrumVisualization (mwelsh.audio.visualizer.visualizations.SimpleSpectrumVisualization) package mwelsh.audio.visualizer.visualizations { import mwelsh.audio.visualizer.*; import flash.geom.*; import flash.filters.*; public class SimpleSpectrumVisualization extends Visualization { private var curMax:Array; private var soundEq:Array; private var calibrating:Array; private var max:Array; private var numBars:uint; private var numSegs:uint; private var colors:Array; public function SimpleSpectrumVisualization(_arg1:uint, _arg2:uint, _arg3:Number=16, _arg4:Number=16){ var _local5:uint; super(_arg1, _arg2); this.numBars = _arg3; this.numSegs = _arg4; soundEq = new Array(_arg3); max = new Array(_arg3); curMax = new Array(_arg3); calibrating = new Array(_arg3); _local5 = 0; while (_local5 < _arg3) { soundEq[_local5] = 0; max[_local5] = 0; curMax[_local5] = 1; calibrating[_local5] = true; _local5++; }; colors = []; _local5 = 0; while (_local5 < 48) { colors[_local5] = ((uint((_local5 * 5.3125)) << 16) | 0xFF00); _local5++; }; _local5 = 48; while (_local5 < 128) { colors[_local5] = (0xFF0000 | (uint(((128 - _local5) * 3.1875)) << 8)); _local5++; }; } override public function tick(_arg1:Number, _arg2:SoundData):void{ var _local3:Number; var _local4:uint; var _local5:uint; var _local6:Number; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; pixels.lock(); vectors.graphics.clear(); _local3 = Math.max(0, (1 - (4 * _arg1))); pixels.applyFilter(pixels, pixels.rect, new Point(0, 0), new ColorMatrixFilter([_local3, 0, 0, 0, 0, 0, _local3, 0, 0, 0, 0, 0, _local3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0])); _local6 = 0; _local7 = 0; _local8 = (0x0100 / numBars); _local4 = 0; while (_local4 < numBars) { _local9 = (_local8 - _local7); _local6 = 0; _local5 = _local7; while (_local5 < _local8) { _local6 = (_local6 + _arg2.fftAvg[_local5]); _local5++; }; soundEq[_local4] = Math.max((_local6 / _local9), Math.max((soundEq[_local4] - 0.05), 0)); max[_local4] = Math.max(soundEq[_local4], max[_local4]); if (calibrating[_local4]){ if (max[_local4] > 0.1){ if (max[_local4] > 0.6){ curMax[_local4] = (curMax[_local4] + ((max[_local4] - curMax[_local4]) / 8)); } else { if (max[_local4] > 0.3){ curMax[_local4] = (curMax[_local4] + ((max[_local4] - curMax[_local4]) / 16)); } else { curMax[_local4] = (curMax[_local4] + ((max[_local4] - curMax[_local4]) / 32)); }; }; if (Math.abs((curMax[_local4] - max[_local4])) < 0.0001){ calibrating[_local4] = false; }; }; } else { curMax[_local4] = max[_local4]; }; _local7 = _local8; _local8 = (_local8 + _local9); _local4++; }; vectors.graphics.lineStyle(0, 0, 0); _local11 = (w * 0.03); _local12 = ((w - ((numBars + 1) * _local11)) / numBars); _local13 = (h * 0.02); _local14 = ((h * (1.02 - (0.02 * numSegs))) / numSegs); _local15 = (128 / numSegs); _local4 = 0; while (_local4 < numBars) { _local5 = 0; while (_local5 < Math.round(((numSegs * soundEq[_local4]) / curMax[_local4]))) { _local10 = colors[Math.round((_local5 * _local15))]; vectors.graphics.beginFill(_local10); vectors.graphics.drawRect(((_local11 * (_local4 + 1)) + (_local12 * _local4)), ((h - ((_local5 + 1) * _local14)) - (_local5 * _local13)), _local12, _local14); vectors.graphics.endFill(); _local5++; }; _local4++; }; pixels.draw(vectors); pixels.unlock(); } } }//package mwelsh.audio.visualizer.visualizations
Section 14
//Visualization (mwelsh.audio.visualizer.visualizations.Visualization) package mwelsh.audio.visualizer.visualizations { import flash.display.*; import mwelsh.audio.visualizer.*; import flash.geom.*; import flash.events.*; import flash.net.*; import flash.system.*; public class Visualization { protected var maxDim:uint; protected var h2:Number; protected var vectors:Shape; protected var loader:Loader; protected var minDim:uint; protected var orientation:Boolean; protected var w2:Number; protected var point:Point; protected var _loaded:Boolean; protected var bufferBmp:BitmapData; protected var h:uint; protected var pixels:BitmapData; protected var bufferBmp2:BitmapData; protected var w:uint; public function Visualization(_arg1:uint, _arg2:uint):void{ _loaded = true; createGfx(_arg1, _arg2); } public function get loaded():Boolean{ return (_loaded); } protected function catchIOError(_arg1:Event):void{ loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadingComplete); loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, catchIOError); } protected function loadingComplete(_arg1:Event):void{ loader.removeEventListener(Event.COMPLETE, loadingComplete); loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, catchIOError); _loaded = true; } protected function applyPolarTransform(_arg1:Function, _arg2:Function):void{ var _local3:uint; var _local4:uint; var _local5:Number; var _local6:Number; var _local7:Number; _local3 = 0; while (_local3 < w) { _local4 = 0; while (_local4 < w) { _local4++; }; _local3++; }; } public function createGfx(_arg1:uint, _arg2:uint):BitmapData{ w = _arg1; h = _arg2; w2 = (w / 2); h2 = (h / 2); maxDim = Math.max(w, h); minDim = Math.min(w, h); orientation = (h > w); pixels = new BitmapData(w, h, false); vectors = new Shape(); vectors.width = w; vectors.height = h; point = new Point(); pixels.fillRect(pixels.rect, 4278190080); bufferBmp = new BitmapData(_arg1, _arg2, true); bufferBmp2 = new BitmapData(_arg1, _arg2, true); return (pixels); } protected function drawBuffer(_arg1:Matrix=null, _arg2:ColorTransform=null, _arg3:String=null, _arg4:BitmapData=null):void{ var _local5:Point; if (_arg4 == null){ _arg4 = bufferBmp; }; _local5 = new Point(w2, h2); if (!_arg1){ _arg1 = new Matrix(); }; _local5 = _arg1.deltaTransformPoint(_local5); _arg1.translate((w2 - _local5.x), (h2 - _local5.y)); pixels.draw(_arg4, _arg1, _arg2, _arg3); } public function tick(_arg1:Number, _arg2:SoundData):void{ pixels.lock(); pixels.fillRect(pixels.rect, 4278190080); pixels.unlock(); } public function get bitmapData():BitmapData{ return (pixels); } protected function loadContent(_arg1:String):void{ var _local2:URLRequest; var _local3:LoaderContext; _loaded = false; _local2 = new URLRequest((AudioVisualizer.VIS_DATA_FOLDER + _arg1)); loader = new Loader(); _local3 = new LoaderContext(false, ApplicationDomain.currentDomain); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, catchIOError); loader.load(_local2, _local3); } protected function getLoadedClass(_arg1:String):Class{ return (Class(loader.contentLoaderInfo.applicationDomain.getDefinition(_arg1))); } protected function saveBuffer(_arg1:Matrix=null, _arg2:ColorTransform=null, _arg3:String=null, _arg4:BitmapData=null):void{ var _local5:Point; if (_arg4 == null){ _arg4 = bufferBmp; }; if (!_arg1){ _arg1 = new Matrix(); }; _local5 = new Point(w2, h2); _local5 = _arg1.deltaTransformPoint(_local5); _arg1.translate((w2 - _local5.x), (h2 - _local5.y)); _arg4.draw(pixels, _arg1, _arg2, _arg3); } } }//package mwelsh.audio.visualizer.visualizations
Section 15
//AudioVisualizer (mwelsh.audio.visualizer.AudioVisualizer) package mwelsh.audio.visualizer { import flash.display.*; import flash.geom.*; import flash.events.*; import mwelsh.audio.visualizer.visualizations.*; import flash.utils.*; import flash.filters.*; public class AudioVisualizer extends Sprite { private const BEAT_CONSTANT:Number = 3.1; private const TRANSITION_SCROLL0:uint = 1; private const TRANSITION_DISSOLVE:uint = 3; private const TRANSITION_SCROLL3:uint = 4; private const TRANSITION_SCROLL1:uint = 2; private const MIN_BPM:uint = 60; private const MAX_BPM:uint = 200; private const NUM_TRANSITIONS:uint = 7; private const BEAT_HISTORY_LEN:uint = 16; private const TRANSITION_SPINOUT:uint = 6; private const TRANSITION_FADE:uint = 0; private const BPM_HISTORY_LEN:uint = 8; private const VIS_FADE_TIME:uint = 1000; private const TRANSITION_COLUMNWIPE:uint = 5; private const TRANSITION_NONE:uint = 999; private const MIN_BEAT_TIME:Number = 0.2; private const TRANSITION_SQUARES:uint = 7; private var _lastPredictedBeatTime:Number; private var _visNumber:int; private var _beatTypeHistory:Array; private var _confidence:Number; private var _beatPeak1Peak:Number; private var _lastBeatTime:Number; private var _beatDiscriminatedHistory:Array; private var _transitionType:uint; private var _beatsGuessed:uint; private var h:uint; private var _visPlaylist:Array; private var w:uint; private var _bpmDoubleCount:uint; private var _stickyConfidenceCount:uint; private var _beat:Boolean; private var _resyncBpm:Boolean; private var _predictedTimeUntilBeat:Number; private var _averageBeatTime:Number; private var _buffer0:BitmapData; private var _buffer1:BitmapData; private var _predictionBpm:uint; private var _transitionSprite:Sprite; private var _vis0:Visualization; private var _vis1:Visualization; private var _bpm:uint; private var _bpmSticky:Boolean; private var _topConfidenceCount:uint; private var _beatTimeHistory:Array; private var _transitionBitmap:BitmapData; private var _BDTime:Number; private var _bpmHistory:Array; private var _bpmHalfCount:uint; private var _beatDetection:Boolean; private var _fullScreen:Boolean; private var _visTransitionTime:uint; private var _screen:BitmapData; private var _beatPeak1:Number; private var _beatPeak2:Number; private var _time:int; private var _bestConfidence:Number; public var dbgSoundData:DebugSoundData; private var _lastBeatHistoryTime:Number; private var _visTime:int; private var _soundData:SoundData; private var _transitionTime:int; public static const DEBUG_SONG:int = -1; public static const VIS_DATA_FOLDER:String = "http://flash.ngfiles.com/"; public static const DEBUG_SONGS:Array = []; public static const DEBUG:Boolean = false; public static const VIS_CHANGED:String = "visChanged"; public static const VERSION:String = "1.1"; public function AudioVisualizer(_arg1:uint, _arg2:uint, _arg3:Array, _arg4=undefined):void{ addEventListener("enterFrame", visualizerTick); _transitionTime = (_visTime = 0); _lastBeatTime = 0; _visPlaylist = _arg3; this.w = _arg1; this.h = _arg2; _transitionBitmap = new BitmapData(_arg1, _arg2); _transitionSprite = new Sprite(); createVis(_arg1, _arg2, _arg4); _time = getTimer(); _BDTime = 0; _visTransitionTime = 0; _beatPeak1 = (_beatPeak1Peak = (_beatPeak2 = 0)); _fullScreen = false; } public function getBeat():Boolean{ return (_beat); } public function nextVis():void{ _visNumber = ((_visNumber + 1) % _visPlaylist.length); changeVis(_visPlaylist[_visNumber]); } public function addedHandler(_arg1:Event):void{ } public function set visualization(_arg1:String):void{ var _local2:uint; _visNumber = -1; _local2 = 0; while (_local2 < _visPlaylist.length) { if (_visPlaylist[_local2] == _arg1){ _visNumber = _local2; }; _local2++; }; changeVis(_arg1); } private function changeVis(_arg1:String, _arg2:uint=999):void{ var _local3:Class; _local3 = (getDefinitionByName(("mwelsh.audio.visualizer.visualizations." + _arg1)) as Class); _vis1 = new _local3(w, h); _buffer1 = _vis1.bitmapData; _transitionType = _arg2; _visTime = 0; dispatchEvent(new Event(VIS_CHANGED)); } public function resetBeatDetection():void{ _beatDetection = true; initSmartBeatDetection(); } private function doubleBpm():void{ var _local1:uint; var _local2:Array; if (((_bpmSticky) && ((_bpm > MIN_BPM)))){ return; }; trace("DOUBLE"); _local2 = []; _local1 = 0; while (_local1 < (BEAT_HISTORY_LEN - 1)) { _local2[_local1] = (_beatTimeHistory[_local1] - _beatTimeHistory[(_local1 + 1)]); _local1++; }; _local1 = 1; while (_local1 < BEAT_HISTORY_LEN) { _beatTimeHistory[_local1] = (_beatTimeHistory[(_local1 - 1)] - (_local2[(_local1 - 1)] / 2)); _local1++; }; _averageBeatTime = (_averageBeatTime / 2); _bpm = (_bpm * 2); _bpmDoubleCount = 0; _bpmHistory = []; _beatDiscriminatedHistory = []; } public function cleanup():void{ _vis0 = null; _vis1 = null; _buffer0 = (_buffer1 = (_screen = null)); removeEventListener("enterFrame", visualizerTick); removeChildAt(0); } private function halfBpm():void{ var _local1:uint; var _local2:Array; if (((_bpmSticky) && ((_bpm < MAX_BPM)))){ return; }; trace("HALF"); _local2 = []; _local1 = 0; while (_local1 < (BEAT_HISTORY_LEN - 1)) { _local2[_local1] = (_beatTimeHistory[_local1] - _beatTimeHistory[(_local1 + 1)]); _local1++; }; _local1 = 1; while (_local1 < BEAT_HISTORY_LEN) { _beatTimeHistory[_local1] = (_beatTimeHistory[(_local1 - 1)] - (_local2[(_local1 - 1)] * 2)); _local1++; }; _averageBeatTime = (_averageBeatTime * 2); _bpm = (_bpm / 2); _bpmHalfCount = 0; _bpmHistory = []; _beatDiscriminatedHistory = []; } public function getSoundData():SoundData{ return (_soundData); } public function getBPM():Number{ return (0); } public function prevVis():void{ _visNumber = ((_visNumber - 1) % _visPlaylist.length); changeVis(_visPlaylist[_visNumber]); } private function fullScreenHandler(_arg1:Event):void{ } public function pauseBeatDetection():void{ _beatDetection = false; } public function get visualization():String{ if (_visNumber < 0){ return (null); }; return (_visPlaylist[_visNumber]); } private function initSmartBeatDetection():void{ _bpm = 0; _bpmHistory = []; _beatTimeHistory = []; _beatDiscriminatedHistory = []; _beatTypeHistory = []; _lastPredictedBeatTime = 0; _lastBeatHistoryTime = 0; _bpmSticky = false; _confidence = (_bestConfidence = 0); _averageBeatTime = 0; _topConfidenceCount = 0; _predictionBpm = 0; _beatsGuessed = 0; _bpmHalfCount = (_bpmDoubleCount = 0); _stickyConfidenceCount = 0; _resyncBpm = false; _predictedTimeUntilBeat = 0; } private function calcBpm():void{ var _local1:int; var _local2:Number; var _local3:uint; var _local4:uint; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local2 = 0; _local3 = 0; _local4 = 0; _local8 = 0; _local10 = 0; if (_beatTimeHistory.length != BEAT_HISTORY_LEN){ return; }; _local1 = 0; while (_local1 < (BEAT_HISTORY_LEN - 1)) { _local9 = (_beatTimeHistory[_local1] - _beatTimeHistory[(_local1 + 1)]); _local2 = (_local2 + _local9); _local10 = Math.max(_local9, _local10); _local8 = (_local8 + (_local9 * _local9)); _local1++; }; _averageBeatTime = (_local2 / (BEAT_HISTORY_LEN - 1)); _local1 = 0; while (_local1 < BEAT_HISTORY_LEN) { if (_beatTypeHistory[_local1]){ _local3++; }; _local1++; }; _local5 = Math.min(((2 * _local3) / BEAT_HISTORY_LEN), 1); _local6 = Math.sqrt(((_local8 / (BEAT_HISTORY_LEN - 1)) - (_averageBeatTime * _averageBeatTime))); _local7 = (1 - (_local6 / _local10)); _confidence = Math.max(0, (((2 * _local5) * _local7) - 1)); _local2 = 0; _local9 = 0; _local1 = 0; while (_local1 < (BEAT_HISTORY_LEN - 1)) { _local9 = (_local9 + (_beatTimeHistory[_local1] - _beatTimeHistory[(_local1 + 1)])); if (Math.abs((_averageBeatTime - _local9)) < _local6){ _local2 = (_local2 + _local9); _local4++; _local9 = 0; } else { if (_local9 > _averageBeatTime){ _local9 = 0; }; }; _local1++; }; if (_local4){ _averageBeatTime = (_local2 / _local4); }; if (_beatsGuessed >= (BEAT_HISTORY_LEN + 2)){ _local11 = _bpm; if (_averageBeatTime){ _local11 = (60 / _averageBeatTime); }; if (((!(_bpmHistory.length)) || (!((_local11 == _bpmHistory[0]))))){ _bpmHistory.unshift(_local11); if (_bpmHistory.length > BPM_HISTORY_LEN){ _bpmHistory.pop(); }; }; if (((_predictionBpm) && ((_confidence >= 0.85)))){ _stickyConfidenceCount++; if (_stickyConfidenceCount == 8){ _bpmSticky = true; trace("STICKED"); trace(_predictionBpm); }; } else { _stickyConfidenceCount = 0; }; }; _bpm = 0; _local1 = 0; while (_local1 < _bpmHistory.length) { _bpm = (_bpm + _bpmHistory[_local1]); _local1++; }; _bpm = (_bpm / _bpmHistory.length); _local4 = 0; _local1 = 0; while (_local1 < BEAT_HISTORY_LEN) { if (_beatDiscriminatedHistory[_local1]){ _local4++; }; _local1++; }; if (_bpmHistory.length){ if ((((_local4 >= (BEAT_HISTORY_LEN / 2))) && (((_bpm * 2) <= MAX_BPM)))){ doubleBpm(); _beatDiscriminatedHistory = []; }; if (_bpm < MIN_BPM){ _bpmDoubleCount++; if (_bpmDoubleCount > 4){ doubleBpm(); }; } else { _bpmDoubleCount = 0; }; if (_bpm > MAX_BPM){ _bpmHalfCount++; if (_bpmHalfCount > 4){ halfBpm(); }; } else { _bpmHalfCount = 0; }; }; } public function getBitmapData():BitmapData{ return (_screen); } public function unpauseBeatDetection():void{ _beatDetection = true; } public function set fullscreen(_arg1:Boolean):void{ _fullScreen = _arg1; if (stage){ if (_fullScreen){ }; }; } private function visualizerTick(_arg1:Event):void{ var _local2:uint; var _local3:Number; var _local4:Matrix; var _local5:Number; var _local6:Number; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:Visualization; _local2 = (getTimer() - _time); _local3 = (_local2 / 1000); _time = (_time + _local2); _BDTime = (_BDTime + _local3); if (!_vis0){ return; }; _soundData = new SoundData(_beat, 0); _beat = false; if (_beatDetection){ _beat = beatDetect(_soundData, _local2); _soundData.beat = _beat; _beat = refineBeat(_beat); if (_beat){ _predictedTimeUntilBeat = (60 / _predictionBpm); } else { _predictedTimeUntilBeat = (_predictedTimeUntilBeat - _local3); if (_predictedTimeUntilBeat < 0){ _predictedTimeUntilBeat = (_predictedTimeUntilBeat + (60 / _predictionBpm)); }; }; }; _soundData.bpm = _predictionBpm; _soundData.smartBeat = _beat; _soundData.predictedTimeUntilBeat = _predictedTimeUntilBeat; if (_vis1 == null){ _visTime = (_visTime + _local2); if (((((((((_visTransitionTime) && ((_visTime >= _visTransitionTime)))) && ((_visNumber >= 0)))) && ((_visNumber < _visPlaylist.length)))) && ((_visPlaylist.length > 1)))){ _visNumber = ((_visNumber + 1) % _visPlaylist.length); _visTime = 0; changeVis(_visPlaylist[_visNumber], uint((Math.random() * NUM_TRANSITIONS))); }; }; if (_vis0.loaded){ _vis0.tick(_local3, _soundData); }; _screen.lock(); _screen.copyPixels(_buffer0, new Rectangle(0, 0, width, height), new Point()); if (((_vis1) && (_vis1.loaded))){ _transitionTime = (_transitionTime + _local2); _vis1.tick(_local3, _soundData); switch (_transitionType){ case TRANSITION_FADE: _screen.draw(_buffer1, null, new ColorTransform(1, 1, 1, (_transitionTime / VIS_FADE_TIME))); break; case TRANSITION_SCROLL0: _local4 = new Matrix(); _local4.createGradientBox(w, h, 0, ((((_transitionTime / VIS_FADE_TIME) * w) * 1.5) - ((1.5 * w) / 2))); _transitionSprite.graphics.clear(); _transitionSprite.graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xFFFFFF], [1, 0], [100, 155], _local4); _transitionSprite.graphics.lineTo(w, 0); _transitionSprite.graphics.lineTo(w, h); _transitionSprite.graphics.lineTo(0, h); _transitionSprite.graphics.lineTo(0, 0); _transitionSprite.graphics.endFill(); _transitionBitmap.fillRect(_transitionBitmap.rect, 0); _transitionBitmap.draw(_transitionSprite); _screen.copyPixels(_buffer1, _buffer1.rect, new Point(), _transitionBitmap, new Point(), true); break; case TRANSITION_SCROLL1: _local4 = new Matrix(); _local4.createGradientBox(w, h, 0, (((w * 1.5) / 2) - (((_transitionTime / VIS_FADE_TIME) * w) * 1.5))); _transitionSprite.graphics.clear(); _transitionSprite.graphics.beginGradientFill(GradientType.LINEAR, [0xFFFFFF, 0xFFFFFF], [0, 1], [100, 155], _local4); _transitionSprite.graphics.lineTo(w, 0); _transitionSprite.graphics.lineTo(w, h); _transitionSprite.graphics.lineTo(0, h); _transitionSprite.graphics.lineTo(0, 0); _transitionSprite.graphics.endFill(); _transitionBitmap.fillRect(_transitionBitmap.rect, 0); _transitionBitmap.draw(_transitionSprite); _screen.copyPixels(_buffer1, _buffer1.rect, new Point(), _transitionBitmap, new Point(), true); break; case TRANSITION_SCROLL3: _screen.copyPixels(_buffer1, new Rectangle(Math.round((w * (1 - (_transitionTime / VIS_FADE_TIME)))), 0, Math.round(((w * _transitionTime) / VIS_FADE_TIME)), h), new Point(Math.round((w * (1 - (_transitionTime / VIS_FADE_TIME)))), 0)); break; case TRANSITION_DISSOLVE: _local5 = 10; _local9 = 0; while (_local9 < ((60 * _transitionTime) / VIS_FADE_TIME)) { _local5 = _screen.pixelDissolve(_buffer1, _buffer1.rect, new Point(), _local5, uint(((w * h) / 60))); _local9++; }; break; case TRANSITION_COLUMNWIPE: _local9 = 0; while (_local9 < 10) { _screen.copyPixels(_buffer1, new Rectangle(Math.round(((_local9 * w) / 10)), 0, (w / 10), (h * Math.min(((2 * _transitionTime) / VIS_FADE_TIME)))), new Point(Math.round(((_local9 * w) / 10)), 0)); _local9 = (_local9 + 2); }; if ((_transitionTime / VIS_FADE_TIME) > 0.5){ _local9 = 1; while (_local9 < 10) { _screen.copyPixels(_buffer1, new Rectangle(Math.round(((_local9 * w) / 10)), Math.round((h - ((h * 2) * ((_transitionTime / VIS_FADE_TIME) - 0.5)))), (w / 10), Math.round(((h * 2) * ((_transitionTime / VIS_FADE_TIME) - 0.5)))), new Point(Math.round(((_local9 * w) / 10)), Math.round((h - ((h * 2) * ((_transitionTime / VIS_FADE_TIME) - 0.5)))))); _local9 = (_local9 + 2); }; }; break; case TRANSITION_SQUARES: _local6 = 0; _local7 = 0; _local8 = 0; while (_local6 < (_transitionTime / VIS_FADE_TIME)) { _screen.copyPixels(_buffer1, new Rectangle(((_local7 * w) / 10), ((_local8 * h) / 10), (w / 10), (h / 10)), new Point(((_local7 * w) / 10), ((_local8 * h) / 10))); ++_local7; if (_local7 == 10){ _local7 = 0; _local8++; }; _local6 = (_local6 + (1 / 100)); }; break; case TRANSITION_SPINOUT: _local4 = new Matrix(); _local4.translate((w - ((w * _transitionTime) / VIS_FADE_TIME)), (h - ((h * _transitionTime) / VIS_FADE_TIME))); _local4.scale((_transitionTime / VIS_FADE_TIME), (_transitionTime / VIS_FADE_TIME)); _screen.draw(_buffer1, _local4); break; default: _transitionTime = VIS_FADE_TIME; }; if (_transitionTime >= VIS_FADE_TIME){ _local10 = null; _buffer0 = _buffer1; _buffer1 = null; _vis0 = _vis1; _vis1 = null; _transitionTime = 0; }; }; _screen.unlock(); } public function set transitionTime(_arg1:uint):void{ _visTransitionTime = (_arg1 * 1000); } private function createVis(_arg1:uint, _arg2:uint, _arg3:String):void{ var _local4:Class; var _local5:uint; if (_screen){ removeChildAt(0); }; if ((((_arg3 == "")) || ((_arg3 == null)))){ _visNumber = uint((_visPlaylist.length * Math.random())); } else { _local5 = 0; while (_local5 < _visPlaylist.length) { if (_visPlaylist[_local5] == _arg3){ _visNumber = _local5; }; _local5++; }; }; _local4 = (getDefinitionByName(("mwelsh.audio.visualizer.visualizations." + _visPlaylist[_visNumber])) as Class); _vis0 = new _local4(_arg1, _arg2); _buffer0 = _vis0.bitmapData; _screen = new BitmapData(_arg1, _arg2); addChild(new Bitmap(_screen)); } public function get fullscreen():Boolean{ return (_fullScreen); } private function refineBeat(_arg1:Boolean):Boolean{ var _local2:Boolean; var _local3:Boolean; var _local4:Boolean; var _local5:Boolean; var _local6:Boolean; var _local7:uint; var _local8:Number; var _local9:Number; var _local10:uint; _local2 = false; _local3 = false; _local4 = false; _local5 = false; _local6 = false; if (((_bpm) && ((_BDTime >= (_lastPredictedBeatTime + (60 / _bpm)))))){ _local3 = true; }; if (_arg1){ _local2 = BeatHistoryStep(true); }; calcBpm(); if (((((((_local2) || (_local3))) && (!(_bpmSticky)))) && (((((!(_predictionBpm)) || ((_predictionBpm > MAX_BPM)))) || ((_predictionBpm < MIN_BPM)))))){ _local6 = (_confidence >= _bestConfidence); }; if (_confidence >= 0.5){ _topConfidenceCount++; if (_topConfidenceCount == 8){ _local6 = true; _topConfidenceCount = 0; }; }; if (_local6){ _local6 = false; _bestConfidence = _confidence; _predictionBpm = _bpm; }; if (!_bpmSticky){ _predictionBpm = _bpm; }; _bpm = _predictionBpm; if (((((_predictionBpm) && (_local2))) && (!(_local3)))){ if (_BDTime > (_lastPredictedBeatTime + ((60 / _predictionBpm) * 0.7))){ _local4 = true; _local8 = (_predictionBpm * 1.01); }; if (_BDTime < (_lastPredictedBeatTime + ((60 / _predictionBpm) * 0.3))){ _local5 = true; _local8 = (_predictionBpm * 0.98); }; if (((((!(_bpmSticky)) && (_resyncBpm))) && (((_local4) || (_local5))))){ _bpmHistory.unshift(_local8); _local9 = 0; _local10 = 0; while (_local10 < BPM_HISTORY_LEN) { _local9 = (_local9 + _bpmHistory[_local10]); _local10++; }; _local9 = (_local9 / BPM_HISTORY_LEN); _predictionBpm = _local9; }; }; if (_local4){ _lastPredictedBeatTime = _BDTime; _resyncBpm = true; return (true); }; if (_local3){ _lastPredictedBeatTime = _BDTime; if (_confidence > 0.25){ BeatHistoryStep(false); }; _resyncBpm = false; return (true); } else { if (_local5){ _lastPredictedBeatTime = _BDTime; _resyncBpm = true; return (false); }; }; return (_arg1); } public function get transitionTime():uint{ return ((_visTransitionTime / 1000)); } private function BeatHistoryStep(_arg1:Boolean):Boolean{ var _local2:int; var _local3:int; var _local4:Number; _local4 = (_BDTime - _lastBeatHistoryTime); if (_local4 < ((3 * _averageBeatTime) / 10)){ if (_beatTimeHistory.length == BEAT_HISTORY_LEN){ if (Math.abs((_averageBeatTime - (_BDTime - _beatTimeHistory[1]))) < Math.abs((_averageBeatTime - (_beatTimeHistory[0] - _beatTimeHistory[1])))){ _beatTimeHistory[0] = _BDTime; _beatTypeHistory[0] = _arg1; return (true); }; }; return (false); }; if (_beatTimeHistory.length == BEAT_HISTORY_LEN){ _local3 = 2; while (_local3 < 8) { if (Math.abs(((_averageBeatTime / _local3) - _local4)) < ((_averageBeatTime / _local3) * 0.2)){ _beatDiscriminatedHistory.unshift(true); if (_beatDiscriminatedHistory.length > BEAT_HISTORY_LEN){ _beatDiscriminatedHistory.pop(); }; return (false); }; _local3++; }; }; _beatDiscriminatedHistory.unshift(false); if (_beatDiscriminatedHistory.length > BEAT_HISTORY_LEN){ _beatDiscriminatedHistory.pop(); }; _lastBeatHistoryTime = _BDTime; _beatTimeHistory.unshift(_BDTime); _beatTypeHistory.unshift(_arg1); _beatsGuessed++; if (_beatTimeHistory.length > BEAT_HISTORY_LEN){ _beatTimeHistory.pop(); _beatTypeHistory.pop(); }; return (true); } protected function beatDetect(_arg1:SoundData, _arg2:uint):Boolean{ var _local3:Number; var _local4:Boolean; _local3 = _arg1.energy; _local4 = false; _beatPeak1 = (((_beatPeak1 * 121) + (_beatPeak2 * 7)) / 128); if ((((_local3 >= (_beatPeak1 * 1.0425))) && ((_local3 > (0x0100 * 16))))){ _beatPeak1 = ((_local3 + _beatPeak1Peak) / 2); _beatPeak1Peak = (_beatPeak1 * 1); _local4 = true; } else { if (_local3 > _beatPeak2){ _beatPeak2 = _local3; } else { _beatPeak2 = (_beatPeak2 * 0.86); }; }; if (_local4){ if ((_BDTime - _lastBeatTime) < MIN_BEAT_TIME){ _local4 = false; } else { _lastBeatTime = _BDTime; }; }; return (_local4); } } }//package mwelsh.audio.visualizer
Section 16
//DebugSoundData (mwelsh.audio.visualizer.DebugSoundData) package mwelsh.audio.visualizer { public class DebugSoundData extends SoundData { public var numSubbands:uint; public var avgEnergy:Array; public var numEnergies:uint; public var subbandStep:Number; public var beatVarianceThreshold:Number; public var curEnergy:Array; public var subbandStepRate:Number; public var varEnergy:Array; public var fftAvgEnergy:Number; public var beatConstant:Number; public function DebugSoundData(_arg1:Boolean, _arg2:Number){ super(_arg1, _arg2); } } }//package mwelsh.audio.visualizer
Section 17
//SoundData (mwelsh.audio.visualizer.SoundData) package mwelsh.audio.visualizer { import mwelsh.audio.*; import flash.media.*; import flash.utils.*; public class SoundData { private var _rightEnergy:Number; private var m_PredictedTimeUntilBeat:Number; private var _leftEnergy:Number; private var _beat:Boolean; private var _rawLeftData:Array; private var _bpm:Number; private var _fftLeftData:Array; private var _smartBeat:Boolean; private var _fftAvgData:Array; private var _fftRightData:Array; private var _rawAvgData:Array; private var _rawRightData:Array; private static const ENERGY_MODE:uint = 0; public function SoundData(_arg1:Boolean, _arg2:Number){ m_PredictedTimeUntilBeat = -1; _beat = _arg1; _bpm = _arg2; captureData(); } public function set bpm(_arg1:uint):void{ _bpm = _arg1; } private function captureData():void{ var soundData1:ByteArray; var soundData2:ByteArray; var randomData:Boolean; var i:uint; var j:uint; var soundFreq:Array; var lastD:Number; var newD:Number; randomData = false; soundData1 = new ByteArray(); soundData2 = new ByteArray(); if (!SoundMixer.areSoundsInaccessible()){ try { SoundMixer.computeSpectrum(soundData1, false); SoundMixer.computeSpectrum(soundData2, true, 1); } catch(e:SecurityError) { trace("computeSpectrum security error in SoundData!"); randomData = true; }; } else { randomData = true; }; if (randomData){ if (AudioManager.AmIPlaying()){ lastD = 0; j = 0; while (j < 2) { i = 0; while (i < 0x0100) { newD = ((Math.random() * 3) - 1.5); var _local2 = (lastD + ((newD - lastD) / 8)); lastD = _local2; soundData1.writeFloat(_local2); soundData2.writeFloat((Math.random() * Math.pow((1 - (i / 0xFF)), 1.4))); i = (i + 1); }; j = (j + 1); }; } else { i = 0; while (i < 0x0200) { soundData1.writeFloat(0); soundData2.writeFloat(0); i = (i + 1); }; }; soundData1.position = 0; soundData2.position = 0; }; _leftEnergy = (_rightEnergy = 0); soundFreq = new Array(4); _rawLeftData = new Array(0x0100); _rawRightData = new Array(0x0100); _fftLeftData = new Array(0x0100); _fftRightData = new Array(0x0100); _rawAvgData = new Array(0x0100); _fftAvgData = new Array(0x0100); i = 0; while (i < 0x0100) { _rawLeftData[i] = soundData1.readFloat(); _fftLeftData[i] = soundData2.readFloat(); _leftEnergy = (_leftEnergy + (Math.abs(_rawLeftData[i]) * 128)); i = (i + 1); }; i = 0; while (i < 0x0100) { _rawRightData[i] = soundData1.readFloat(); _fftRightData[i] = soundData2.readFloat(); _rawAvgData[i] = ((_rawLeftData[i] + _rawRightData[i]) / 2); _fftAvgData[i] = ((_fftLeftData[i] + _fftRightData[i]) / 2); _rightEnergy = (_rightEnergy + (Math.abs(_rawRightData[i]) * 128)); i = (i + 1); }; } public function get rawAvg():Array{ return (_rawAvgData); } public function get rawRight():Array{ return (_rawRightData); } public function get rawLeft():Array{ return (_rawLeftData); } public function get fftRight():Array{ return (_fftRightData); } public function get fftLeft():Array{ return (_fftLeftData); } public function get predictedTimeUntilBeat():Number{ return (m_PredictedTimeUntilBeat); } public function get bpm():uint{ return (_bpm); } public function set predictedTimeUntilBeat(_arg1:Number):void{ m_PredictedTimeUntilBeat = _arg1; } public function set smartBeat(_arg1:Boolean):void{ _smartBeat = _arg1; } public function set beat(_arg1:Boolean):void{ _beat = _arg1; } public function getTotalSubbandEnergy(_arg1:uint=0, _arg2:uint=0x0100, _arg3:uint=2):Number{ var _local4:uint; var _local5:Number; _local5 = 0; if (_arg3 == 2){ _local4 = _arg1; while (_local4 < _arg2) { _local5 = (_local5 + (_fftAvgData[_local4] * _fftAvgData[_local4])); _local4++; }; } else { if (_arg3 == 1){ _local4 = _arg1; while (_local4 < _arg2) { _local5 = (_local5 + (_fftRightData[_local4] * _fftRightData[_local4])); _local4++; }; } else { _local4 = _arg1; while (_local4 < _arg2) { _local5 = (_local5 + (_fftLeftData[_local4] * _fftLeftData[_local4])); _local4++; }; }; }; return (_local5); } public function get energy():Number{ return (Math.max(_leftEnergy, _rightEnergy)); } public function get beat():Boolean{ return (_beat); } public function get smartBeat():Boolean{ return (_smartBeat); } public function generateSmoothedData(_arg1:uint, _arg2:Boolean, _arg3:uint=2):Array{ var _local4:Array; var _local5:Array; var _local6:uint; var _local7:int; _local4 = []; if (_arg2){ if (_arg3 == 0){ _local5 = _fftLeftData; } else { if (_arg3 == 1){ _local5 = _fftRightData; } else { _local5 = _fftAvgData; }; }; } else { if (_arg3 == 0){ _local5 = _rawLeftData; } else { if (_arg3 == 1){ _local5 = _rawRightData; } else { _local5 = _rawAvgData; }; }; }; _local6 = 0; while (_local6 < 0x0100) { _local4[_local6] = 0; _local6++; }; _local6 = 0; while (_local6 < 0x0100) { _local7 = Math.max(0, (_local6 - _arg1)); while (_local7 <= Math.min(0xFF, (_local6 + _arg1))) { _local4[_local6] = (_local4[_local6] + _local5[_local7]); _local7++; }; _local4[_local6] = (_local4[_local6] / ((_arg1 * 2) + 1)); _local6++; }; return (_local4); } public function get fftAvg():Array{ return (_fftAvgData); } public function getSubbandEnergy(_arg1:uint=0, _arg2:uint=0x0100, _arg3:uint=2):Number{ var _local4:uint; var _local5:Number; _local5 = 0; if (_arg3 == 2){ _local4 = _arg1; while (_local4 < _arg2) { _local5 = (_local5 + (_fftAvgData[_local4] * _fftAvgData[_local4])); _local4++; }; } else { if (_arg3 == 1){ _local4 = _arg1; while (_local4 < _arg2) { _local5 = (_local5 + (_fftRightData[_local4] * _fftRightData[_local4])); _local4++; }; } else { _local4 = _arg1; while (_local4 < _arg2) { _local5 = (_local5 + (_fftLeftData[_local4] * _fftLeftData[_local4])); _local4++; }; }; }; return ((_local5 / (_arg2 - _arg1))); } } }//package mwelsh.audio.visualizer
Section 18
//AudioManager (mwelsh.audio.AudioManager) package mwelsh.audio { import flash.display.*; import flash.events.*; import flash.media.*; import flash.net.*; import flash.utils.*; import flash.errors.*; public class AudioManager extends EventDispatcher { private var m_SongEndTime:int; private var m_SongPosition:uint; private var m_Status:uint; private var m_SoundChannel:SoundChannel; private var m_Filename:String; private var m_Ticker:DisplayObject; private var m_Volume:Number;// = 1 private var m_GivenLength:uint; private var m_Looping:Boolean; private var m_MusicData:Sound; private var m_Time:uint;// = 0 private static const SONG_STOPPED = 0; private static const SONG_PLAYING = 1; public static const SONG_COMPLETE_EVENT:String = "songCompleteEvent"; private static const SONG_PAUSED = 2; public static var m_Instance:AudioManager; public function AudioManager():void{ m_Volume = 1; m_Time = 0; super(); m_Status = SONG_STOPPED; m_Looping = false; m_SongPosition = 0; m_Ticker = new Sprite(); m_Ticker.addEventListener("enterFrame", checkLoop); m_Instance = this; } public function stop():void{ if (!m_MusicData){ return; }; m_Status = SONG_STOPPED; m_SongPosition = 0; if (m_SoundChannel){ m_SoundChannel.removeEventListener("soundComplete", songComplete); m_SoundChannel.stop(); m_SoundChannel = null; }; } public function get volume():Number{ return (m_Volume); } public function get music():String{ return (m_Filename); } public function get position():uint{ if (m_SoundChannel){ return (m_SoundChannel.position); }; return (m_SongPosition); } private function cleanupMusicData(_arg1:Event=null):void{ if (m_MusicData){ m_MusicData.close(); m_MusicData.removeEventListener(IOErrorEvent.IO_ERROR, cleanupMusicData); m_MusicData.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, cleanupMusicData); m_MusicData = null; if (m_SoundChannel){ m_SoundChannel.stop(); m_SoundChannel = null; }; }; } public function get lengthDownloaded():uint{ if (m_MusicData){ return (m_MusicData.length); }; return (0); } public function set volume(_arg1:Number):void{ m_Volume = _arg1; if (m_SoundChannel){ m_SoundChannel.soundTransform = new SoundTransform(_arg1); }; } public function play():void{ if (!m_MusicData){ return; }; if (m_Status == SONG_PAUSED){ pause(); } else { if (m_Status == SONG_PLAYING){ stop(); }; m_SoundChannel = m_MusicData.play(m_SongPosition); m_SoundChannel.soundTransform = new SoundTransform(m_Volume); m_SoundChannel.addEventListener("soundComplete", songComplete); m_Status = SONG_PLAYING; if (downloadComplete){ m_SongEndTime = ((getTimer() + m_MusicData.length) - m_SongPosition); }; }; } public function get looping():Boolean{ return (m_Looping); } public function set position(_arg1:uint){ if (!m_MusicData){ return; }; m_SongPosition = Math.min((length - 50), _arg1); if (m_Status == SONG_PLAYING){ if (m_SoundChannel){ m_SoundChannel.stop(); m_SoundChannel.removeEventListener("soundComplete", songComplete); }; m_SoundChannel = m_MusicData.play(m_SongPosition); m_SoundChannel.soundTransform = new SoundTransform(m_Volume); m_SoundChannel.addEventListener("soundComplete", songComplete); if (m_MusicData.bytesLoaded == m_MusicData.bytesTotal){ m_SongEndTime = ((getTimer() + length) - m_SongPosition); }; }; } public function set music(_arg1:String){ loadMusic(_arg1); } private function loadMusic(_arg1:String){ var lc:SoundLoaderContext; var file = _arg1; stop(); if (m_MusicData){ cleanupMusicData(); }; m_Filename = file; lc = new SoundLoaderContext(1000, true); try { m_MusicData = new Sound(new URLRequest(m_Filename), lc); m_MusicData.addEventListener(IOErrorEvent.IO_ERROR, cleanupMusicData); m_MusicData.addEventListener(SecurityErrorEvent.SECURITY_ERROR, cleanupMusicData); } catch(e:Error) { if ((((e is IOError)) && ((e.errorID == 2032)))){ m_MusicData.close(); }; trace((("Error loading music file " + m_Filename) + "!")); trace(e); cleanupMusicData(); }; } public function get downloadComplete():Boolean{ return (((((m_MusicData) && (m_MusicData.bytesTotal))) && ((m_MusicData.bytesLoaded == m_MusicData.bytesTotal)))); } public function set length(_arg1:uint):void{ m_GivenLength = _arg1; } public function get length():uint{ if (downloadComplete){ return (m_MusicData.length); }; if (m_GivenLength){ return (m_GivenLength); }; if (m_MusicData){ return ((m_MusicData.length / (m_MusicData.bytesLoaded / m_MusicData.bytesTotal))); }; return (0); } private function checkLoop(_arg1:Event){ var _local2:uint; var _local3:Number; _local2 = (getTimer() - m_Time); m_Time = (m_Time + _local2); if (((m_MusicData) && (m_SoundChannel))){ if ((((((m_SongEndTime == 0)) && ((m_Status == SONG_PLAYING)))) && (downloadComplete))){ m_SongEndTime = ((getTimer() + length) - m_SoundChannel.position); }; _local3 = (m_SongEndTime - getTimer()); if ((((((((((((m_Status == SONG_PLAYING)) && ((m_MusicData.length > 0)))) && ((m_MusicData.bytesLoaded == m_MusicData.bytesTotal)))) && (m_Looping))) && (m_SongEndTime))) && ((_local3 <= 100)))){ trace("LOOP"); m_SoundChannel.removeEventListener("soundComplete", songComplete); m_SoundChannel = m_MusicData.play(0); m_SoundChannel.soundTransform = new SoundTransform(m_Volume); m_SoundChannel.addEventListener("soundComplete", songComplete); m_SongPosition = 0; m_SongEndTime = ((getTimer() + m_MusicData.length) - m_SongPosition); }; }; } public function get status():uint{ return (m_Status); } private function songComplete(_arg1:Event=null):void{ dispatchEvent(new Event(SONG_COMPLETE_EVENT)); stop(); if (m_Looping){ play(); }; } public function pause():void{ if (m_Status == SONG_PAUSED){ if (!m_MusicData){ return; }; m_SoundChannel = m_MusicData.play(m_SongPosition); m_SoundChannel.soundTransform = new SoundTransform(m_Volume); if (downloadComplete){ m_SongEndTime = (((getTimer() + m_MusicData.length) - m_SongPosition) - 100); }; m_SoundChannel.addEventListener("soundComplete", songComplete); m_Status = SONG_PLAYING; } else { if (!m_MusicData){ return; }; m_Status = SONG_PAUSED; if (m_SoundChannel){ m_SoundChannel.stop(); m_SoundChannel.removeEventListener("soundComplete", songComplete); m_SongPosition = m_SoundChannel.position; m_SoundChannel = null; } else { m_SongPosition = 0; }; }; } public function set looping(_arg1:Boolean):void{ m_Looping = _arg1; } public static function AmIPlaying():Boolean{ if (!m_Instance){ return (false); }; return ((m_Instance.status == SONG_PLAYING)); } } }//package mwelsh.audio
Section 19
//DistordImage (mwelsh.geom.DistordImage) package mwelsh.geom { import flash.display.*; import flash.geom.*; public class DistordImage extends Sprite { private var _tri:Array; private var _vseg:Number; private var _yMin; private var _hsLen:Number; private var _yMax:Number; private var _vsLen:Number; private var _tMat:Matrix; private var _s:Shape; private var _xMin; private var _xMax; private var _sMat:Matrix; private var _hseg:Number; private var _h:Number; private var _texture:BitmapData; private var _p:Array; private var _w:Number; public function DistordImage(_arg1:BitmapData, _arg2:Number, _arg3:Number){ _s = new Shape(); addChild(_s); _texture = _arg1; _vseg = _arg2; _hseg = _arg3; _w = _texture.width; _h = _texture.height; __init(); } private function __init():void{ var _local1:uint; var _local2:uint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _p = new Array(); _tri = new Array(); _local3 = (_w / 2); _local4 = (_h / 2); _xMin = (_yMin = 0); _xMax = _w; _yMax = _h; _hsLen = (_w / (_hseg + 1)); _vsLen = (_h / (_vseg + 1)); _local1 = 0; while (_local1 < (_vseg + 2)) { _local2 = 0; while (_local2 < (_hseg + 2)) { _local5 = (_local1 * _hsLen); _local6 = (_local2 * _vsLen); _p.push({x:_local5, y:_local6, sx:_local5, sy:_local6}); _local2++; }; _local1++; }; _local1 = 0; while (_local1 < (_vseg + 1)) { _local2 = 0; while (_local2 < (_hseg + 1)) { _tri.push([_p[(_local2 + (_local1 * (_hseg + 2)))], _p[((_local2 + (_local1 * (_hseg + 2))) + 1)], _p[(_local2 + ((_local1 + 1) * (_hseg + 2)))]]); _tri.push([_p[((_local2 + ((_local1 + 1) * (_hseg + 2))) + 1)], _p[(_local2 + ((_local1 + 1) * (_hseg + 2)))], _p[((_local2 + (_local1 * (_hseg + 2))) + 1)]]); _local2++; }; _local1++; }; __render(); } public function setTransform(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{ var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Object; var _local17:*; var _local18:*; var _local19:*; var _local20:*; _local9 = _w; _local10 = _h; _local11 = (_arg7 - _arg1); _local12 = (_arg8 - _arg2); _local13 = (_arg5 - _arg3); _local14 = (_arg6 - _arg4); _local15 = _p.length; while (--_local15 > -1) { _local16 = _p[_local15]; _local17 = ((_local16.x - _xMin) / _local9); _local18 = ((_local16.y - _yMin) / _local10); _local19 = (_arg1 + (_local18 * _local11)); _local20 = (_arg2 + (_local18 * _local12)); _local16.sx = (_local19 + (_local17 * ((_arg3 + (_local18 * _local13)) - _local19))); _local16.sy = (_local20 + (_local17 * ((_arg4 + (_local18 * _local14)) - _local20))); }; __render(); } private function __render():void{ var _local1:Number; var _local2:Array; var _local3:*; var _local4:*; var _local5:Object; var _local6:Graphics; var _local7:Array; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local6 = _s.graphics; _local6.clear(); _sMat = new Matrix(); _tMat = new Matrix(); _local8 = _tri.length; while (--_local8 > -1) { _local7 = _tri[_local8]; _local3 = _local7[0]; _local4 = _local7[1]; _local5 = _local7[2]; _local9 = _local3.sx; _local10 = _local3.sy; _local11 = _local4.sx; _local12 = _local4.sy; _local13 = _local5.sx; _local14 = _local5.sy; _local15 = _local3.x; _local16 = _local3.y; _local17 = _local4.x; _local18 = _local4.y; _local19 = _local5.x; _local20 = _local5.y; _tMat.tx = _local15; _tMat.ty = _local16; _tMat.a = ((_local17 - _local15) / _w); _tMat.b = ((_local18 - _local16) / _w); _tMat.c = ((_local19 - _local15) / _h); _tMat.d = ((_local20 - _local16) / _h); _sMat.a = ((_local11 - _local9) / _w); _sMat.b = ((_local12 - _local10) / _w); _sMat.c = ((_local13 - _local9) / _h); _sMat.d = ((_local14 - _local10) / _h); _sMat.tx = _local9; _sMat.ty = _local10; _tMat.invert(); _tMat.concat(_sMat); _local6.beginBitmapFill(_texture, _tMat, false, false); _local6.moveTo(_local9, _local10); _local6.lineTo(_local11, _local12); _local6.lineTo(_local13, _local14); _local6.endFill(); }; } } }//package mwelsh.geom

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:67
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClipUses:3Used by:67
Symbol 5 GraphicUsed by:6
Symbol 6 MovieClipUses:5Used by:67
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:67
Symbol 9 GraphicUsed by:14
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClipUses:10Used by:14
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClipUses:12Used by:14
Symbol 14 MovieClip {abotdance_fla.abot_audioshoulderhorn_6}Uses:9 11 13Used by:67
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClipUses:15Used by:67
Symbol 17 GraphicUsed by:23
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClipUses:18Used by:23
Symbol 20 GraphicUsed by:23
Symbol 21 MovieClipUsed by:23
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10}Uses:17 19 20 21 22Used by:67
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClipUses:24Used by:67
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClipUses:26Used by:30
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:28Used by:30
Symbol 30 MovieClip {abotdance_fla.abot_medrangerumble2_14}Uses:27 29Used by:67
Symbol 31 GraphicUsed by:36
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:36
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:36
Symbol 36 MovieClip {abotdance_fla.abot_audiobasspeaker2_17}Uses:31 33 35Used by:67
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClipUses:37Used by:67
Symbol 39 GraphicUsed by:45
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:45
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:42Used by:45
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClip {abotdance_fla.abot_audiobasspeaker1_21}Uses:39 41 43 44Used by:67
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClipUses:46Used by:50
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:48Used by:50
Symbol 50 MovieClip {abotdance_fla.abot_midrangerumble1_24}Uses:47 49Used by:67
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:67
Symbol 53 GraphicUsed by:58
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClipUses:54Used by:58
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:56Used by:58
Symbol 58 MovieClip {abotdance_fla.abot_audioshoulderhorn1_28}Uses:53 55 57Used by:67
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:67
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClipUses:61Used by:67
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClipUses:63Used by:67
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:65Used by:67
Symbol 67 MovieClip {abotdance_fla.abot_audio_1}Uses:2 4 6 8 14 16 23 25 30 36 38 45 50 52 58 60 62 64 66Used by:Timeline
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68Used by:86 89
Symbol 70 GraphicUsed by:71
Symbol 71 MovieClipUses:70Used by:86 88
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClipUses:72Used by:86 89
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:86 89
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76Used by:86 89
Symbol 78 GraphicUsed by:79
Symbol 79 MovieClipUses:78Used by:86 89
Symbol 80 GraphicUsed by:81
Symbol 81 MovieClipUses:80Used by:86 89
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClip {abotdance_fla.darnell_head_44}Uses:82Used by:86 89
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClipUses:84Used by:86 89
Symbol 86 MovieClipUses:69 71 73 75 77 79 81 83 85Used by:90
Symbol 87 GraphicUsed by:89
Symbol 88 MovieClipUses:71Used by:89
Symbol 89 MovieClip {abotdance_fla.darnel_bop2_46}Uses:87 69 88 73 75 77 79 83 85 81Used by:90
Symbol 90 MovieClip {abotdance_fla.darnell_dances_35}Uses:86 89Used by:Timeline

Instance Names

"abot"Frame 1Symbol 67 MovieClip {abotdance_fla.abot_audio_1}
"darnell"Frame 1Symbol 90 MovieClip {abotdance_fla.darnell_dances_35}
"smask"Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10} Frame 1Symbol 19 MovieClip
"spos2"Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10} Frame 1Symbol 21 MovieClip
"spos3"Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10} Frame 1Symbol 21 MovieClip
"spos1"Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10} Frame 1Symbol 21 MovieClip
"spos0"Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10} Frame 1Symbol 21 MovieClip
"spos0"Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10} Frame 1Symbol 21 MovieClip
"tweeterL"Symbol 67 MovieClip {abotdance_fla.abot_audio_1} Frame 1Symbol 14 MovieClip {abotdance_fla.abot_audioshoulderhorn_6}
"screen"Symbol 67 MovieClip {abotdance_fla.abot_audio_1} Frame 1Symbol 23 MovieClip {abotdance_fla.abot_audiochest_10}
"midL"Symbol 67 MovieClip {abotdance_fla.abot_audio_1} Frame 1Symbol 30 MovieClip {abotdance_fla.abot_medrangerumble2_14}
"bassL"Symbol 67 MovieClip {abotdance_fla.abot_audio_1} Frame 1Symbol 36 MovieClip {abotdance_fla.abot_audiobasspeaker2_17}
"bassR"Symbol 67 MovieClip {abotdance_fla.abot_audio_1} Frame 1Symbol 45 MovieClip {abotdance_fla.abot_audiobasspeaker1_21}
"midR"Symbol 67 MovieClip {abotdance_fla.abot_audio_1} Frame 1Symbol 50 MovieClip {abotdance_fla.abot_midrangerumble1_24}
"tweeterR"Symbol 67 MovieClip {abotdance_fla.abot_audio_1} Frame 1Symbol 58 MovieClip {abotdance_fla.abot_audioshoulderhorn1_28}
"foot"Symbol 89 MovieClip {abotdance_fla.darnel_bop2_46} Frame 1Symbol 88 MovieClip
"gfx"Symbol 90 MovieClip {abotdance_fla.darnell_dances_35} Frame 1Symbol 86 MovieClip
"gfx"Symbol 90 MovieClip {abotdance_fla.darnell_dances_35} Frame 2Symbol 89 MovieClip {abotdance_fla.darnel_bop2_46}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 131 bytes "..$1$nh$cl0.hkW2ZkVwHE3kVFNo10."




https://swfchan.com/54/268481/info.shtml
Created: 15/7 -2026 06:00:09 Last modified: 15/7 -2026 06:00:09 Server time: 15/07 -2026 20:27:53