Jak pauzować czekanie - Android
Gdy tworzymy opóźnienie czasowe to jest możliwość jego spauzowania a następnie odpauzowania. Zobaczmy to na przykładzie.
Napiszemy program, który będzie po 10 sekundach wyświetlał napis "Po 10 sekundach...". Dodatkowo dorobimy przycisk, którego naciśnięcie spowoduje pauzę, czyli wspomniany przed chwilą napis się nie pojawi aż naciśniemy drugi raz na button, czyli odpauzujemy i w sumie (przed spauzowaniem) upłynie te 10 sekund. Zobaczmy zatem kod:
function wyswietlTekst()
local tekst=display.newText("Po 10 sekundach...", 100,100, native.systemFont, 30)end
czasID = timer.performWithDelay(10000, wyswietlTekst)
local przycisk=display.newRect(display.contentWidth-100, display.contentHeight-100, 100, 100)
local tekstPauzy=display.newText("Pauza", display.contentWidth-90, display.contentHeight-70, native.systemFont, 30)
tekstPauzy:setTextColor(240, 8,0)
local czyWlaczonaPauza=0
function pauzuj(event)
if event.phase == "began" then
if czyWlaczonaPauza==0 then
czyWlaczonaPauza=1
print(czyWlaczonaPauza)
timer.pause(czasID)
pauza=display.newText("Spauzowano...",100, 100, native.systemFont, 30)
pauza:setTextColor(240, 8,0)
else
czyWlaczonaPauza=0
timer.resume(czasID)
pauza.text=""
end
end
end
przycisk:addEventListener("touch", pauzuj)
Kod może wyglądać przydługawo, ale tak naprawdę to składa się on z omawianych już uprzednio fragmentów kodu, dlatego jego zrozumienie nie powinno nastręczać kłopotów.
- Najpierw wywołujemy timer.performWidthDelay i wynik przypisujemy do zmiennej czasID. Po 10 000ms czyli po 10s konstrukcja ta wywoła wyżej umieszoną w kodzie funkcję wyswietlTekst a mianowicie wyświetli tekst "Po 10 sekundach...".
- Później tworzymy przycisk - też skopiowany z uprzednych artykułów i umieszamy go na samym dole z napisem Pauza. Na samym końcu dopisujemy śledzenie czy został od dotknięty a jeśli tak to wywoła on funkcję pokazuj(), którą teraz omówimy
- Jeszcze przed funkcją pokazuj() ustawiamy zmienną czyWlaczonaPauza na 0 a już w samej funkcji sprawdzamy najpierw czy faza dotyku to początek a następnie czy pauza jest włączona czyli czy czyWlaczonaPauza jest równa 1 czy 0 co zmieniamy na stan przeciwny i dla zera wyłączamy timer.pause(czasID) i wyświetlamy tekst "Spauzowano..." Teraz czekanie nam nic nie da. Dopiero ponowne wciśnięcie przycisku spowoduje zniknięcie napisu "Spauzowano..." poprzez przypisanie pustego łańcuch poleceniem pauza.text="" oraz odpauzowanie poleceniem timer.resume(czasID).
Efekt naciśnięcia pauzy |
Czytaj dalej: Opóźnienie czasowe - Android
Warning: include_once(includes/rss_fetch.php) [function.include-once]: failed to open stream: No such file or directory in /home/ekoinst/domains/pcwiedza.pl/public_html/tworzenie-gier/includes/funkcje.php on line 548
Warning: include_once() [function.include]: Failed opening 'includes/rss_fetch.php' for inclusion (include_path='.:/opt/alt/php52/usr/share/pear:/opt/alt/php52/usr/share/php') in /home/ekoinst/domains/pcwiedza.pl/public_html/tworzenie-gier/includes/funkcje.php on line 548