![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2009
Сообщений: 122
|
Здравсвуйте
Есть код package { import flash.display.*; import flash.net.URLRequest; import flash.events.*; import flash.text.*; import flash.text.TextFormat; import flash.text.Font; public class Main extends Sprite { //--------------------------------------- // CLASS CONSTANTS //--------------------------------------- public static const APP_VERSION:String = "Loadin 0.1 - June 20, 2011"; //--------------------------------------- // PRIVATE VARIABLES //--------------------------------------- private var loader:Loader; private var progressOutput:TextField; private var progressOutputFormat = new TextFormat(); private var load_mc:MovieClip; //--------------------------------------- // CONSTRUCTOR //--------------------------------------- public function Main() { trace(APP_VERSION); createLoader(); createProgressIndicator(); load( new URLRequest("Module.swf") ); } //--------------------------------------- // PRIVATE METHODS //--------------------------------------- private function createLoader():void { loader = new Loader(); loader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, progressListener ); loader.contentLoaderInfo.addEventListener( Event.COMPLETE, completeListener ); loader.contentLoaderInfo.addEventListener( Event.INIT, initListener ); loader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, ioErrorListener ); } private function createProgressIndicator():void { progressOutputFormat.size = 18; progressOutputFormat.color = 0x00334D; progressOutputFormat.font = "Arial"; progressOutput = new TextField(); //progressOutput.text = "LOADING ..."; progressOutput.defaultTextFormat = progressOutputFormat; progressOutput.x = stage.stageWidth / 2 - 80; progressOutput.y = stage.stageHeight / 2 - 40; progressOutput.width = 200; var bytes_Loaded:Number = stage.loaderInfo.bytesLoaded; // перемнная, хранящая число загруженых байт нашего мувика var bytes_Total:Number = stage.loaderInfo.bytesTotal; // переменная, хранящая обьём фильма (в байтах) var s:String = ""; var percent:Number = 0; if ( bytes_Total > 0 ) { // проверяем, узнал ли фильм о своём молном размере, чтобы мы не делили на ноль percent = Math.floor( bytes_Loaded / bytes_Total * 100 ); //Считаем сколько процентов уже загрузилось, округляем до целых s = percent+"%" trace(s) } load_mc = new Load_mc(); load_mc.x = stage.stageWidth / 2; load_mc.y = stage.stageHeight / 2; addChild(load_mc); } private function load( urlRequest:URLRequest ):void { loader.load(urlRequest); if( !contains(progressOutput) ) { addChild(progressOutput) } } private function progressListener(e:ProgressEvent):void { progressOutput.text = "LOADING: " + Math.floor(e.bytesLoaded / 1024) + "/" + Math.floor(e.bytesTotal / 1024) + "KB"; } private function initListener(e:Event):void { MovieClip(loader.content).stop(); } private function completeListener(e:Event):void { addChild(loader.content); MovieClip(loader.content).play(); removeChild(progressOutput); removeChild(load_mc); } private function ioErrorListener(e:IOErrorEvent):void { progressOutput.text = "LOAD ERROR"; } } // end class } // end package Вот с ф-ей все ок private function progressListener(e:ProgressEvent):void { progressOutput.text = "LOADING: " + Math.floor(e.bytesLoaded / 1024) + "/" + Math.floor(e.bytesTotal / 1024) + "KB"; } ![]() |
|
|||||
|
Есть особенность одна. Если Main это Document class, то конструктор Main у вас будет вызван только после полной загрузки первого кадра флэшки. Вполне возможно, все что у вас есть - находится в первом кадре
Тогда естественно слушатель прогресса вызывается после всего.Прелоадер и Main должны быть реализованы отдельно. На пример так: Прелоадер лежит на первом кадре, а основная часть флэшки лежит на кадрах начиная со второго. |
|
|||||
|
Регистрация: May 2009
Сообщений: 122
|
Цитата:
Добавлено через 4 минуты я ф-юю изменил на флеш выводит 0 , но ролик грузится и при загрузке начинает воспроизводиться, а проценты все равно не считаются, на нуле остаются и при воспроизведении ролика , как и положенно убираются |
|
|||||
|
Ой, ё-моё.
![]() Надо же сначала на 100 умножать, а потом делать Math.floor |
|
|||||
|
Регистрация: May 2009
Сообщений: 122
|
Rакая разница, у меня умножение происходит за скобками и к Math.floor не имеет отношения
|
|
|||||
|
Ну конечно никакой разницы
![]() это выражение у вас всегда равно нулю, кроме момента полной загрузки. |
|
|||||
|
Регистрация: May 2009
Сообщений: 122
|
Цитата:
Только ничего не изменилось, как было 0 так и осталось |
|
|||||
|
Ну детский сад
![]() |
|
|||||
|
Регистрация: May 2009
Сообщений: 122
|
Цитата:
![]() |
|
|||||
|
Тред порадовал. =)
DarkKnight2009 Без обид, у всех бывает. =Р
__________________
RTFM |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:27. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| bytesTotal , loadbytes , loader as3 |
|
|