Autor Zpráva
Jim
Profil
Ahoj, mám tento kód a problém je v časování. Chci aby se pokud dojdou ms na 60 nastavily minuty na m=m+1; a s=0; S=0 normálně funguje, ale nechápu proč mi nenarůstaj minuty... Můžete se na to prosím někdo kouknout?? Díky! Jde o tučnou část, ale pro jistotu jsem to vložil celé. Tak koukám že to ztučnit asi nepůjde. No nic, bude to odděleno od textu xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<script language=JavaScript>

blankx = 4;
blanky = 4;

function zamichej() {
pocmich = 3000;
tah = 0;
for (i=1;i<=pocmich;i++) {
nahx = Math.floor((Math.random()*4)+1);
nahy = Math.floor((Math.random()*4)+1);
nahpoz = "p"+nahx+nahy;
zamen(nahpoz);
stavmich = Math.floor(i*100/pocmich);
window.status = "Míchání obrázku: "+stavmich+"%"+"(vyčkejte prosím)";
}
tah = 0;
return true;
}

function zamen(pozice){
tentox = pozice.substring(1,2)*1;
tentoy = pozice.substring(2,3)*1;
rozdilx = Math.abs(tentox-blankx);
rozdily = Math.abs(tentoy-blanky);
if ((rozdilx==1 && rozdily==0) || (rozdilx==0 && rozdily==1) ) {
klikobr = document.images[pozice].src
document.images[pozice].src = "blank.jpg";
newpozice = "p"+blankx+blanky;
document.images[newpozice].src = klikobr;
blankx = tentox*1;
blanky = tentoy*1;

}
return true;
}

function pokus(){

ret=true;

for (i=1;i<=15;i++)

{

n="p"+Math.round((i+1)/4)+((i-1)%4+1);

if (i<=9){
i="0"+i;
}

o="obr"+i+".jpg";

ret=ret && document.images[n].src.indexOf(o)>-1;

}


if (b == 0)


document.getElementById('registrace').style.visibility='visible'


}
</script>


<script language="JavaScript">
<!--
ms=0;
stav=0;
function startstop()

{
stav=0;
ms=0;
m=0;
s=0;
document.stopky.cas.value="00:00:00";


}
function vynuluj()
{
stav=0;
s=0;
m=0;
ms=0;
document.stopky.cas.value="00:00:00";

}

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
function zobraz()
{

ms=ms+1;


setTimeout("zobraz();",10);


if(ms==60)
{
s+1;
ms=0;
}


document.stopky.cas.value=s+":"+ms;
}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx





function kontrol()
{
var b=0;

}
</script>
</head>
<body onload=vynuluj();>

<table>
<tr>
<td>
<table>
<tr>

<td><img src=obr01.jpg name=p11 OnClick="zamen(name);"></td>
<td><img src=obr02.jpg name=p12 OnClick="zamen(name);"></td>
<td><img src=obr03.jpg name=p13 OnClick="zamen(name);"></td>
<td><img src=obr04.jpg name=p14 OnClick="zamen(name);"></td>
</tr>
<tr>
<td><img src=obr05.jpg name=p21 OnClick="zamen(name);"></td>
<td><img src=obr06.jpg name=p22 OnClick="zamen(name);"></td>
<td><img src=obr07.jpg name=p23 OnClick="zamen(name);"></td>
<td><img src=obr08.jpg name=p24 OnClick="zamen(name);"></td>
</tr>
<tr>
<td><img src=obr09.jpg name=p31 OnClick="zamen(name);"></td>
<td><img src=obr10.jpg name=p32 OnClick="zamen(name);"></td>
<td><img src=obr11.jpg name=p33 OnClick="zamen(name);"></td>
<td><img src=obr12.jpg name=p34 OnClick="zamen(name);"></td>
</tr>

<tr>
<td><img src=obr13.jpg name=p41 OnClick="zamen(name);"></td>
<td><img src=obr14.jpg name=p42 OnClick="zamen(name);"></td>
<td><img src=obr15.jpg name=p43 OnClick="zamen(name);"></td>
<td><img src=blank.jpg name=p44 OnClick="zamen(name);"></td>
</tr>
</table></a>
<form name="stopky">
<input type=button value="Zamíchej" OnClick="vynuluj();zamichej();zobraz();startstop();kontrol();">
Po zamíchání obrázku Vám poběží čas:
<input type="text" name="cas" size="5">
</form>

Po dasažení správného sestavení obrázku stiskněte: <input type=submit value="Mám to!" onclick=pokus();></br>
</br>

</center>
Vzor:</br>
<img src=nahled.jpg align=left><p>
Váš dosažený čas se zapíše do databáze soutěžících a zprůměruje se s Vašimi předchozími výsledky. Počet skládání obrázků není omezen. Pokud budete skládat vácekrát a

budete dosahovat kratších časů, Váš výsledný čas se bude zmenšovat.</p></br>


</td>
</tr>
</table>
</center>
<hr size=5 color=darkblue>
<table bgcolor=lightgrey id="registrace" name="registrace" style="visibility:hidden";>
<tr>
<td>
Registrace
</td>
</tr>
<tr>
<td>
Vaše jméno:
</td>
<td>
<input type=text name=jmeno id=jmeno>
</td>
<tr>
<tr>
<td>
Vaše heslo:
</td>
<td>
<input type=text name=heslo id=heslo>
</td>
</tr>
<tr>
<td>
Váš čas:
</td>
<td>

</td>
</tr>
</table>



</body>
</html>[/b][b]
Mistr
Profil
Na stránce http://www.konykorn.com/piers/ jsem našel tenhleten skriptík, který počítá dobu strávenou na dané stránce.

<HEAD>
<title>stopky pobytu na stránce</title>
<SCRIPT LANGUAGE="JavaScript">
startday = new Date();
clockStart = startday.getTime();
function initStopwatch() {
var myTime = new Date();
return((myTime.getTime() - clockStart)/1000);
}
function getSecs() {
var tSecs = Math.round(initStopwatch());
var iSecs = tSecs % 60;
var iMins = Math.round((tSecs-30)/60);
var sSecs ="" + ((iSecs > 9) ? iSecs : "0" + iSecs);
var sMins ="" + ((iMins > 9) ? iMins : "0" + iMins);
document.forms[0].timespent.value = sMins+":"+sSecs;
window.setTimeout('getSecs()',1000);
}

</script>
</head>
<BODY onLoad="window.setTimeout('getSecs()',1)">
<CENTER>
<FORM>
<p>
<input size=5 name=timespent> </p>
</FORM>


Co použít tu tučně vysázenou část? Samozřejmě po následných úpravách.
Mistr
Profil
Jim
s+1;
Proč jsi použil toto? Já tedy nejsem žádný velký znalec, ale nemělo by tam být, když už, spíš toto:
s+=1;
Jim
Profil
MISTR: Proč jsi použil toto? Já tedy nejsem žádný velký znalec, ale nemělo by tam být, když už, spíš toto:
s+=1;


Znal jsem spíš s++, ale díky, já to zkusím. Nezdálo se mi že by v tom byla chyba, jinde to funguje.

Už to mám napsané takhle a nechce se mi to celé předělávat, je to celkem obsáhlé.. Ale díky.
peta
Profil *
Mistr Spravne :) kratsi je s++

Jim
Vidim, ze sis nedal poradit...
http://www.volny.cz/peter.mlich/hry/hry.htm
tam par casovacu uz mam, na jakpsatweb v prikladech jakesi casovace take jsou. Ale proc se nezeptat, ze?

Tak sleduj, klikam...
1. jakpsatweb.cz
2. zalozka "JavaScript"
3. pod zalozkou v barevnem pruhu "Příklady"
4. v textu s obsahem je "Datum, čas a časování"
http://www.jakpsatweb.cz/javascript/priklady/index.html#cas

A treba jeste
http://www.volny.cz/peter.mlich/www.htm#lmoje
- pismenkovy had, tam je casovac a velmi prehledne napsany.
Pocitani hodin a pod, to je snadna operace:
s++;if(s>60) {s=0;m++;if(m>60) {m=0;h++}}
nebo s mezerami...
s++; if (s > 60) { s = 0; m++; if (m > 60) {m = 0; h++;} }
peta
Profil *
Jim
Je to dost divne, kdyz 2 radky nad tim napises
... ms=ms+1;
a pak
... s+1;

Mimochodem, spoustet casovac kazdych 10ms mi prijde celkem dost zatezujici. Jednak ti procesor pri slozitejsim scriptu nevezme mene nez 50ms, pak ke kazde akci se pocitaji nejake dalsi akce, ktere trvaji nejaky cas, a pak takovou presnost ani nepotrebujes.
Tobe by tam stacilo spoustet casovac rekneme 970ms (budu pocitat 30ms zpozdeni a tim bych se mohl priblizit sekunde o moc presneji nez udajem 1000)
Mistr
Profil
peta
Díky. :-)
Mistr
Profil
Jim
Funguje to?
Jim
Profil
Jj, díky! Ještě jsem tam našel nějaké chybky jako třeba závorka, ale pomohlo mi tohle: s++; if (s > 60) { s = 0; m++; if (m > 60) {m = 0; h++;} }
Zdálo se mi že to tak původně mám, ale asi překlep. :o) No díky moc, hlavně že to jde.
peta
Profil *
kdyz jsme u toho, to formatovani by slo psat:
nee takto
var sSecs ="" + ((iSecs > 9) ? iSecs : "0" + iSecs);
ale takto

var cas=(h>9?"":"0")+h+":"+(m>9?"":"0")+m+":"+(s>9?"":"0")+s;
Toto téma je uzamčeno. Odpověď nelze zaslat.

0