Autor Zpráva
Roman!
Profil
Ahoj,

vytvářím hru pro android za pomoci js a cordovi a narazil jsem na problém při použití události touchstart, vždy při vyvolání této události se aplikace na pár setin vteřiny zasekne.

Přikládám příklad: Živá ukázka (nutné testovat na dotykovém zařízení nebo ho simulovat v prohlížeči)

Vyvolání události dotyk na čtverec způsobí zadrhnutí.

Prozatím jsem to vyřešil použitím touchend což bohužel taky není ideální.

Je nějaké lepší řešení?

Díky.
Keeehi
Profil
Já spíš vidím problém s funkcí setInterval. Ono totiž nikde není zaručeno, že se spustí přesně po dvaceti milisekundách. Můžeš si uložit čas posledního spuštění a odečíst od něj aktuální. Tím zjistíš, jak moc je to jinak oproti 20ms. Jednoduše se z toho dá vypočítat poměr kterým stačí vynásobit krok. Pokud to zase "zamrzne" tak po obnovení to bude o x pozic dál a ne jen o jednu. Bude to tedy vypadat jako dočasně snížený framerate, ale objekt bude na správné pozici, jako by se vůbec nic nestalo.
Roman!
Profil
Problém je opravdu u touchstart, pokud požiji události jako mousedown nebo keydown funguje to spolehlivě, setInverval je zde OK.
Roman!
Profil
Vyřešeno.
V obslužné metodě události stačí zavolat preventDefault().

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: