![]() |
|
||||||||||
|
|
|
|||||
|
помогите плз.
в первом кадре стоит код предзагрузчика..который должен грузить всю флешку, а так же хмл данные. в первый раз оно работает, но если обнавить флешку, то сама флешка появляеца, а хмл данные нет..где ошибка, понять не магу( var dannie:XML = new XML(); dannie.ignoreWhite = true; dannie.load("xml/dannie.xml"); this.onEnterFrame=function() : Void { if (this.getBytesLoaded()+dannie.getBytesLoaded()<this.getBytesTotal()+dannie.getBytesTotal()) { var percent:Number=Math.round(((this.getBytesLoaded()+dannie.getBytesLoaded())/(this.getBytesTotal()+dannie.getBytesTotal()))*100); pole.text=percent+" %"; this.stop(); } else if ((this.getBytesLoaded()+dannie.getBytesLoaded())==(this.getBytesTotal()+dannie.getBytesTotal())) { gotoAndPlay(2); delete this.onEnterFrame; } } |
|
|||||
|
на экране в поле должен занаситься текст взятый из хмл..а он не появляеца..
в общем я вроде разобрался... это из за того что сама хмл весит мало, а основное время уходит, наверное, на поключение к этой хмл..так? изменил код на вот такой: var dannie:XML = new XML(); dannie.ignoreWhite = true; dannie.onLoad= function (success:Boolean) { if (success) {delete this.onEnterFrame;play();} } dannie.load("xml/dannie.xml"); this.onEnterFrame=function() : Void { var bytesLoaded:Number = dannie.getBytesLoaded(); var bytesTotal:Number = dannie.getBytesTotal(); var percent:Number = Math.round(((bytesLoaded+this.getBytesLoaded()) / (bytesTotal+this.getBytesTotal()) ) * 100); if (!isNaN(percent)){ pole.text=percent+" %";} else {pole.text="Загрузка XML";} this.stop(); if ((bytesLoaded+this.getBytesLoaded()) == (bytesTotal+this.getBytesTotal())){ delete this.onEnterFrame; play(); } } при первой загрузке в начале появляеца надпись "загрузка хмл" а патом идет процент.. а при обнавлении не начинает работать пока не загрузится хмл.. но мне бы хотелось чтобы загрузка хмл отслеживалась в працентах..но не получается т.к. вот это выражение выводится как "NaN".. а как по-другому я незнаю( Добавлено через 9 минут кстати, при таком коде, флешка(без хмл) будет сохранятся на компах у людей? а то у меня в фаирфоксе сохраняет, а в опере не сохраняет..и толи что то в браузерах нето, толи это из за кода... |
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 52
|
использовать событие XML.onLoad для отлавливания момента загрузки.
Зачем xml прелоадер не очень ясно. Неужели такой большой и долго грузиться? ЗЫ Русские имена переменных на транслите - плохой тон ИМХО. |
|
|||||
|
А если так попробовать?
bytesLoaded = Math.round(_root.getBytesLoaded()); bytesTotal = Math.round(_root.getBytesTotal()); percent = (bytesLoaded/bytesTotal)*100; заменить на то трейса нету((( Последний раз редактировалось nOobCrafter; 09.12.2008 в 16:32. |
|
|||||
|
nOobCrafter,
проверил щас с trace тоже работает. |
|
|||||
|
у мня работает замечательно. проценты бегают, всё загружается и отображается:
stop(); var dannie:XML = new XML(); dannie.ignoreWhite = true; dannie.load("xml/dannie.xml"); onEnterFrame = function(){ var loaded = dannie.getBytesLoaded() + _root.getBytesLoaded(); var total = dannie.getBytesTotal() + _root.getBytesTotal(); var percent = Math.round( loaded / total * 100); if( !isNaN(percent) ) pole.text = 'загружено: ' + percent + '%'; else pole.text = "Загрузка..."; if ( loaded == total){ delete onEnterFrame; trace('Всё загруженно.'); trace(dannie) } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:17. |
|
|
« Предыдущая тема | Следующая тема » |
|
|