Avatar billede flash-man Nybegynder
20. september 2002 - 23:58 Der er 13 kommentarer og
1 løsning

Hvorfor virker mit script kun én gang??

Hej (JavaScript)Eksperter..!

Jeg er igang med et projekt ( her: http://www.friserverplads.dk/flashman/drugwars/drugwars.html ) Men jeg har et problem med at mit "betal tilbage"-script kun virker én gang, hvis jeg prøver at bruge det anden gang så vil den ikke.. Her er scriptet..:

function repay(){
pengei = parseInt(document.inventory.penge.value, 10);
loani = parseInt(document.banken.repay.value, 10);

if (loani <= pengei) {
loan = parseFloat(document.banken.loan.value);
repay = parseFloat(document.banken.repay.value);
pengean = parseFloat(document.inventory.penge.value);
document.banken.loan.value = eval(loan + "-" + repay);
document.inventory.penge.value = eval(pengean + "-" + repay);
document.banken.repay.value = "0";
} else {
alert("Så mange penge har du ikke!");
showtre('bank','bank2',true);
document.banken.repay.value = "0";
}}

Tag jer ikke at der er nogen funktioner der ikke virker.. Jeg er kun halvt færdig..!

</FlashMan!>
Avatar billede jakoba Nybegynder
21. september 2002 - 00:33 #1
det skader aldrig at skrive sin kode pænt så man kan få lidt overblik:

function repay(){
    var pengei = parseInt(document.inventory.penge.value, 10);
    var loani = parseInt(document.banken.repay.value, 10);

    if (loani <= pengei) {
        var loan = parseFloat(document.banken.loan.value);
        var repay = parseFloat(document.banken.repay.value);
        var pengean = parseFloat(document.inventory.penge.value);
        document.banken.loan.value = loan - repay;
        document.inventory.penge.value = pengean - repay;
        document.banken.repay.value = "0";
    } else {
        alert("Så mange penge har du ikke!");
        showtre('bank','bank2',true);
        document.banken.repay.value = "0"; 
    } //ende på if sætningen
}; //end på funktionen

Jeg vil tippe at det der sker er at IE i anden omgang forveksler den funktion der hedder repay med det felt der hedder repay.

hvis din funktion er erklæret i <head sektionen kan du prøve at ændre kaldet til:
    self.repay();
istedetfor blot
    repay();
så skulle det du.

men generelt er det en dum ide at bruge samme navn til 2 forskellige ting, så selv bille jeg nok omdøbe funktionen til fx
function repayFunk(){

mvh JakobA
Avatar billede benderfx Nybegynder
21. september 2002 - 00:34 #2
1: tror spillet bliver fedt :)
2: Bliver der lavet så man kan save osv
3: Kommer der flere byer
Avatar billede jakoba Nybegynder
21. september 2002 - 00:37 #3
den der  var  foran din variabel der hedder repay er også vigtig. den sikrer at det er en lokal variabel indni funktionen. uden var foran vil javascript sige 'ja den kender jeg det er en funktion, men nu vil han altså lave den om til et tal.' og derefter er repay et tal istedetfor en funktion.
Avatar billede benderfx Nybegynder
21. september 2002 - 00:40 #4
du ved godt man kan få minus i dagene ik ?
Avatar billede flash-man Nybegynder
21. september 2002 - 10:59 #5
Jakoba > Jeg lavede navnet på funtionen om og pludselig virkede det, (hver gang!) Tak for det..

Jeg vidste faktisk ikke at man bare kunne skrive document.banken.loan.value = loan - repay; jeg troede det der eval(..) skulle til.. Der kan man bare se :D

Og med tanke på "var loan = parseFloat(document.banken.loan.value);" (og de 2 andre) hvad gør det der "var" godt for??

Benderfx > Selvfølgelig bliver spillet fedt.. Bagefter lægger jeg osse en highscore til og den slags.. Og vent bare til der kommer noget grafik til, så..! :D

Jeg ved ikke om det vil blive muligt at save, jeg har jo som sagt lavet det hele i JavaScript, men man kunne vel godt lave noget gemme-noget med PHP.. Det har jeg ingen anelse om..

Der er allerede mulighed for at rejse rundt oppe i toppen står der "Du er i København : Rejs" og hvis du klikker på rejs så kommer der et kort frem hvor du kan klikke på de røde punkter på kortet..
Avatar billede flash-man Nybegynder
21. september 2002 - 11:00 #6
Benderfx > Hvad mener du når du skriver "du ved godt man kan få minus i dagene ik ?" ??
Avatar billede flash-man Nybegynder
21. september 2002 - 11:11 #7
Jakoba > med tanke på det sidste spm "Og med tanke på "var loan = parseFloat(document.banken.loan.value);" (og de 2 andre) hvad gør det der "var" godt for??".. Jeg læste lige dit andet indlæg :D
Avatar billede jakoba Nybegynder
21. september 2002 - 12:33 #8
Javascript er lavet til at være supernemt, og derfor vil sproget ofte prøve at gætte hvad du mener. Jeg skrev en side om det engang:
    http://www.jakoba.dk/EUG/artikel1.html

Detteher er et andet godt eksempel. "hvilken variabel ønsker han at finde?" javascript gætter medminde du tydeligt spcificerer dem selv. Men det betyder ikke at der ikke findes scoperegler for variablene i javascript, det betyder kun at det er sjældent du behøver at kende dem.

Og IE-browseren prøver så endda at gøre det endnu nemmere ved ikke at overholde de regler. hvis du blot stkiver 'load' vil den lede rundt i din objektstruktur og sandsynligvis finde det felt.

mvh JakobA
Avatar billede exp-ralle Nybegynder
21. september 2002 - 12:37 #9
Er det ikke en fejl at man ikke kan sælge men kun købe under Sælg?
Avatar billede flash-man Nybegynder
21. september 2002 - 12:42 #10
Jakoba > Hvor ved du alt det fra..? :D

Selv er jeg begyndt at finde strukturen i JavaScript og føler mig helt vildt stolt af at jeg kan kaste rundt med nogen variabler..

exp-ralle > Som jeg osse skrev til sidst i mit spm.. "Tag jer ikke at der er nogen funktioner der ikke virker.. Jeg er kun halvt færdig..!"
Avatar billede jakoba Nybegynder
21. september 2002 - 14:49 #11
Ved at have lavet alle fejlene mange nok gange til at lære lidt af dem :)
takker.
Avatar billede flash-man Nybegynder
21. september 2002 - 16:12 #12
He he.. Vi startede jo alle et sted :D Der er bare dem der er kommet længere end andre..
Avatar billede exp-ralle Nybegynder
21. september 2002 - 16:17 #13
Okay... glæder mig til man kan sælge :)
Avatar billede flash-man Nybegynder
21. september 2002 - 18:26 #14
har flyttet projektet til http://flashman.h4f.dk/drugwar hørte at h4f.dk var sikrere end fsp.. Og nu kan man osse sælge, jeg mangler bare lige en highscore-liste, nogen få bugs og noget grafik så er det færdigt..
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