![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2007
Сообщений: 34
|
Всем прив. Помогите пожалуйста, думаю многим будет интересно. Вобщем ниже кусок моего кода..
С его помощью грузятся картинки в мувик. Проблема - загрузка происходит долго, даже если флешка запускаеться второй раз и картинки из кеша цикл бежит оч медленно... По 10 в секунду, примерно несмотря на то что большинство одинаковых. И иногда уже по окончанию загрузки,когда прелоадер прячется рисунки появляются поочереди наглазах. myListener.onLoadInit = function(target_mc:MovieClip) {
if (nowload < kolload) {
nowload += 1;
k = masW[nowload];
l = masK[nowload];
my_mcl.loadClip(masT[nowload], _root[l][k]);
} else {
_root.toplay1 = 1;
_root.toplay = 1;
}
};
my_mcl.addListener(myListener);
function printloc(src:String, posx:String, posy:String, ido:Number, posz:String) {
_root[posz][oname].removeMovieClip();
_root[posz].createEmptyMovieClip(oname, ido+500);
_root[posz][oname]._x = int(posx);
_root[posz][oname]._y = int(posy);
if (kolload == 0) {
my_mcl.loadClip(src, _root[posz][oname]);
kolload = 1;
masT[kolload] = src;
masW[kolload] = oname;
masK[kolload] = posz;
} else {
kolload += 1;
masT[kolload] = src;
masW[kolload] = oname;
masK[kolload] = posz;
}
}
|
|
|||||
|
Регистрация: Apr 2007
Сообщений: 34
|
Скорость цикла увеличил смешным образом - фпс в 50 поставил. Хотя каким образом эт на код повлиять могло не догадываюсь.
Но тем не мение чем быстрее происходит загрузка рисунков тем больше вероятность того что они прорисовываться на екране будут рывками. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Если честно, Da_Demon, я голову сломал пытаясь понять этот код. Несмотря на потрясающую ритмичность, он совершенно нечитабелен)))) Может потому что я понятия не имею кто такой masW и с чем едят oname? Посему не знаю в чем тут проблема, но так, замечание общего характера.
Зачем Вы повторяете блок в блоках условия, если он не зависит от условия? Вынесите его за if else. Реально совершенно невозможно догадаться о значениях всех этих десятков переменных, которые Вы используете. Как результат - Вы, скорее всего, не получите ответа, хотя сама тема одна из любимейших на этом форуме)))
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 15.09.2008 в 14:41. |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 34
|
В том то и дело что не в переменных и даже не в коде суть, На всякий случай его разместил. Со скоростью разобрался.
Проблема свелась к простому. Грузим толпу картинок в один мувик и потом те-же в другой. В первом случае понятно появляются по мере загрузки, но во втором тоже не одновременно, уходит время на саму прорисовку изображений - как его посчитать и дождаться окончания.? В выложенном коде убрал просто лишние фрагменты. Конечно, вполне может быть что и есть нерациональности местами, но сути это не меняет. Последний раз редактировалось Da_Demon; 15.09.2008 в 17:24. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
1) А, простите, что за странная необходимость грузить картинки второй раз? Я бы еще понял - клипы, но изображения-то зачем? Это уже совсем не мелкая проблема с оптимизацией...
2) Что значит как посчитать и дождаться окончания? Окончание - событие onLoadInit. Вы же его используете в своем (?) коде!
__________________
Reality.getBounds(this); |
|
|||||
|
Цитата:
Дело в том, что флешу и правда нужно время на отрисовку Особенно заметно при изменении размеров УЖЕ загруженной картинки Выход есть - на мой взгляд это BitmapData Т.е. я Вам, Da Demon, предлагаю вместо повторной загрузки картинки сделать вот что: -загрузить один раз картинку -сохранить её как BitmapData (надеюсь, хелп у Вас есть) -отрисовывать её (битмап дату) каждый раз когда надо отобразить картинку -использовать updateAfterEvent() (независимо от частоты кадров перерендер экрана)
__________________
...вселенская грусть |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А, вон о чем речь. Ну этого уж точно не посчитать - у когото пень 133-й, у когото кор2квад (наверно поэтому я сразу и не понял, что за задержка)).
По поводу битмапдата - не буду утверждать, что избавит от описанных задержек, тут наверно от организации все зависит, но, собственно, именно битмапДату имел в виду, когда возмущался )) двойной закачкой. Мне можно, я сам когда-то такую фигню сделал с двойной загрузкой, с ней и пришел в первый раз на форум - три года назад))) С тех пор здесь масса решений с битмапДатой появилась, я сам пару галлерей выкладывал. Поиск.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 34
|
1) А, простите, что за странная необходимость грузить картинки второй раз? Я бы еще понял - клипы, но изображения-то зачем? Это уже совсем не мелкая проблема с оптимизацией...
2) Что значит как посчитать и дождаться окончания? Окончание - событие onLoadInit. Вы же его используете в своем (?) коде! Нет) второй загрузки нет никакой. Просто написал способ проблему показать. Я о втором посещении например... Тоесть если картинки грузяться с сервера - на это уходит время и они успевают прорисоватся. Если страничка посещаеться второй рас и картинки есть в кеше, то на загрузку время не уходит вообще, onLoadInit срабатывает и все пересчитывает мол загрузил, прелоадер как следствие прячется, а на экране во всю идет строительство. Цитата:
2gloomyBrain с битмапдатой, несовсем удобно картинки оч разные, в том числе и анимации и флешки маленькие... Можно конечно решить проблему простой задержкой секунды в 2-3 после загрузки, но эт выход който некрасивый имхо. Ктому-же вдруг у кого-то действительно IBM-I..IV ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 34
|
Цитата:
Так вот во флеше так не выходит если картинка эта тоже в swf и клип в котором она множиться нужно двигать. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:02. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| загрузка , картинки |
|
|