//Oleg Antipov //http://www.blog.anegmetex.com package game { import flash.display.MovieClip; import flash.events.*; import flash.text.*; dynamic public class preloader extends MovieClip { public function preloader() { // Используем функцию isUrl для проверки домена, //с которого запущена флешка if(!isUrl(["anegmetex.com", "www.anegmetex.com"])) // Если домен не правильный - выводим сообщение //о неправильном URL this.txt.text="BAD URL!"; else // функция Update обновляет процент загрузки addEventListener(Event.ENTER_FRAME, Update); } //Функция проверки домена с которого была запущена флешка public function isUrl(urls:Array):Boolean { var url:String = stage.loaderInfo.loaderURL; var urlStart:Number = url.indexOf("://")+3; var urlEnd:Number = url.indexOf("/", urlStart); var domain:String = url.substring(urlStart, urlEnd); var LastDot:Number = domain.lastIndexOf(".")-1; var domEnd:Number = domain.lastIndexOf(".", LastDot)+1; domain = domain.substring(domEnd, domain.length); for (var i:int = 0; i < urls.length; i++) if (domain == urls[i]) return true; return false; } public function Update(e : Event):void { var bytesLoaded:Number = stage.loaderInfo.bytesLoaded; var bytesTotal:Number = stage.loaderInfo.bytesTotal; var s:String = ""; var percent:Number = 0; //подсчитываем процент загрузки флешки if (bytesTotal>0) { percent = Math.floor(bytesLoaded/bytesTotal*100); s = percent+"%"; } // обновляем прогресс бар this.txt.text="LOADING... "+s; this.progressBar.gotoAndStop(percent+1); // Если флешка полностью загрузились, //то переходим на второй кадр if (bytesLoaded==bytesTotal || bytesTotal==0) { removeEventListener(Event.ENTER_FRAME, Update); if (parent is MovieClip) (parent as MovieClip).gotoAndStop(2); } } } }