Avatar billede fun22 Nybegynder
06. januar 2006 - 15:28 Der er 41 kommentarer og
1 løsning

Problem ved sammenlægning

Hej..

Hvorfor virker dette script kun en gang?

Når jeg har trykket på den en gang og den skriver 1 så vil den ikke lægge en mere til når jeg trykker igen??

on (press) {
  _root.final = int(score_final) + int(1);
  this._parent.textfelt.text = "Score: "+_root.final;
}
Avatar billede skovge Novice
06. januar 2006 - 15:49 #1
Uden at være den helt store script haj, så vil jeg ud fra min erfaring med andre programmeringssprog mene, at problemet opstår, fordi du instantierer score_final hver gang du skriver int(score_final) - dvs. du nulstiller værdien af variablen igen.

Prøv med

_root.final = (score_final) + 1;
Avatar billede fun22 Nybegynder
06. januar 2006 - 15:53 #2
hehe ja det var det... Det havde jeg ikke lige set.. Tak for hjælpen..
Avatar billede skovge Novice
06. januar 2006 - 15:58 #3
Det ingen problem da!

Tillader mig at smide et svar så!  :-)
Avatar billede fun22 Nybegynder
06. januar 2006 - 16:11 #4
Lige hurtigt.. Kan du fortælle mig hvorfor dette ikke virker? Der sker ikke noget når jeg trykker.. Den skulle jo gerne sende mig til frame 2?

on (press) {
  _root.final = int(_root.final) + int(1);
  this._parent.textfelt.text = "Score: "+_root.final;
  gotoAndPlay(2);
}
Avatar billede skovge Novice
06. januar 2006 - 16:21 #5
Jeg gætter på, at du nok har koden i et MC - derfor ved den ikke at den skal gå til frame 2 i din hovedfilm - prøv med:

_root.gotoAndPlay(2);  eller  _parent.gotoAndPlay(2);
Avatar billede fun22 Nybegynder
06. januar 2006 - 16:38 #6
virker stadig ikke..
Avatar billede skovge Novice
06. januar 2006 - 16:43 #7
hmmmm - kan du prøve at uploade din .fla - så er det lidt nemmere at hjælpe.
Avatar billede fun22 Nybegynder
07. januar 2006 - 14:52 #8
Her er den: jtponline.dk/game.fla

Det er meningen at når man klikker på hjertet så skal den tælle en op..
Avatar billede maqhem Nybegynder
08. januar 2006 - 21:43 #9
Jeg er ret sikker på, at det er fordi der ikke er noget der hedder this._parent :P prøv at slette this
Avatar billede maqhem Nybegynder
08. januar 2006 - 21:44 #10
tjo, det er der godt nok tilsyneladende...
Avatar billede maqhem Nybegynder
08. januar 2006 - 21:47 #11
men læg da koden på en frame, det gør i hvert fald arbejdet nemmere for mig. Så er det jo bare:

hjerte.onPress = function(){

    _parent.textfelt.text = "Score: " + (_root.final = int(_root.final) + 1);
    gotoAndPlay(2);
}
Avatar billede maqhem Nybegynder
08. januar 2006 - 21:49 #12
men umiddelbart så er det lidt svært, da jeg ikke kan hente filen - måske du bruger Flash 8 (?)
Avatar billede maqhem Nybegynder
08. januar 2006 - 21:56 #13
og så lige rettet lidt til:

hjerte.onPress = function(){
    _parent.textfelt.text = "Score: " +(_root.final++);
    gotoAndPlay(2);
}
Avatar billede maqhem Nybegynder
08. januar 2006 - 21:57 #14
ovenstående virker i hvert fald hos mig :)
Avatar billede fun22 Nybegynder
09. januar 2006 - 13:25 #15
ja det er flash 8 jeg bruger.. Hvis jeg bare ligger koden på en frame så siger den at den skal ligge i en "on" funktion..

**Error** Scene=Scene 1, layer=Hjerte, frame=2:Line 5: Statement must appear within on/onClipEvent handler
    hjerte.onPress = function(){

Total ActionScript Errors: 1     Reported Errors: 1
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:03 #16
afsløret! Din kode er STADIG på et mc, og det kan betragtes ud fra on/onClipEvent :)
Avatar billede fun22 Nybegynder
09. januar 2006 - 14:08 #17
hvad er et mc?
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:13 #18
et movie clip :)
Avatar billede fun22 Nybegynder
09. januar 2006 - 14:16 #19
okay.. hvordan skal jeg så gøre det siger du?
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:19 #20
fjerne koden:

hjerte.onPress = function(){
    _parent.textfelt.text = "Score: " +(_root.final++);
    gotoAndPlay(2);
}

fra mc-et og lægge det direkte på en seperat frame dér, hvor der skal springes til frame 2 hvis der klikkes på hjertet...
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:20 #21
:)

hvorfor skal der i øvrigt springes til frame 2?
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:21 #22
(kan ikke se din film - har kun version 7, men koderne burde ikke fejle på grund af dét :D)
Avatar billede fun22 Nybegynder
09. januar 2006 - 14:23 #23
Første frame er en menu hvor man kan vælge at starte spilet...
Frame nr 2 til 15 er så et hjerte der kommer et tilfældigt sted på skærmen.. Når man så klikker på hjertet skal man få +1 og den skal så starte forfra på frame 2...
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:26 #24
må jeg spørge om, hvordan dit hjerte placeres tilfældigt? har du lavet det med kode?
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:29 #25
eller er det bare puttet tilfældige steder hen 14 gange fordelt på dine frames?
Avatar billede fun22 Nybegynder
09. januar 2006 - 14:32 #26
nej. har lige rettet i det, så nu er der kun 2 frames ialt.. første er en menu, og andet er et hjerte. Det placeres med denne kode:

onClipEvent (load) {
  _x = _width/2 + random(500)+1;
  _y = _height/2 + random(300)+1;
}
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:40 #27
tror bare det er smag og behag, men jeg er ikke ret vild med koder på mc. Så fjern koden, og skriv denne kode på framen:

final = 1;
placeRandom();
hjerte.onPress = function(){
    textfelt.text = "Score: " +(final++);
    placeRandom();
}
function placeRandom(){
    with(hjerte){
        _x = random(500-_width)+_width/2;
        _y = random(300-_height)+_height/2;
    }
}
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:45 #28
og så lige en lille tilføjelse så der ikke kan snydes:

final = 1;
placeRandom();
hjerte.onPress = function(){
    textfelt.text = "Score: " +(final++);
    placeRandom();
}
function placeRandom(){
    with(hjerte){
        _x = random(500-_width)+_width/2;
        _y = random(300-_height)+_height/2;
    }
}
onEnterFrame = function(){
    if(Key.isDown(9)){
        Selection.setFocus("textfelt");
    }
}
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:49 #29
eller måske rettere:

final = 1;
placeRandom();
hjerte.onPress = function(){
    textfelt.text = "Score: " +(final++);
    placeRandom();
}
function placeRandom(){
    with(hjerte){
        _x = random(501)+_width/2;
        _y = random(301)+_height/2;
    }
}
onEnterFrame = function(){
    if(Key.isDown(9)){
        Selection.setFocus("textfelt");
    }
}
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:50 #30
men med min kode (tilføjelsen) kan man ikke nå ud over kanterne. Var det ikke bedre?
Avatar billede maqhem Nybegynder
09. januar 2006 - 14:52 #31
hvis rotationspunktet er i midten af hjertet
Avatar billede maqhem Nybegynder
09. januar 2006 - 15:00 #32
virker det!?
Avatar billede fun22 Nybegynder
09. januar 2006 - 17:04 #33
Super nu virker det... Har du evt et lille hint til hvordan jeg får lavet sådan at den hopper til frame 2 efter 2 sec? Det skal jo ikke være sådan at man har alt den tid man vil til at "fange" hjertet..

Det må være noget med en timer af en eller anden art?
Avatar billede maqhem Nybegynder
09. januar 2006 - 22:08 #34
koden her sætter hjertet et tilfældigt sted hvis man klikker på det inden to sekunder, ellers gør den det automatisk hvis det er dét du vil:

final = 1;
placeRandom();
hjerte.onPress = function(){
    textfelt.text = "Score: " +(final++);
    placeRandom();
}
onEnterFrame = function(){
    if(Key.isDown(9)){
        Selection.setFocus("textfelt");
    }
}
function placeRandom(){
    clearInterval(myInterval);
    myInterval = setInterval(placeRandom,2000);
    with(hjerte){
        _x = random(500-_width)+_width/2;
        _y = random(300-_height)+_height/2;
    }
}

:)

Var det dét du ønskede?
Avatar billede fun22 Nybegynder
10. januar 2006 - 17:20 #35
Tusind tak for hjælpen.. Det var lige det det var.. ;)
Avatar billede maqhem Nybegynder
10. januar 2006 - 17:41 #36
Super duper! Og tak for point :)
Avatar billede skovge Novice
10. januar 2006 - 20:31 #37
Iiiiiiiiih tusinde tak fun22 - prøv lige at læse dit eget spørgsmål en gang til............læs derefter mit svar, og din kommentar til dette..............og forklar mig så lige en gang til hvorfor det er du har afvist mit svar!!!

- at zipper-znake efterfølgende har givet dig en kæmpe hjælp med et helt andet spørgsmål er en helt anden sag, og burde være oprettet som seperat spørgsmål.
Avatar billede fun22 Nybegynder
10. januar 2006 - 21:46 #38
Skovge >> Undskyld meget for fejlen.. Selvfølgelig skal du have dine points, og ja det burde måske have været oprettet som en ny spørgsmål..

Du kan få dine point her: http://exp.dk/spm/678517
Avatar billede maqhem Nybegynder
10. januar 2006 - 21:58 #39
prøv at lyd sur, skovge :P

Helt ærligt, hvis du nu havde reageret lidt hen ad vejen, så vi stadig vidste du var der, så var dine point nok faldet til dig helt af sig selv ;)
Avatar billede maqhem Nybegynder
10. januar 2006 - 21:58 #40
men kan selvfølgelig nemt følge dig... :)
Avatar billede skovge Novice
10. januar 2006 - 22:19 #41
Ja ja - godt ord igen, det var ikke så slemt ment.  :-)

.....og nu er der jo altså nogen gange, hvor man ikke lige sidder klar ved eksperten døgnets 24 timer (tro det eller lad være) - derfor nåede jeg ikke at reagere yderligere eller få kigget mere på koden, da noget så kedeligt som arbejde kom i vejen - det er i øvrigt stærkt overvurderet, og tager alt for meget af ens fritid.  ;-)
Avatar billede maqhem Nybegynder
11. januar 2006 - 22:02 #42
hehe, okay så. Du lød bare så negativ - men hvis du ikke var det, så er det vel okay nu :)
... hvor du jo også fået point ;)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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