![]() |
Загрузка и прорисовка изображений.
Всем прив. Помогите пожалуйста, думаю многим будет интересно. Вобщем ниже кусок моего кода..
С его помощью грузятся картинки в мувик. Проблема - загрузка происходит долго, даже если флешка запускаеться второй раз и картинки из кеша цикл бежит оч медленно... По 10 в секунду, примерно несмотря на то что большинство одинаковых. И иногда уже по окончанию загрузки,когда прелоадер прячется рисунки появляются поочереди наглазах. Код:
myListener.onLoadInit = function(target_mc:MovieClip) { |
Скорость цикла увеличил смешным образом - фпс в 50 поставил. Хотя каким образом эт на код повлиять могло не догадываюсь.
Но тем не мение чем быстрее происходит загрузка рисунков тем больше вероятность того что они прорисовываться на екране будут рывками. |
Если честно, Da_Demon, я голову сломал пытаясь понять этот код. Несмотря на потрясающую ритмичность, он совершенно нечитабелен)))) Может потому что я понятия не имею кто такой masW и с чем едят oname? Посему не знаю в чем тут проблема, но так, замечание общего характера.
Зачем Вы повторяете блок Код:
masT[kolload] = src;Реально совершенно невозможно догадаться о значениях всех этих десятков переменных, которые Вы используете. Как результат - Вы, скорее всего, не получите ответа, хотя сама тема одна из любимейших на этом форуме))) |
В том то и дело что не в переменных и даже не в коде суть, На всякий случай его разместил. Со скоростью разобрался.
Проблема свелась к простому. Грузим толпу картинок в один мувик и потом те-же в другой. В первом случае понятно появляются по мере загрузки, но во втором тоже не одновременно, уходит время на саму прорисовку изображений - как его посчитать и дождаться окончания.? В выложенном коде убрал просто лишние фрагменты. Конечно, вполне может быть что и есть нерациональности местами, но сути это не меняет. |
1) А, простите, что за странная необходимость грузить картинки второй раз? Я бы еще понял - клипы, но изображения-то зачем? Это уже совсем не мелкая проблема с оптимизацией...
2) Что значит как посчитать и дождаться окончания? Окончание - событие onLoadInit. Вы же его используете в своем (?) коде! |
Цитата:
Дело в том, что флешу и правда нужно время на отрисовку Особенно заметно при изменении размеров УЖЕ загруженной картинки Выход есть - на мой взгляд это BitmapData Т.е. я Вам, Da Demon, предлагаю вместо повторной загрузки картинки сделать вот что: -загрузить один раз картинку -сохранить её как BitmapData (надеюсь, хелп у Вас есть) -отрисовывать её (битмап дату) каждый раз когда надо отобразить картинку -использовать updateAfterEvent() (независимо от частоты кадров перерендер экрана) |
А, вон о чем речь. Ну этого уж точно не посчитать - у когото пень 133-й, у когото кор2квад (наверно поэтому я сразу и не понял, что за задержка)).
По поводу битмапдата - не буду утверждать, что избавит от описанных задержек, тут наверно от организации все зависит, но, собственно, именно битмапДату имел в виду, когда возмущался )) двойной закачкой. Мне можно, я сам когда-то такую фигню сделал с двойной загрузкой, с ней и пришел в первый раз на форум - три года назад))) С тех пор здесь масса решений с битмапДатой появилась, я сам пару галлерей выкладывал. Поиск. |
1) А, простите, что за странная необходимость грузить картинки второй раз? Я бы еще понял - клипы, но изображения-то зачем? Это уже совсем не мелкая проблема с оптимизацией...
2) Что значит как посчитать и дождаться окончания? Окончание - событие onLoadInit. Вы же его используете в своем (?) коде! Нет) второй загрузки нет никакой. Просто написал способ проблему показать. Я о втором посещении например... Тоесть если картинки грузяться с сервера - на это уходит время и они успевают прорисоватся. Если страничка посещаеться второй рас и картинки есть в кеше, то на загрузку время не уходит вообще, onLoadInit срабатывает и все пересчитывает мол загрузил, прелоадер как следствие прячется, а на экране во всю идет строительство. Цитата:
2gloomyBrain с битмапдатой, несовсем удобно картинки оч разные, в том числе и анимации и флешки маленькие... Можно конечно решить проблему простой задержкой секунды в 2-3 после загрузки, но эт выход който некрасивый имхо. Ктому-же вдруг у кого-то действительно IBM-I..IV;) |
Цитата:
|
Цитата:
Так вот во флеше так не выходит если картинка эта тоже в swf и клип в котором она множиться нужно двигать. |
| Часовой пояс GMT +4, время: 12:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.