|
|
|||||
[+1 02.07.09]
Регистрация: Jun 2009
Сообщений: 39
|
Глючит bytesTotal в прелоадере
Есть стандартный прелоадер.
Вроде как всё работает, но не рассчитать процент загрузки, т.к. bytesTotal при предпросмотре работает норм, когда заливаю на сервак в EnternetExplorer'e показывает всё время 0, в FireFox'e всегда то же число, что и bytesLoaded. Следовательно процент или 100% или infinity%. Вот код: package { import flash.display.MovieClip; import flash.display.Sprite; import flash.display.StageScaleMode; import flash.display.StageAlign; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.ProgressEvent; import flash.events.Event; import main.Main; public class ExportSecondFrame extends MovieClip { private var preloaderText:TextField = new TextField; private var progressBar:Sprite; public function ExportSecondFrame() { super(); stop(); stage.showDefaultContextMenu = false; stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; progressBar = getChildByName("pBar") as Sprite; progressBar.scaleX = 0; preloaderText.autoSize = TextFieldAutoSize.CENTER; preloaderText.x = 303.5; preloaderText.y = 310; addChild(preloaderText); loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loaderInfo.addEventListener(Event.COMPLETE, completeHandler); } private function progressHandler(e:ProgressEvent):void { progressBar.scaleX = e.bytesLoaded/e.bytesTotal; preloaderText.text = e.bytesLoaded.toString() + " из " + e.bytesTotal.toString() + " (" + (e.bytesLoaded/e.bytesTotal)*100 + "%)"; } private function completeHandler(event:Event):void { play(); addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function enterFrameHandler(event:Event):void { if (currentFrame >= 3) { gotoAndStop(2); removeEventListener(Event.ENTER_FRAME, enterFrameHandler); loaderInfo.removeEventListener(Event.COMPLETE, completeHandler); loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler); preloaderText = null; main(); } } private function main():void { var programClass:Class = loaderInfo.applicationDomain.getDefinition("main.Main") as Class; var program:MovieClip = new programClass() as MovieClip; addChild(program); } } } |
|
|||||
Регистрация: Jun 2008
Сообщений: 51
|
У вас прелоадер, как я понимаю, грузит саму флешку? Если да, то вам нужен stage.loaderInfo. Кроме того, вместо хендлеров на ProgressEvent, можно повесить на ENTER_FRAME обработчик прогресс бара с обращением stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal.
|
|
|||||
[+1 02.07.09]
Регистрация: Jun 2009
Сообщений: 39
|
Да, прелоадер грузит всю флешку.
При использовании stage.loaderInfo, не срабатывает ни один хендлер. Так же попробовал PROGRESS и COMPLETE заменить ENTER_FRAME - получается то же самое. В IE bytesTotal=0 в FireFox bytesTotal=bytesLoaded. Причем bytesLoaded работает стабильно. Перепробовал уже всё, что знал =(( Добавлено через 6 минут Вот ссылка: http://empirepromoting.ru/test/bitmap/Main.html |
|
|||||
цвет аццкий
возможно сервак не отдает размер файла. вот вывод firebug: Server nginx/0.6.31 Date Thu, 02 Jul 2009 17:59:49 GMT Content-Type application/x-shockwave-flash Transfer-Encoding chunked Connection keep-alive Keep-Alive timeout=20 Last-Modified Thu, 02 Jul 2009 13:22:35 GMT Etag "10f8080-10ca32-eed21cc0" Accept-Ranges bytes Vary Accept-Encoding,User-Agent Content-Encoding gzip
__________________
я могу стать всем, если только захочу |
|
|||||
Кстати у меня тоже самое, как раз хотел тему создать либо 0 либо 100% сразу
__________________
"I am the terror that flaps in the night…!" |
|
|||||
[+1 02.07.09]
Регистрация: Jun 2009
Сообщений: 39
|
Ну, цвет, эт йа так просто поставил. Это у меня кусок игры. Для Вконтакта пишу.
Спс за ответ. |
|
|||||
[+1 02.07.09]
Регистрация: Jun 2009
Сообщений: 39
|
Думаю на Вконтактовском серваке должно заработать, если нет - придётся прописывать вручную...
|
|
|||||
Регистрация: Jul 2009
Сообщений: 4
|
Никто не придумал как решить эту проблему без ручного прописывания размера ??? Ведь даже если вручную прописывать то уже на перед не знаешь сколько будет весить файл ... Как обойти эту проблему???
|
Часовой пояс GMT +4, время: 20:27. |
|
« Предыдущая тема | Следующая тема » |
|
|