Лаг / латентность касаний после загрузки чего-либо - PullRequest
0 голосов
/ 16 сентября 2011

При написании игры возникает проблема, из-за которой после загрузки чего-либо (изображения / звуковой эффект) сенсорный экран испытывает большую задержку. Я нажимаю на экран, и через некоторое время этот тап регистрируется. Это едва заметно на iPhone 4 или iPad, но на любом более старом (особенно на устройствах 2G) я смотрю несколько секунд до регистрации касаний!

Чтобы было ясно, я нажимаю ... затем убираю палец с экрана, а затем примерно через 5 секунд значок, на котором я щелкнул, регистрирует касание.

Кажется, что это происходит только после загрузки большого количества изображений (что я делаю в начале каждого уровня и при возвращении к веб-интерфейсу). Как только он «догоняет», все снова работает нормально.

Есть ли способ очистить буфер касаний (я полагаю, он должен существовать!) После загрузки?

Заранее спасибо

Стью

1 Ответ

0 голосов
/ 16 сентября 2011

То, что вы хотите сделать, это «очистить ваш кеш».Загрузка больших изображений израсходует много памяти, и, как мы все знаем, память смартфона является ценным товаром ... вы просто не можете насытиться этим.Особенно, если вы программируете на языке времени исполнения, который имеет дело с кучей хранилищ и сборкой мусора.Часто вы видите поведение, которое происходит, когда доступная RAM не предлагает достаточно адресуемого пространства для всех запросов на «буферизацию».Еще одна проблема, с которой вы сталкиваетесь, - вычислительная мощность и ядра ... хотя современные телефоны становятся довольно хорошими, они все еще накапливаются по сравнению со стандартными вычислительными устройствами.Если у вас закончились потоки, приложение должно подождать, пока оно не освободится.Это также может привести к проблеме, с которой вы столкнулись ... на самом деле, держу пари, что это проблема.Я прочитал сообщение на форуме, прежде чем это могло бы помочь:

Когда мы должны удалять данные кэша в приложениях iPhone?

Вы можете очистить кеш следующим образом ...но я не уверен, что решит вашу проблему.Если вы храните эти изображения рядом, намереваетесь ли вы сохранить их во флэш-памяти телефона?Помните, что если вы удалите изображения из памяти, вам нужно будет восстановить их снова.Возможно, будет лучшим решением уменьшить размер изображений ... или загрузить большее изображение и спрайтовать по нему с помощью DIV ... если мы говорим здесь о фоновых изображениях.Поскольку я не уверен, как вы спроектировали «игру», я не могу определить лучший вариант.

...