Avatar billede shoo Nybegynder
17. december 2002 - 17:53 Der er 23 kommentarer og
1 løsning

simpel toggle switch

Hvordan laver man en knap som virker som en toggle switch? altså en tænd / sluk knap. Når man klikker skal variablen skifte mellem 1 og 2. Og så skal man kunne måle når var = 1, så skal noget feks. rotere, og når var = 2, så skal rotationen stoppe.
Avatar billede alexander_j Nybegynder
17. december 2002 - 18:25 #1
if (vari==1) {
vari=2;
//rotation begynd
} else {
vari=1
//rotation stop
}

på din knap
Avatar billede mat Nybegynder
17. december 2002 - 18:29 #2
æv nu havde jeg lige lavet det her pædagogiske eksempel...nåmmen så poster jeg det bare alligevel :)

..og hvorfor skal den være 2, en alm boolean er da nemmere hvis det bare er en toggleknap?

http://www.ultra-abe.dk/roto.html
Avatar billede alexander_j Nybegynder
17. december 2002 - 18:35 #3
Det er også flot - og så i julens farver :-)
Avatar billede mat Nybegynder
17. december 2002 - 18:36 #4
hehe :)
Avatar billede shoo Nybegynder
17. december 2002 - 20:12 #5
det pædagogiske eks. forstår jeg ikke :-(, nogle af koderne kender jeg simpelthen ikke, hverken ! eller :
Men det andet eksempel er mere ligetil, dog hvad skriver jeg hvis det objekt jeg vil ha til at rotere har et instans navn: boks? ved ikke hvad jeg skal skrive for at få den startet når der ikke er tale om at switche mellem tre frames.. kan det gøres smartere? men stadig med meget simpel kode?
Avatar billede alexander_j Nybegynder
17. december 2002 - 20:30 #6
Hvordan har du lavet din rotation? er der tale om en tween eller actionscript?

Jeg ville foretrække actionscript - så kan det gøres på følgende måde:

På knappen skrives:
on (release) {
if (boks.vari==1) {
  boks.vari=2;
} else {
  boks.vari=1;
}
}

På movieclippet 'boks' skrives:
onClipEvent(enterFrame) {
if(vari==1) {
  this._rotation+=1;
}
}

movieclippet og knappen skal ligge i samme level!
Avatar billede alexander_j Nybegynder
17. december 2002 - 20:35 #7
Eller lidt ala mats:

På knappen skrives:
on (release) {
if (boks.speed==0) {
  boks.speed=1;
} else {
  boks.speed=0;
}
}

På movieclippet 'boks' skrives:
onClipEvent(load) {
speed=0;
}
onClipEvent(enterFrame) {
this._rotation+=speed;
}
Avatar billede mat Nybegynder
17. december 2002 - 20:48 #8
! betyder NOT, og betyder at vi spørger om boolean´en _root.roto er true eller false, eller 1 eller 0 (samme ting).

? : er vel en slags shorthand for if..else, hvis udsagnet foran spørgsmålstegnet er sandt returneres udtrykket efter spørgsmålstegnet, ellers returneres udtrykket bag kolon...så ved du det :)


Skal du switche mellem tre frames eller snakker vi om en "on/off"-knap her?
Avatar billede shoo Nybegynder
17. december 2002 - 22:20 #9
det er en on off knap, men jeg kunne ikke selv finde ud af det medmindre jeg lavede tre frames med nogle actions. men det ser ud som om jeg har fået et svar. jeg forstår _rotation++ men ikke _rotation+=1 er det det samme??
Avatar billede mat Nybegynder
17. december 2002 - 22:26 #10
det er fuldstændig det samme, du kan osse skrive _rotation = _rotation+1; det er osse det samme :) ..men _rotation++; ser mest tjekket ud ;)
Avatar billede barklund Nybegynder
17. december 2002 - 23:39 #11
alt det her:

on (release) {
  if (boks.speed==0) {
    boks.speed=1;
  } else {
    boks.speed=0;
  }
}

Betyder det samme som:

on (release) {
  if (!boks.speed) {
    boks.speed=1;
  } else {
    boks.speed=0;
  }
}

da et tal er "true" hvis det er "ikke-0" og derfor bliver NOT tallet "true" hvis tallet er 0...

Dette kan igen skrives som:

on (release) {
  boks.speed = !boks.speed ? 1 : 0;
}

Der evalueres som:

variabel = condition ? værdi1 : værdi2

Altså "hvis condition så er variabel lig værdi1 eller er den lig værdi2"

Men endnu smartere så er det bare:

on (release) {
  boks.speed = !boks.speed;
}

Altså værdien skal være det modsatte er det, som den var... Det er da lidt smukkere og smartere - og ikke mindst hurtigere :o)

/Barklund
Avatar billede alexander_j Nybegynder
18. december 2002 - 07:41 #12
Tjae jeg har ihvertfald lært noget nyt - hvad med dig shoo?

Men i min programmeringshjerne er mit eget eksempel stadig mere læseligt, men det ændre sig vel ;)
Avatar billede shoo Nybegynder
18. december 2002 - 20:49 #13
det eneste jeg tænker er at det er for lang tid siden jeg har programmeret.. der er noget der dæmre. men tak for hjælpen, kan ikke give nogen af jer point medmindre i svarer og ikke kommenterer..
Avatar billede shoo Nybegynder
18. december 2002 - 21:06 #14
nu hvor vi er ved det.. hvad betyder den firkantede parantes så en sådan en sætning som denne: _root[_root.container].gotoAndStop(1)
for der er vel ikke her tale om et array?
Avatar billede alexander_j Nybegynder
18. december 2002 - 21:29 #15
Umiddelbart giver det ingen mening at lave sådan en kode som du beskriver - men måske set i en sammenhæng kan det give mening!
_root.container er en variabel som indeholder navnet på et af dine movieclip!

Et eksempel med mening - hvis jeg laver en løkke fx:

for (i=0; i<10; i++) {
_root["mc"+i].gotoAndStop(1);
}

Der er i en variabel som skifter værdi (0-9) - og med denne kode er det mig muligt at få alle de movieclip der hedder mc0 ... mc9 til at gå til frame 1!

Og nej det er ikke et array!

Jeg svarer lige (hvis jeg har fortjent point her?)!
Avatar billede mat Nybegynder
18. december 2002 - 21:37 #16
Joeh det er nu et array sådan som jeg har forstået det (uden at det er noget jeg har vildt tjek på)

Men i flash lagres alle movieclips i et associativt array og kan derfor adresseres med alm. dot-notation: _root.clip eller ved array-notation _root["clip"]

Sådan har jeg ihvertfald forstået det :)
Avatar billede mat Nybegynder
18. december 2002 - 21:38 #17
..på en given timeline.
Avatar billede alexander_j Nybegynder
18. december 2002 - 21:51 #18
Irriterende at hver gang man tror man har styr på noget, så viser det sig at man alligevel tager fejl ;)
Men der er i det nævnte tilfælde ikke tale om et(eller hedder det en) almindelig array, men nærmere om hvordan flash lagre sine movieclips!

/Alexander
(der fremover underskriver med følgende forbehold)
Der tages forbehold for huller i min viden - og jeg tilslutter mig til enhver tid mat, barklund og nikolajdus rettelser til mine forklaringer!
Avatar billede mat Nybegynder
18. december 2002 - 22:17 #19
LOL - det er altså ikke noget jeg kan verificere 100%, og så tror jeg det hedder 'et' array (men det vil jeg heller ikke garantere er helt korrekt) :)

laver lige et lille eksperiment.

myArr = new Array();
myArr["1"] = "mat";
myArr["2"] = "alexander";
trace(myArr["1"]);

output: mat

..det skulle så være et associativt array, og svare til den måde flash lagrer movieclips i arrays, det må så være med nogle objektreferencer?....hvis jeg da ikke er gået helt galt i byen?

men anyways, barklund kommer sikkert forbi om lidt og råver af os :)
Avatar billede alexander_j Nybegynder
11. januar 2003 - 17:38 #20
Måske på tide at spørgsmålet blev lukket?
Avatar billede mat Nybegynder
11. januar 2003 - 17:50 #21
perler for høns alexander, perler for høns :)
Avatar billede mat Nybegynder
11. januar 2003 - 18:59 #22
..og så hedder det vist "perler for svin" - dygtig abe :P
Avatar billede shoo Nybegynder
12. januar 2003 - 17:17 #23
jamen så bliver i nød til at SVARE og ikke kun kommentere, ellers er det kun alexander der får point, men det er måske heller ikke noget i går så meget op i...
Avatar billede mat Nybegynder
12. januar 2003 - 17:30 #24
jeg skal ikke have noget, ellers tak :)
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