Avatar billede paask Nybegynder
03. oktober 2001 - 23:26 Der er 13 kommentarer og
1 løsning

Lige/ulige variabel samt \'while\'

Well, jeg har 2 spørgsmål. Jeg har et dragable MC der ligner en kasse. Imens denne kasse bliver dragget skal det være muligt at \'dreje\' den ved tryk på space (lidt Tetris <- og -> agtigt).

Det er nemmere hvis I ser mit script, en del det ser sådan ud:

on (keyPress \"<Space>\") {
    space = space+Number(1);
    if (space == 1) {
        do {
            _root.flyttekasse.kasse1.gotoAndStop (\"pos2\");
        } while (startDrag == true);
    } else if (space ==2) {
        do {
            _root.flyttekasse.kasse1.gotoAndStop (\"pos1\");
        } while (startDrag == true);
    }
}

Dvs. variablen space er et nummer der forøges hver gang man trykker på space. Hvis space er lig 1 går MC\'et kasse1 til pos2 og hvis space er lig 2 går kasse1 til pos1 (oprindelig position) igen. Det virker fint, men...

Her vil jeg gerne indsætte en værdi for 1 og 2 som værende lige / ulige i stedet. På den måde kan kassen nemlig skifte position uendeligt :0)

Derudover fungerer min while startdrag == true ikke. Har forsøgt med stien til den draggede film, og mange andre løsninger. Det skal kun være muligt at ændre kassens position HVIS man dragger MC\'et. Er det overhovedet while jeg skal bruge, og hvis ikke hvad så?

I\'m at a loss... håber I kan hjælpe :0)

mvh
paask
Avatar billede kim_bille Nybegynder
04. oktober 2001 - 00:00 #1
jeg kender ikke noget til Flash, men til programmering:

Der må være noget der hedder modolus (=resten ved heltals division)
I Java: %
I delphi: mod

fx: If ((space % 2)==0) // et lige tal
    else // ulige
Avatar billede paask Nybegynder
04. oktober 2001 - 00:20 #2
Idéen er god nok, men det er ikke helt det.

Eksempelvist, hvis der er trykket 3 gange på space er variablen space = 3. Og 3 % 2 giver 1, dvs. et ulige tal... er det ikke korrekt?

I såfald er mod ikke løsningen...
Avatar billede kim_bille Nybegynder
04. oktober 2001 - 00:28 #3
Det er korrekt

I såfald har jeg misforstået spm. Hvor er det vi skal henad?
Avatar billede paask Nybegynder
04. oktober 2001 - 00:33 #4
Vi skal vurdere om variablen space er et lige eller et ulige tal...
Avatar billede kim_bille Nybegynder
04. oktober 2001 - 00:36 #5
det er jo det jeg gjorde!?
3 er et ulige tal!
Avatar billede jakoba Nybegynder
04. oktober 2001 - 00:58 #6
det nemmeste er at sige:
  space = 1 -space;  // skifter mellem 1 og 0

så vil space være skiftevis 1 og 0.

mvh JakobA
Avatar billede jakoba Nybegynder
04. oktober 2001 - 01:03 #7
du kan evt også prøve med testen

  if ( space & 1 )
      så er den ulige
  else
      så er den lige;

operatoren & er bitwise and og fortæller om sidste bit i tallet er sat.

NB: sådan er det i C, C++, Java og Javascript, så jeg gætter på den også duer i \'flash script\'
Avatar billede paask Nybegynder
04. oktober 2001 - 02:00 #8
--> Jacoba, perfekt med & - det virker fint nu.

--> kim_bille, sorry men jeg mener ikke modulus virker efter hensigten her, gjorde i hvert fald ikke for mig.

Uanset hvad var det svaret på det ene spørgsmål, nu mangler kun min while sætning :0) Jacoba, du får point når det andet bliver besvaret (af dig eller en anden) oki ?!
Avatar billede nikolajdu Nybegynder
04. oktober 2001 - 07:38 #9
Jakoba - Yes yes, jeg sagde jo at du ville kunne score dig nogle point i Flash. ;-)
Avatar billede pixelpaw Nybegynder
04. oktober 2001 - 07:53 #10
kim_bille > mod findes ikke i Flash. Jeg har selv ledt efter noget tilsvarende men uden held.
Avatar billede jakoba Nybegynder
04. oktober 2001 - 10:22 #11
Jeg tror nu også kim_billes kan bruges
    ( space & 1 )  giver præcis det samme som  ( space % 2 )
prøv.

Dit  on  lyder somom det er en event handeler. så prøv:

on (keyPress \"<Space>\") {
    if ( startDrag ) {
        space = space+Number(1);
        if ( space % 1 ) {
            // prøv den lige % er modolo operator i mange sprog
            _root.flyttekasse.kasse1.gotoAndStop (\"pos2\");
        } else {
            _root.flyttekasse.kasse1.gotoAndStop (\"pos1\");
        }
    }
}

mvh JakobA
Avatar billede jakoba Nybegynder
04. oktober 2001 - 10:24 #12
Ups. med modolo operator skal anden operand være 2.
        if ( space % 2 ) {

Avatar billede paask Nybegynder
04. oktober 2001 - 14:20 #13
Hmmm nu virker modulus fint, jeg var måske for træt til at fatte det i nat.. sorry kim_bille !

Anyway, det er stadig muligt at skifte fra pos1 til pos2 uden at MC\'et bliver dragget. Har forsøgt med (_root.flyttekasse.startDrag = true) etc. uden held.

Pretty please with sugar on top, nogen der kan hjælpe ?!

mvh
paask
Avatar billede paask Nybegynder
04. oktober 2001 - 14:30 #14
Det der har været problemet er, at det ikke er blevet registreret om jeg draggede eller ej.

Well, det var nemmere end som så, har sat en variabel med værdi 1 ved startDrag og værdien 0 ved stopDrag... Hvis jeg bruger denne i en if sætning fungerer det perfekt. Men tak for hjælpen med den ene del jacoba.

Jeg må have været meget træt i nat :0)

mvh
paask
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