PDA

Просмотр полной версии : Медленный скрипт?


marat_sa
27.02.2008, 11:43
Здравствуйте, при загрузке приложения через лоадер слушатель подписан на событие onLoadProgress и вызывает функцию, которая обновляет текст в 2 текстовых полях и изменяет _xscale индикатора загрузки. Приложение весит 2,5 Мб. Во время загрузки выдается окно, что скрипт работает медленно, вы хотите его отменить? Нажимаем нет, приложение продолжает грузиться! Что происходит? Как можно обойти это, помимо того, что изменить script time limit???

trigger
27.02.2008, 13:34
покажите медленный скрипт!

Molecula
27.02.2008, 14:50
Где-то цикл лупится.

veterok4
27.02.2008, 15:40
Обсчёт слишком большой... (скорее в цикле)

marat_sa
27.02.2008, 16:54
В том-то и дело, что цикла нет. Я во все функции трейсов навесил, все проверял. Просто идет загрузка и листенер отрабатывает при получении данных вверенную ему функцию))) Вот код этой функции:

loadListener.onLoadProgress = Delegate.create(this, loadingProgress);

private function loadingProgress(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
//trace("loadingProgress()");
_root.loader.mainPanel["bytes_txt"].text = Math.round(bytesLoaded/1024) + " kB / " + Math.round(bytesTotal/1024) + " kB";
_root.loader.mainPanel["percent_txt"].text = Math.round((bytesLoaded/bytesTotal)*100) + " %";
_root.loader.mainPanel["loading_bar"]._xscale = Math.round((bytesLoaded/bytesTotal)*100);;
}

Во всем классе loader нет ни одного for и while ((

Всё, просто заменил onLoadProgress на setInterval в 1 секунду, а в функции loadingProgress вызываю метод getProgress со свойствами bytesLoaded и bytesTotal. Прекрасно отрабатывает!