package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.utils.getDefinitionByName; import Preloader_Movieclip; public class Preloader extends MovieClip { [Embed(source="preloader.swf")] internal var preloader_class:Class; internal var preloader_gui:Preloader_Movieclip; public function Preloader() { super(); stop(); preloader_gui=new preloader_class; addChild(preloader_gui); addEventListener(Event.ENTER_FRAME,update,false,0,true); } private function update(e:Event):void { var bl:uint=loaderInfo.bytesLoaded; var bt:uint=loaderInfo.bytesTotal; if(bt>0 && bl==bt) { removeEventListener(Event.ENTER_FRAME,update); removeChild(preloader_gui); nextFrame(); init();//no idea why i need an init function, but it plain doesn't work otherwise } else { preloader_gui.preloadbar_mc.scaleX=bl/bt; } } private function init():void { var mainClass:Class = Class(getDefinitionByName("main")); var mainMovie:Sprite = new mainClass(); addChild(mainMovie); } } }