Avatar billede riishoj Nybegynder
02. januar 2002 - 22:46 Der er 38 kommentarer og
1 løsning

Valg ag tilfældigt tal

Jeg har med stor og tålmodig hjælp fået bakset nedenstående sammen, som jeg skal brug til at lære børn i 1. kl. at kende tallene fra 1-99. Problemet er, at når jeg sætter AntalTal større end 70, så går systemet i sort, enten fryser computeren eller der sker underlige ting med browseren. Kan nogen se, hvad der er galt?
Venlig hilsen
Riishøj

<html>
<head>
<title>Den store tal-test!</title>
<script>
antalTal =99; //Antallet af tal-lyde
antalRigt = 99; //Så mange korrekte gæt, man skal have, før man vinder!

alert(\"Greetings, my friend!\\n\\nOm et øjeblik vil der blive afspillet et tal fra 1 til \" + antalTal + \"!\\nDet er så din opgave at høre godt efter og skrive det tal i boksen her på siden!\\n\\nEr du klar?\");

tilf = 0;
rigt = 0;

function tf() {
temp = Math.floor(Math.random() * antalTal) + 1;
if (temp == tilf) tf();
return temp;
}

function afspilLyd() {
tilf = tf();
eval(\"document.lyd\" + tilf + \".play()\");
}

function tjekTal(felt) {
if (felt.value == \"\" || !felt.value.match(/^[0-9]+$/)) {
alert(\"Du skal skrive et tal fra 1-\" + antalTal + \"!\");
felt.value = \"\";
felt.focus();
}
else if (felt.value == tilf) {
if (++rigt >= antalRigt) {
alert(\"Tillykke!\\nDu har fået \" + rigt + \" rigtige!\\nDu kan nu leve et liv i evig lykke!\");
felt.form.rigtige.value = rigt;
felt.maxlength = 3;
felt.value = \":-)\";
felt.form.subm.value=\"Hurraaa!\";
return;
}
alert(\"Korrekt!\\n\\nDer vi nu blive afspillet et nyt tal!\");
felt.value = \"\";
afspilLyd();
felt.focus();
felt.form.rigtige.value = rigt;
}
else {
alert(\"Desværre!\\nDet indtastede tal var forkert! Vær klar til at høre tallet igen!\");
felt.value = \"\";
felt.focus();
eval(\"document.lyd\" + tilf + \".play()\");
}
}
</script>
</head>
<body onLoad=\"afspilLyd(); document.frm.tal.focus();\" bgcolor=\"#39AE8B\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
  <tr>
    <td width=\"20%\">
      <p align=\"center\"><font size=\"6\" color=\"#009999\">&nbsp;</font><font size=\"6\" color=\"#00FFCC\">72</font></p>
    </td>
    <td width=\"33%\">
      <p align=\"center\"><b><font size=\"6\" color=\"#660066\" face=\"Arial\">Den store taltest</font></b></td>
    <td width=\"20%\">
      <p align=\"center\"><font size=\"6\" color=\"#99CC00\">96</font></p>
    </td>
  </tr>
</table>
<p align=\"center\"><b><font color=\"#804000\" size=\"4\" face=\"Arial\">Når du<font size=\"6\" color=\"#FFFFFF\" face=\"Arial\">
</font><font color=\"#804000\">hører et tal, skal du trykke tallet og derefter
trykke på den nederste knap.</font></font></b>
<form name=\"frm\" action=\"#\" onSubmit=\"tjekTal(this.tal); return false;\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"1\">
  <tr>
    <td width=\"100%\" colspan=\"5\" height=\"21\"></td>
  </tr>
  <tr>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"1\">
      <font size=\"7\" color=\"#CCCC00\">24</font>
    </td>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"1\">
      <font size=\"7\" color=\"#006600\">96</font>
    </td>
    <td width=\"33%\" rowspan=\"3\" height=\"1\">
      <div align=\"center\">
        <center>
        <table BORDER=\"4\" cellpadding=\"5\">
          <tr>
            <td align=\"center\">
              <p align=\"left\"><font face=\"Arial\" color=\"#FFFFFF\">Tal:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              <input type=\"text\" name=\"tal\" size=\"2\" maxlength=\"2\"><br>
              <br>
              <font face=\"Arial\" color=\"#FFFFFF\">
              Rigtige:</font><input type=\"text\" name=\"rigtige\" size=\"2\" readonly></p>
            </td>
          </tr>
        </center>
        <tr>
          <td>
            <p align=\"left\"><input TYPE=\"button\" NAME=\"seven\" VALUE=\"  7  \" OnClick=\"frm.tal.value += \'7\'\">
            <input TYPE=\"button\" NAME=\"eight\" VALUE=\"  8  \" OnCLick=\"frm.tal.value += \'8\'\">
            <input TYPE=\"button\" NAME=\"nine\" VALUE=\"  9  \" OnClick=\"frm.tal.value += \'9\'\"><br>
            <input TYPE=\"button\" NAME=\"four\" VALUE=\"  4  \" OnClick=\"frm.tal.value += \'4\'\">
            <input TYPE=\"button\" NAME=\"five\" VALUE=\"  5  \" OnCLick=\"frm.tal.value += \'5\'\">
            <input TYPE=\"button\" NAME=\"six\" VALUE=\"  6  \" OnClick=\"frm.tal.value += \'6\'\"><br>
            <input TYPE=\"button\" NAME=\"one\" VALUE=\"  1  \" OnClick=\"frm.tal.value += \'1\'\">
            <input TYPE=\"button\" NAME=\"two\" VALUE=\"  2  \" OnCLick=\"frm.tal.value += \'2\'\">
            <input TYPE=\"button\" NAME=\"three\" VALUE=\"  3  \" OnClick=\"frm.tal.value += \'3\'\"><br>
            <input TYPE=\"button\" NAME=\"zero\" VALUE=\"      0    \" OnClick=\"frm.tal.value += \'0\'\">
            <input TYPE=\"button\" NAME=\"clear\" VALUE=\"  c  \" OnClick=\"frm.tal.value = \'\'\">
            <br>
            <input type=\"submit\" name=\"subm\" value=\"  Tjek tal!  \"></p>
          </td>
        </tr>
        </table>
      </div>
      <p>&nbsp;
    </td>
    <td width=\"17%\" valign=\"top\" height=\"1\">
      <font size=\"7\" color=\"#CC0066\">39</font>
    </td>
    <td width=\"16%\" valign=\"top\" height=\"1\">
      <font size=\"7\" color=\"#808080\">88</font>
    </td>
  </tr>
  <tr>
    <td width=\"17%\" valign=\"middle\" align=\"right\" height=\"0\">
      <p align=\"left\"><font size=\"6\" color=\"#FFFF00\">72</font>
    </td>
    <td width=\"17%\" valign=\"middle\" align=\"right\" height=\"0\">
      <p align=\"left\"><font size=\"7\" color=\"#008000\" face=\"Monotype Corsiva\">41</font>
    </td>
    <td width=\"17%\" valign=\"middle\" height=\"0\">
      <p align=\"right\"><font size=\"7\" color=\"#00FF00\" face=\"Comic Sans MS\">48</font>
    </td>
    <td width=\"16%\" valign=\"middle\" height=\"0\">
      <p align=\"right\"><font size=\"6\" color=\"#FF0000\">56</font>
    </td>
  </tr>
  <tr>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"10\">
      <font size=\"7\" color=\"#00CCFF\">62</font>
    </td>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"10\">
      <font size=\"7\" color=\"#FFFF00\">30</font>
    </td>
    <td width=\"17%\" valign=\"top\" height=\"10\">
      <font size=\"7\" color=\"#00CC00\">75</font>
    </td>
    <td width=\"16%\" valign=\"top\" height=\"10\">
      <font size=\"7\" color=\"#FF9966\">43</font>
    </td>
  </tr>
</table>
</form>

<script>
document.frm.tal.value = \"\";
document.frm.rigtige.value = \"0\";
for (i = 1; i < antalTal + 1; i++) document.write(\"<embed src=\'\" + i + \".wav\' name=\'lyd\" + i + \"\' hidden=\'true\' autostart=\'false\'>\");


</script>
</body>
</html> 
Avatar billede erikjacobsen Ekspert
02. januar 2002 - 22:51 #1
Ser sjovt ud :) Men jeg har nu ikke lige løst dit problem. Du prøver vist at sørge
for at det samme tal ikke kommer 2 gange, men så skal du da vist

function tf() {
  temp = Math.floor(Math.random() * antalTal) + 1;
  if (temp == tilf) return tf();
  return temp;
}

Kan det have noget at gøre med antal <embed>-tags?? Prøv at nøjes med færre
dernede.
Avatar billede erikjacobsen Ekspert
02. januar 2002 - 22:52 #2
2 gange I TRÆK - mente jeg ....
Avatar billede jakoba Nybegynder
02. januar 2002 - 22:52 #3
Jeg vil tro fejlen kommer af de der 100 <embed kommandoer du skriver på siden, det fylder ad pommeren til at oprette så mange embed objekter så mon ikke du får trashing (for mange diskswaps).

prøv at sætte mere ram-memory i maskinen.

mvh JakobA
Avatar billede riishoj Nybegynder
02. januar 2002 - 23:03 #4
Jeg skulle jo helst kunne teste tallene op til 99.
En anden mulighed kunne være at dele scriptet op i 2 dele. Første del tester fra 1-50 og anden del tester fra 51-99. Det har jeg forsøgt mig med, men det er ikke lykkedes mig at ændre scriptet, så det kan teste tallene fra 51-99.
Riishøj
Avatar billede erikjacobsen Ekspert
02. januar 2002 - 23:06 #5
Kan du ikke hente .wav filerne efterhånden som der bliver brug for dem?
Avatar billede jakoba Nybegynder
02. januar 2002 - 23:10 #6
en tredie mulighed er at lave det i frames og kun skrive den ene embed kommando der nu skal høres ind i en anden ramme når den skal afspilles.
Dine lyde vil ikke reagere så hurtigt men det bliver en del mindre:

function afspilLyd() {
    tilf = tf();
    parent.lydFrame.document.open(\'text/html\',\'replace\');
    parent.lydFrame.document.write( \"<embed src=\'\" +tilf +\".wav\' loop=1 \"
                                  +\"autostart=\'true\'></embed>\" );
    parent.lydFrame.document.close();
}

mvh JakobA
Avatar billede riishoj Nybegynder
02. januar 2002 - 23:16 #7
Hvordan henter man lydfilerne efterhånden som der bliver brug for dem?

Mht. til frameløsningen så må jeg indrømme, at den kan jeg ikke gennemskue. Hvad skal jeg gøre udover at indsætte det du skriver?
Riishøj
Avatar billede erikjacobsen Ekspert
02. januar 2002 - 23:19 #8
Efterhånden? Jeg gætter på man giver <embed>-tagget et navn, og
så sætter man dens SRC med JavaScript. Er det ikke noget for dig Jakob?
Avatar billede jakoba Nybegynder
02. januar 2002 - 23:26 #9
Ja og nej, jeg har prøvet adskillige gange, men kan ikke få det til at virke med åt skifte lyd på den måde. Derfor forslagetom at skrive en ramme med hele <embed kommandoen i. Det kan jeg få til at virke selvom det godtnok er noget klumpet :(
Hvis i bruger programmet internt på skolen med bare IE browsere kan man lave det endnu nemmere med en innerHTML der udskiftes.

Avatar billede jakoba Nybegynder
02. januar 2002 - 23:31 #10
Et sted på siden laver du en navngiven <div kommando

<div name=\'lydDiv\'>her kommde din embed</div>

og så bliver afspil funtionen til:

function afspilLyd() {
    tilf = tf();
    document.all[\'lydDiv\'].inneHTML = \"<embed src=\'\" +tilf +\".wav\' loop=1 autostart=\'true\'></embed>\" ;
}
Avatar billede erikjacobsen Ekspert
02. januar 2002 - 23:32 #11
Ok, jakoba - jeg har nemlig aldrig prøvet :)
Avatar billede jakoba Nybegynder
02. januar 2002 - 23:32 #12
ups. der er et  r i innerHTML
Avatar billede riishoj Nybegynder
02. januar 2002 - 23:33 #13
Kan du forklare nærmere, hvordan man skriver en ramme med embed-kommandoen i? Programmet skal bruges internt på skolens intranet via IE browsere, men jeg har ingen anelse om, hvad en innerHTML er!:(
Riishøj
Avatar billede riishoj Nybegynder
02. januar 2002 - 23:38 #14
Gider du prøver at kopiere det ind i mit script. Som du nok har opdaget, så er jeg ikke nogen ørn til javascript
Riishøj
Avatar billede jakoba Nybegynder
02. januar 2002 - 23:41 #15
for at lave en ramme skal du starte med et frameset:

<html>  <!-- frameset fil -->
<framset cols=\"15,*\">
  <frame src=\'about:blank\' name=\'lydFrame\'>
  <frame src=\'denOpgavefilDuAlleredeHar.html\'>
</frameset>
</html>

ovenstående er hele frameset filen.

i din \'denOpgavefilDuAlleredeHar.html\' fil indsætter du så den funktion afspilLyd() der står i kommentar 02/01 2002 23:10:22
Og så skulle det gerne virke

mvh JakobA
Avatar billede jakoba Nybegynder
02. januar 2002 - 23:44 #16
<html>
<head>
<title>Den store tal-test!</title>
<script>
antalTal =99; //Antallet af tal-lyde
antalRigt = 99; //Så mange korrekte gæt, man skal have, før man vinder!

alert(\"Greetings, my friend!\\n\\nOm et øjeblik vil der blive afspillet et tal fra 1 til \" + antalTal + \"!\\nDet er så din opgave at høre godt efter og skrive det tal i boksen her på siden!\\n\\nEr du klar?\");

tilf = 0;
rigt = 0;

function tf() {
temp = Math.floor(Math.random() * antalTal) + 1;
if (temp == tilf) tf();
return temp;
}

function afspilLyd() { // KUN denne funktion er blevet ændret.
    tilf = tf();
    parent.lydFrame.document.open(\'text/html\',\'replace\');
    parent.lydFrame.document.write( \"<embed src=\'\" +tilf +\".wav\' loop=1 \"
                                  +\"autostart=\'true\'></embed>\" );
    parent.lydFrame.document.close();
}

function tjekTal(felt) {
if (felt.value == \"\" || !felt.value.match(/^[0-9]+$/)) {
alert(\"Du skal skrive et tal fra 1-\" + antalTal + \"!\");
felt.value = \"\";
felt.focus();
}
else if (felt.value == tilf) {
if (++rigt >= antalRigt) {
alert(\"Tillykke!\\nDu har fået \" + rigt + \" rigtige!\\nDu kan nu leve et liv i evig lykke!\");
felt.form.rigtige.value = rigt;
felt.maxlength = 3;
felt.value = \":-)\";
felt.form.subm.value=\"Hurraaa!\";
return;
}
alert(\"Korrekt!\\n\\nDer vi nu blive afspillet et nyt tal!\");
felt.value = \"\";
afspilLyd();
felt.focus();
felt.form.rigtige.value = rigt;
}
else {
alert(\"Desværre!\\nDet indtastede tal var forkert! Vær klar til at høre tallet igen!\");
felt.value = \"\";
felt.focus();
eval(\"document.lyd\" + tilf + \".play()\");
}
}
</script>
</head>
<body onLoad=\"afspilLyd(); document.frm.tal.focus();\" bgcolor=\"#39AE8B\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
  <tr>
    <td width=\"20%\">
      <p align=\"center\"><font size=\"6\" color=\"#009999\">&nbsp;</font><font size=\"6\" color=\"#00FFCC\">72</font></p>
    </td>
    <td width=\"33%\">
      <p align=\"center\"><b><font size=\"6\" color=\"#660066\" face=\"Arial\">Den store taltest</font></b></td>
    <td width=\"20%\">
      <p align=\"center\"><font size=\"6\" color=\"#99CC00\">96</font></p>
    </td>
  </tr>
</table>
<p align=\"center\"><b><font color=\"#804000\" size=\"4\" face=\"Arial\">Når du<font size=\"6\" color=\"#FFFFFF\" face=\"Arial\">
</font><font color=\"#804000\">hører et tal, skal du trykke tallet og derefter
trykke på den nederste knap.</font></font></b>
<form name=\"frm\" action=\"#\" onSubmit=\"tjekTal(this.tal); return false;\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"1\">
  <tr>
    <td width=\"100%\" colspan=\"5\" height=\"21\"></td>
  </tr>
  <tr>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"1\">
      <font size=\"7\" color=\"#CCCC00\">24</font>
    </td>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"1\">
      <font size=\"7\" color=\"#006600\">96</font>
    </td>
    <td width=\"33%\" rowspan=\"3\" height=\"1\">
      <div align=\"center\">
        <center>
        <table BORDER=\"4\" cellpadding=\"5\">
          <tr>
            <td align=\"center\">
              <p align=\"left\"><font face=\"Arial\" color=\"#FFFFFF\">Tal:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              <input type=\"text\" name=\"tal\" size=\"2\" maxlength=\"2\"><br>
              <br>
              <font face=\"Arial\" color=\"#FFFFFF\">
              Rigtige:</font><input type=\"text\" name=\"rigtige\" size=\"2\" readonly></p>
            </td>
          </tr>
        </center>
        <tr>
          <td>
            <p align=\"left\"><input TYPE=\"button\" NAME=\"seven\" VALUE=\"  7  \" OnClick=\"frm.tal.value += \'7\'\">
            <input TYPE=\"button\" NAME=\"eight\" VALUE=\"  8  \" OnCLick=\"frm.tal.value += \'8\'\">
            <input TYPE=\"button\" NAME=\"nine\" VALUE=\"  9  \" OnClick=\"frm.tal.value += \'9\'\"><br>
            <input TYPE=\"button\" NAME=\"four\" VALUE=\"  4  \" OnClick=\"frm.tal.value += \'4\'\">
            <input TYPE=\"button\" NAME=\"five\" VALUE=\"  5  \" OnCLick=\"frm.tal.value += \'5\'\">
            <input TYPE=\"button\" NAME=\"six\" VALUE=\"  6  \" OnClick=\"frm.tal.value += \'6\'\"><br>
            <input TYPE=\"button\" NAME=\"one\" VALUE=\"  1  \" OnClick=\"frm.tal.value += \'1\'\">
            <input TYPE=\"button\" NAME=\"two\" VALUE=\"  2  \" OnCLick=\"frm.tal.value += \'2\'\">
            <input TYPE=\"button\" NAME=\"three\" VALUE=\"  3  \" OnClick=\"frm.tal.value += \'3\'\"><br>
            <input TYPE=\"button\" NAME=\"zero\" VALUE=\"      0    \" OnClick=\"frm.tal.value += \'0\'\">
            <input TYPE=\"button\" NAME=\"clear\" VALUE=\"  c  \" OnClick=\"frm.tal.value = \'\'\">
            <br>
            <input type=\"submit\" name=\"subm\" value=\"  Tjek tal!  \"></p>
          </td>
        </tr>
        </table>
      </div>
      <p>&nbsp;
    </td>
    <td width=\"17%\" valign=\"top\" height=\"1\">
      <font size=\"7\" color=\"#CC0066\">39</font>
    </td>
    <td width=\"16%\" valign=\"top\" height=\"1\">
      <font size=\"7\" color=\"#808080\">88</font>
    </td>
  </tr>
  <tr>
    <td width=\"17%\" valign=\"middle\" align=\"right\" height=\"0\">
      <p align=\"left\"><font size=\"6\" color=\"#FFFF00\">72</font>
    </td>
    <td width=\"17%\" valign=\"middle\" align=\"right\" height=\"0\">
      <p align=\"left\"><font size=\"7\" color=\"#008000\" face=\"Monotype Corsiva\">41</font>
    </td>
    <td width=\"17%\" valign=\"middle\" height=\"0\">
      <p align=\"right\"><font size=\"7\" color=\"#00FF00\" face=\"Comic Sans MS\">48</font>
    </td>
    <td width=\"16%\" valign=\"middle\" height=\"0\">
      <p align=\"right\"><font size=\"6\" color=\"#FF0000\">56</font>
    </td>
  </tr>
  <tr>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"10\">
      <font size=\"7\" color=\"#00CCFF\">62</font>
    </td>
    <td width=\"17%\" valign=\"top\" align=\"right\" height=\"10\">
      <font size=\"7\" color=\"#FFFF00\">30</font>
    </td>
    <td width=\"17%\" valign=\"top\" height=\"10\">
      <font size=\"7\" color=\"#00CC00\">75</font>
    </td>
    <td width=\"16%\" valign=\"top\" height=\"10\">
      <font size=\"7\" color=\"#FF9966\">43</font>
    </td>
  </tr>
</table>
</form>

<script>
document.frm.tal.value = \"\";
document.frm.rigtige.value = \"0\";
for (i = 1; i < antalTal + 1; i++) document.write(\"<embed src=\'\" + i + \".wav\' name=\'lyd\" + i + \"\' hidden=\'true\' autostart=\'false\'>\");


</script>
</body>
</html>

når der skal laves opgaver er det så framesetfilen du henter ind i browseren, ikke opgavesiden, den sørger framesetfilen selv for at hente.
Avatar billede riishoj Nybegynder
02. januar 2002 - 23:49 #17
OK foreløbig tak for hjælpen. Jeg bliver nødt til at vente til i morgen med at afprøve dit forslag. Vender tilbage i morgen med respons, så jeg håber du (I) kigger forbi!
mvh en søvnig Riishøj
Avatar billede jakoba Nybegynder
02. januar 2002 - 23:49 #18
Reklame:
  Måske du ku hitte på noget at bruge læsetræneren til:
http://hjem.get2net.dk/Jakob.Aggernaes/javascript/javascript05.html

mvh JakobA
Avatar billede riishoj Nybegynder
02. januar 2002 - 23:54 #19
Så vågnede jeg lige igen. Er det noget, som du har lavet. Er det ok at bruge det på skolen?
Riishøj
Avatar billede jakoba Nybegynder
02. januar 2002 - 23:57 #20
det er hjemmelavet og freeware, så velbekomme.
Avatar billede riishoj Nybegynder
03. januar 2002 - 00:00 #21
Tak-jeg glæder mig til at prøve det :)
Avatar billede riishoj Nybegynder
03. januar 2002 - 21:47 #22
Jeg har desværre først haft lejlighed til at afprøve jacobas forslag nu. Jeg kan ikke få framesettet til at indlæse opgavefilen. Den er helt blank når den indlæses. Jeg h a r indsat det rigtige filnavn i framesettet.
Håber du hænger på endnu.
mvh. riishøj
Avatar billede jakoba Nybegynder
03. januar 2002 - 22:06 #23
har du mulighed for at lægge det ud på internettet et sted så jeg kan se?
Avatar billede riishoj Nybegynder
03. januar 2002 - 22:09 #24
Ja, lige et øjeblik. Jeg vender tilbage med en URL
Avatar billede riishoj Nybegynder
03. januar 2002 - 22:35 #25
Undskyld det tog lidt tid, skulle have gang i en anden pc.
Her er URL\'en
http://www.assens-guiden.dk/testtaltraener/frame.html
Avatar billede jakoba Nybegynder
03. januar 2002 - 22:46 #26
i linien
  <frame src=\"\'about:blank\' name=\'lydFrame\'\">
har du et extra sæt \" er der ikke burde være der. skriv istedet:
  <frame src=\'about:blank\' name=\'lydFrame\'>

og jeg stavede galt i linien
  <framset cols=\"15,*\">
det skal være
  <frameset cols=\"15,*\">
tilføjet et e efter m-et

mvh JakobA


Avatar billede jakoba Nybegynder
03. januar 2002 - 22:48 #27
ellers ser det hele rigtigt ud.
Avatar billede riishoj Nybegynder
03. januar 2002 - 23:00 #28
Det virkede med dine ændringer, men som du måske har bemærket havde jeg  sat AntalTal=5. Da jeg ændrede det til 99 gik det helt galt igen. Jeg har lagt ændringen ud. Prøv selv!
Avatar billede jakoba Nybegynder
03. januar 2002 - 23:32 #29
vær rar at udskifte hele frameset filen med:

<html>  <!-- frameset fil -->
<frameset cols=\"15,*\">
  <frame src=\'about:blank\' name=\'lydFrame\'>
  <frame src=\'nytaltest.html\'>
</frameset>
</html>

og så allernederst i filen \'nytalttest.html\' skal vi have fjernet hele det script der skriver embed kommandoer. det skal bare slettes fra og med
<script...
    til og med
</script>

mvh JakobA

Avatar billede riishoj Nybegynder
03. januar 2002 - 23:51 #30
Det hjalp. Kan nu indlæses AntalTal=99 uden at gå ned. Desværre kunne jeg ikke høre om lyden afspilles, da jeg kun har uploaded 5 lydfiler (1-5), så jeg prøvede at ændre til AntalTal=5 igen. Lyden bliver afspillet, men den samme lydfil bliver gentaget igen og igen, indtil man trykker tallet, og så bliver den næste gentaget også videre.
Avatar billede jakoba Nybegynder
03. januar 2002 - 23:58 #31
ups det er vist mig der har kvajet mig i den embed kommando der skrives. Der skal nok stå  loop=0  istedet for  loop=1
( IE siger 0 betyder false(ingen loop) og alt andet betyder true(loop foerever),
  NS siger 1 betyder afspil een gang og 5 betyder afspil 5 gange )
Browserproducenterne er meget kreative i deres måder at drille hinanden :(

mvh JakobA
Avatar billede riishoj Nybegynder
04. januar 2002 - 00:16 #32
Tusind tak. Jeg tror faktisk, at du har knækket nøden. Jeg bliver nødt til at vente til i morgen med at teste scriptet med de 99 lydfiler (arbejdet tager for meget af min fritid) , men jeg har stærkt på fornemmelsen at det virker. Jeg vender tilbage i morgen, så du kan få dine velfortjente points. En lille designmæssig detalje. Kan framesettet komme til at fylde hele siden, så man ikke kan se det ude i venstre side. Jeg kunne evt. tænke mig, at siden loades i full screen.
mvh.riishøj:)
Avatar billede riishoj Nybegynder
04. januar 2002 - 00:18 #33
Jeg mente selvfølgelig nødden.
Avatar billede riishoj Nybegynder
04. januar 2002 - 13:40 #34
Scriptet virker perfekt også med de 99 lydfiler. Jeg har fundet ud af at få opgavefilen til at fylde (næsten) hele siden ved at sætte frameset cols=1.
Endnu en gang tusind tak for hjælpen. Du har virkelig fortjent dine 60 points.
mvh. riishøj:)
Avatar billede riishoj Nybegynder
04. januar 2002 - 14:13 #35
Jeg var nok lidt hurtig med points, for der en en ting som ikke virker. Hvis man skriver forkert, bliver samme tal ikke gentaget, men scriptet starter forfra. Det gjorde det ikke før du lavede ændringerne. Hvad kan det skyldes?
mvh.riishøj
Avatar billede jakoba Nybegynder
04. januar 2002 - 16:49 #36
Den ændring skulle ikke have den effekt.
hvis du lægger programmet som det er nu ud på den der adresse kan jeg debugge.
Avatar billede riishoj Nybegynder
04. januar 2002 - 17:00 #37
Så er sidste version lagt ud. Prøv og skriv et forkert tal. Hos mig starter programmet igen. Det er godt nok versionen med 5 lydfiler, men det gør vel ingen forskel.
mvh. riishøj
Avatar billede jakoba Nybegynder
05. januar 2002 - 04:44 #38
OK. det var nær slutningen af scriptet. hvor scriptet prøvede at afspille lyden igen. de brugte en kommando somom de der 100 <embed kommandoer stadig fandtes.

Næsten altid i programmering gøæder der om kune at gøre tingene eet enkelt sted, så jeg har ændret i funktionen afspilLyd så den både kan bruges når der skal vælges et nyt nummer og afspilles og når det gamle nummer skal afspilles igen. Funktionen afspillyd har fået en parameter. Alt ialt er der ændret i 4 scriptlinier, og også i bodykommandoen. Desuden har jeg lagt erikJakobsens ændring ind i funktionen tf() så der mindre ofte bliver genvalgt samme tal.

hvis du paster nedenstående ind istedet for det der står nu (fra starten af scriptet til og med din <body kommando) skulle den være der:

<script>
antalTal =5; //Antallet af tal-lyde
antalRigt = 5; //Så mange korrekte gæt, man skal have, før man vinder!

alert(\"Greetings, my friend!\\n\\nOm et øjeblik vil der blive afspillet et tal fra 1 til \" + antalTal + \"!\\nDet er så din opgave at høre godt efter og skrive det tal i boksen her på siden!\\n\\nEr du klar?\");

tilf = 0;
rigt = 0;

function tf() {
    temp = Math.floor(Math.random() * antalTal) + 1;
    if (temp == tilf) return tf();
    return temp;
}

function afspilLyd( nr ) { // KUN denne funktion er blevet ændret.
    tilf = nr;
    parent.lydFrame.document.open(\'text/html\',\'replace\');
    parent.lydFrame.document.write( \"<embed src=\'\" +tilf +\".wav\' loop=0 \"
                                  +\"autostart=\'true\'></embed>\" );
    parent.lydFrame.document.close();
}

function tjekTal(felt) {
    if (felt.value == \"\" || !felt.value.match(/^[0-9]+$/)) {
        alert(\"Du skal skrive et tal fra 1-\" + antalTal + \"!\");
        felt.value = \"\";
        felt.focus();
    }
    else if (felt.value == tilf) {
        if (++rigt >= antalRigt) {
            alert(\"Tillykke!\\nDu har fået \" + rigt + \" rigtige!\\nDu kan nu leve et liv i evig lykke!\");
            felt.form.rigtige.value = rigt;
            felt.maxlength = 3;
            felt.value = \":-)\";
            felt.form.subm.value=\"Hurraaa!\";
            return;
        }
        alert(\"Korrekt!\\n\\nDer vi nu blive afspillet et nyt tal!\");
        felt.value = \"\";
        afspilLyd( tf() );
        felt.focus();
        felt.form.rigtige.value = rigt;
    }
    else {
        alert(\"Desværre!\\nDet indtastede tal var forkert! Vær klar til at høre tallet igen!\");
        felt.value = \"\";
        felt.focus();
        afspilLyd( tilf );      // her blev afspillet en lyd somom de mange embed\'s var der endnu
    }
}
</script>
</head>
<body onLoad=\"afspilLyd( tf() ); document.frm.tal.focus();\" bgcolor=\"#39AE8B\">

mvh JakobA
Avatar billede riishoj Nybegynder
05. januar 2002 - 16:47 #39
Tak for dine ændringer som virker fint. Beklager at jeg først har reageret nu, men jeg har ikke været hjemme. Hvordan bliver man så skrap til javascript. Findes der programmer, som kan hjælpe en på vej a la html editorer?
mvh. riishøj:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester